From 523e6d92e01bcbd6d930c3e59a3ff40961c2572c Mon Sep 17 00:00:00 2001 From: kakachake <282281884@qq.com> Date: Wed, 11 Jan 2023 21:47:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E7=83=AD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20&=20=E5=A4=9A=E8=B7=AF=E7=94=B1=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.cjs | 2 + .prettierignore | 1 - .prettierrc | 3 +- docs/b.tsx | 7 + docs/config.ts | 10 + docs/counter.tsx | 16 + docs/guide/a.tsx | 7 + docs/guide/index.tsx | 7 + docs/index.md | 1 - docs/index.mdx | 22 + docs/tsconfig.json | 5 + package.json | 29 +- pnpm-lock.yaml | 1709 ++++++++++++++++- src/node/__test__/md.test.ts | 90 + src/node/build.ts | 80 +- src/node/cli.ts | 17 +- src/node/config.ts | 83 + src/node/dev.ts | 18 +- src/node/index.ts | 1 + src/node/plugin-island/config.ts | 52 + src/node/plugin-island/indexHtml.ts | 1 - src/node/plugin-mdx/index.ts | 6 + src/node/plugin-mdx/pluginMdxHmr.ts | 34 + src/node/plugin-mdx/pluginMdxRollup.ts | 46 + .../plugin-mdx/rehypePlugins/preWrapper.ts | 54 + src/node/plugin-mdx/rehypePlugins/shiki.ts | 33 + src/node/plugin-mdx/remarkPlugins/toc.ts | 64 + src/node/plugin-routes/RouteService.test.ts | 53 + src/node/plugin-routes/RouteService.ts | 70 + src/node/plugin-routes/fixtures/a.mdx | 0 .../plugin-routes/fixtures/guide/index.mdx | 0 src/node/plugin-routes/index.ts | 36 + src/node/vitePlugins.ts | 23 + src/runtime/Content.tsx | 7 + src/runtime/client-entry.tsx | 9 +- src/runtime/index.ts | 1 + src/runtime/ssr-entry.tsx | 11 +- src/shared/types/index.ts | 49 + src/shared/types/types.d.ts | 10 + src/theme-default/Layout/index.tsx | 9 +- tsconfig.json | 9 +- tsup.config.ts | 10 +- 42 files changed, 2571 insertions(+), 124 deletions(-) create mode 100644 docs/b.tsx create mode 100644 docs/config.ts create mode 100644 docs/counter.tsx create mode 100644 docs/guide/a.tsx create mode 100644 docs/guide/index.tsx delete mode 100644 docs/index.md create mode 100644 docs/index.mdx create mode 100644 docs/tsconfig.json create mode 100644 src/node/__test__/md.test.ts create mode 100644 src/node/config.ts create mode 100644 src/node/index.ts create mode 100644 src/node/plugin-island/config.ts create mode 100644 src/node/plugin-mdx/index.ts create mode 100644 src/node/plugin-mdx/pluginMdxHmr.ts create mode 100644 src/node/plugin-mdx/pluginMdxRollup.ts create mode 100644 src/node/plugin-mdx/rehypePlugins/preWrapper.ts create mode 100644 src/node/plugin-mdx/rehypePlugins/shiki.ts create mode 100644 src/node/plugin-mdx/remarkPlugins/toc.ts create mode 100644 src/node/plugin-routes/RouteService.test.ts create mode 100644 src/node/plugin-routes/RouteService.ts create mode 100644 src/node/plugin-routes/fixtures/a.mdx create mode 100644 src/node/plugin-routes/fixtures/guide/index.mdx create mode 100644 src/node/plugin-routes/index.ts create mode 100644 src/node/vitePlugins.ts create mode 100644 src/runtime/Content.tsx create mode 100644 src/runtime/index.ts create mode 100644 src/shared/types/index.ts create mode 100644 src/shared/types/types.d.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index f44be76..4c35429 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -3,6 +3,8 @@ module.exports = { "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", + 'prettier', + "plugin:prettier/recommended", ], parser: "@typescript-eslint/parser", parserOptions: { diff --git a/.prettierignore b/.prettierignore index 27c6f3c..384aa4d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,4 +5,3 @@ pnpm-lock.yaml dist bin esm-cjs -docs \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 1807e14..5f35112 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,5 +2,6 @@ "semi": true, "singleQuote": true, "printWidth": 80, - "trailingComma": "none" + "trailingComma": "none", + "endOfLine": "auto" } diff --git a/docs/b.tsx b/docs/b.tsx new file mode 100644 index 0000000..8e0c9c7 --- /dev/null +++ b/docs/b.tsx @@ -0,0 +1,7 @@ +const B = ()=>{ + return
+

hello b

+
+} + +export default B \ No newline at end of file diff --git a/docs/config.ts b/docs/config.ts new file mode 100644 index 0000000..4894eba --- /dev/null +++ b/docs/config.ts @@ -0,0 +1,10 @@ +import {defineConfig} from '../dist' + +export default defineConfig({ + title: "123", + description:"121152", + themeConfig:{ + }, + vite:{} +}) + diff --git a/docs/counter.tsx b/docs/counter.tsx new file mode 100644 index 0000000..9624c10 --- /dev/null +++ b/docs/counter.tsx @@ -0,0 +1,16 @@ +import { useState } from 'react'; + +export default function Counter() { + const [counter, setCounter] = useState(0); + return ( +
+ +
+ ); +} diff --git a/docs/guide/a.tsx b/docs/guide/a.tsx new file mode 100644 index 0000000..c848272 --- /dev/null +++ b/docs/guide/a.tsx @@ -0,0 +1,7 @@ +const A = ()=>{ + return
+

hello a

+
+} + +export default A \ No newline at end of file diff --git a/docs/guide/index.tsx b/docs/guide/index.tsx new file mode 100644 index 0000000..4ee928f --- /dev/null +++ b/docs/guide/index.tsx @@ -0,0 +1,7 @@ +const Index = ()=>{ + return
+

hello index!

+
+} + +export default Index \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 52bd9f8..0000000 --- a/docs/index.md +++ /dev/null @@ -1 +0,0 @@ -# 123123 diff --git a/docs/index.mdx b/docs/index.mdx new file mode 100644 index 0000000..32cecd5 --- /dev/null +++ b/docs/index.mdx @@ -0,0 +1,22 @@ +--- +title: 'island' +--- + +# 1231231 + +import Counter from './counter.tsx'; + + + +## GFM + +### Autolink + +literals www.example.com, https://example.com, and contact@example.com. + +111111 + +```js +const a = 1; +console.log(a); +``` diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 0000000..4756d93 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "jsx": "react-jsx" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 11170a5..5827423 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ "lint": "eslint --fix --ext .ts,.tsx,.js,.jsx --quiet ./", "dev": "tsup --watch", "build": "tsup", - "preview": "cd build && serve .", + "preview": "cd docs/build && serve .", "prepare": "husky install", "commit": "cz", - "test:unit": "vitest --ui", + "test:unit": "vitest", "prepare:e2e": "tsx scripts/prepare-e2e.ts", "test:e2e": "playwright test" }, @@ -25,6 +25,8 @@ "@commitlint/config-conventional": "^17.3.0", "@playwright/test": "1.26.1", "@types/fs-extra": "^9.0.13", + "@types/hast": "^2.3.4", + "@types/mdast": "^3.0.10", "@types/node": "^18.11.7", "@types/react": "^18.0.24", "@types/react-dom": "^18.0.8", @@ -41,23 +43,44 @@ "execa": "^6.1.0", "husky": "^8.0.2", "lint-staged": "^13.1.0", + "remark-mdx": "^2.2.1", + "remark-stringify": "^10.0.2", "rollup": "^3.2.3", "serve": "^14.0.1", "tsup": "^6.5.0", "tsx": "^3.12.1", "typescript": "^4.8.4", + "unist-util-visit": "^4.1.1", "vitest": "^0.25.3" }, "dependencies": { + "@loadable/component": "^5.15.2", + "@mdx-js/rollup": "2.1.3", "@vitejs/plugin-react": "^2.2.0", + "acorn": "^8.8.1", "cac": "^6.7.14", "eslint-config-prettier": "^8.5.0", + "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^1.0.0", + "mdast-util-mdxjs-esm": "^1.3.0", "ora": "^6.1.2", "prettier": "^2.8.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "vite": "^3.2.1" + "react-router-dom": "6.4.3", + "rehype-autolink-headings": "^6.1.1", + "rehype-slug": "^5.1.0", + "rehype-stringify": "^9.0.3", + "remark-frontmatter": "^4.0.1", + "remark-gfm": "^3.0.1", + "remark-mdx-frontmatter": "^2.1.1", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "shiki": "^0.12.1", + "unified": "^10.1.2", + "vite": "3.1.4" }, "lint-staged": { "**/*.{js,jsx,tsx,ts}": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7749123..dfbb0df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,8 +3,12 @@ lockfileVersion: 5.4 specifiers: '@commitlint/cli': ^17.3.0 '@commitlint/config-conventional': ^17.3.0 + '@loadable/component': ^5.15.2 + '@mdx-js/rollup': 2.1.3 '@playwright/test': 1.26.1 '@types/fs-extra': ^9.0.13 + '@types/hast': ^2.3.4 + '@types/mdast': ^3.0.10 '@types/node': ^18.11.7 '@types/react': ^18.0.24 '@types/react-dom': ^18.0.8 @@ -12,6 +16,7 @@ specifiers: '@typescript-eslint/parser': ^5.45.0 '@vitejs/plugin-react': ^2.2.0 '@vitest/ui': ^0.25.3 + acorn: ^8.8.1 cac: ^6.7.14 commitizen: ^4.2.5 commitlint: ^17.3.0 @@ -22,37 +27,75 @@ specifiers: eslint-plugin-react: ^7.31.11 eslint-plugin-react-hooks: ^4.6.0 execa: ^6.1.0 + fast-glob: ^3.2.12 fs-extra: ^10.1.0 + github-slugger: ^2.0.0 + hast-util-from-html: ^1.0.0 husky: ^8.0.2 lint-staged: ^13.1.0 + mdast-util-mdxjs-esm: ^1.3.0 ora: ^6.1.2 prettier: ^2.8.0 react: ^18.2.0 react-dom: ^18.2.0 + react-router-dom: 6.4.3 + rehype-autolink-headings: ^6.1.1 + rehype-slug: ^5.1.0 + rehype-stringify: ^9.0.3 + remark-frontmatter: ^4.0.1 + remark-gfm: ^3.0.1 + remark-mdx: ^2.2.1 + remark-mdx-frontmatter: ^2.1.1 + remark-parse: ^10.0.1 + remark-rehype: ^10.1.0 + remark-stringify: ^10.0.2 rollup: ^3.2.3 serve: ^14.0.1 + shiki: ^0.12.1 tsup: ^6.5.0 tsx: ^3.12.1 typescript: ^4.8.4 - vite: ^3.2.1 + unified: ^10.1.2 + unist-util-visit: ^4.1.1 + vite: 3.1.4 vitest: ^0.25.3 dependencies: - '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react/2.2.0_vite@3.2.1 + '@loadable/component': registry.npmmirror.com/@loadable/component/5.15.2_react@18.2.0 + '@mdx-js/rollup': registry.npmmirror.com/@mdx-js/rollup/2.1.3_rollup@3.2.3 + '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react/2.2.0_vite@3.1.4 + acorn: registry.npmmirror.com/acorn/8.8.1 cac: registry.npmmirror.com/cac/6.7.14 eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.29.0 + fast-glob: registry.npmmirror.com/fast-glob/3.2.12 fs-extra: registry.npmmirror.com/fs-extra/10.1.0 + github-slugger: registry.npmmirror.com/github-slugger/2.0.0 + hast-util-from-html: registry.npmmirror.com/hast-util-from-html/1.0.0 + mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm/1.3.0 ora: registry.npmmirror.com/ora/6.1.2 prettier: registry.npmmirror.com/prettier/2.8.0 react: registry.npmmirror.com/react/18.2.0 react-dom: registry.npmmirror.com/react-dom/18.2.0_react@18.2.0 - vite: registry.npmmirror.com/vite/3.2.1 + react-router-dom: registry.npmmirror.com/react-router-dom/6.4.3_biqbaboplfbrettd7655fr4n2y + rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings/6.1.1 + rehype-slug: registry.npmmirror.com/rehype-slug/5.1.0 + rehype-stringify: registry.npmmirror.com/rehype-stringify/9.0.3 + remark-frontmatter: registry.npmmirror.com/remark-frontmatter/4.0.1 + remark-gfm: registry.npmmirror.com/remark-gfm/3.0.1 + remark-mdx-frontmatter: registry.npmmirror.com/remark-mdx-frontmatter/2.1.1 + remark-parse: registry.npmmirror.com/remark-parse/10.0.1 + remark-rehype: registry.npmmirror.com/remark-rehype/10.1.0 + shiki: registry.npmmirror.com/shiki/0.12.1 + unified: registry.npmmirror.com/unified/10.1.2 + vite: registry.npmmirror.com/vite/3.1.4 devDependencies: '@commitlint/cli': registry.npmmirror.com/@commitlint/cli/17.3.0 '@commitlint/config-conventional': registry.npmmirror.com/@commitlint/config-conventional/17.3.0 '@playwright/test': registry.npmmirror.com/@playwright/test/1.26.1 '@types/fs-extra': registry.npmmirror.com/@types/fs-extra/9.0.13 + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 '@types/node': registry.npmmirror.com/@types/node/18.11.7 '@types/react': registry.npmmirror.com/@types/react/18.0.24 '@types/react-dom': registry.npmmirror.com/@types/react-dom/18.0.8 @@ -69,11 +112,14 @@ devDependencies: execa: registry.npmmirror.com/execa/6.1.0 husky: registry.npmmirror.com/husky/8.0.2 lint-staged: registry.npmmirror.com/lint-staged/13.1.0 + remark-mdx: registry.npmmirror.com/remark-mdx/2.2.1 + remark-stringify: registry.npmmirror.com/remark-stringify/10.0.2 rollup: registry.npmmirror.com/rollup/3.2.3 serve: registry.npmmirror.com/serve/14.0.1 tsup: registry.npmmirror.com/tsup/6.5.0_typescript@4.8.4 tsx: registry.npmmirror.com/tsx/3.12.1 typescript: registry.npmmirror.com/typescript/4.8.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 vitest: registry.npmmirror.com/vitest/0.25.3_@vitest+ui@0.25.3 packages: @@ -364,6 +410,15 @@ packages: '@babel/types': registry.npmmirror.com/@babel/types/7.20.0 dev: false + registry.npmmirror.com/@babel/runtime/7.20.6: + resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.6.tgz} + name: '@babel/runtime' + version: 7.20.6 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + dev: false + registry.npmmirror.com/@babel/template/7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz} name: '@babel/template' @@ -766,6 +821,64 @@ packages: '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 dev: true + registry.npmmirror.com/@loadable/component/5.15.2_react@18.2.0: + resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} + id: registry.npmmirror.com/@loadable/component/5.15.2 + name: '@loadable/component' + version: 5.15.2 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.3.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.6 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics/3.3.2 + react: registry.npmmirror.com/react/18.2.0 + react-is: registry.npmmirror.com/react-is/16.13.1 + dev: false + + registry.npmmirror.com/@mdx-js/mdx/2.2.1: + resolution: {integrity: sha512-hZ3ex7exYLJn6FfReq8yTvA6TE53uW9UHJQM9IlSauOuS55J9y8RtA7W+dzp6Yrzr00/U1sd7q+Wf61q6SfiTQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mdx-js/mdx/-/mdx-2.2.1.tgz} + name: '@mdx-js/mdx' + version: 2.2.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/mdx': registry.npmmirror.com/@types/mdx/2.0.3 + estree-util-build-jsx: registry.npmmirror.com/estree-util-build-jsx/2.2.0 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name/2.0.1 + estree-util-to-js: registry.npmmirror.com/estree-util-to-js/1.1.0 + estree-walker: registry.npmmirror.com/estree-walker/3.0.1 + hast-util-to-estree: registry.npmmirror.com/hast-util-to-estree/2.1.0 + markdown-extensions: registry.npmmirror.com/markdown-extensions/1.1.1 + periscopic: registry.npmmirror.com/periscopic/3.0.4 + remark-mdx: registry.npmmirror.com/remark-mdx/2.2.1 + remark-parse: registry.npmmirror.com/remark-parse/10.0.1 + remark-rehype: registry.npmmirror.com/remark-rehype/10.1.0 + unified: registry.npmmirror.com/unified/10.1.2 + unist-util-position-from-estree: registry.npmmirror.com/unist-util-position-from-estree/1.1.1 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position/3.0.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + vfile: registry.npmmirror.com/vfile/5.3.6 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@mdx-js/rollup/2.1.3_rollup@3.2.3: + resolution: {integrity: sha512-KaX9GcZ63TDaLNH9UYYE94+naZQldV2IUzmMkDVOlPxDtTh8kcEn8l6/4W1P79wxZZbakSOFejTuaYmcstl5sA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@mdx-js/rollup/-/rollup-2.1.3.tgz} + id: registry.npmmirror.com/@mdx-js/rollup/2.1.3 + name: '@mdx-js/rollup' + version: 2.1.3 + peerDependencies: + rollup: '>=2' + dependencies: + '@mdx-js/mdx': registry.npmmirror.com/@mdx-js/mdx/2.2.1 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.2.1 + rollup: registry.npmmirror.com/rollup/3.2.3 + source-map: registry.npmmirror.com/source-map/0.7.4 + vfile: registry.npmmirror.com/vfile/5.3.6 + transitivePeerDependencies: + - supports-color + dev: false + registry.npmmirror.com/@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} name: '@nodelib/fs.scandir' @@ -774,14 +887,12 @@ packages: dependencies: '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 run-parallel: registry.npmmirror.com/run-parallel/1.2.0 - dev: true registry.npmmirror.com/@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} name: '@nodelib/fs.stat' version: 2.0.5 engines: {node: '>= 8'} - dev: true registry.npmmirror.com/@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} @@ -791,7 +902,6 @@ packages: dependencies: '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir/2.1.5 fastq: registry.npmmirror.com/fastq/1.13.0 - dev: true registry.npmmirror.com/@playwright/test/1.26.1: resolution: {integrity: sha512-bNxyZASVt2adSZ9gbD7NCydzcb5JaI0OR9hc7s+nmPeH604gwp0zp17NNpwXY4c8nvuBGQQ9oGDx72LE+cUWvw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@playwright/test/-/test-1.26.1.tgz} @@ -810,6 +920,23 @@ packages: version: 1.0.0-next.21 dev: true + registry.npmmirror.com/@remix-run/router/1.0.3: + resolution: {integrity: sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@remix-run/router/-/router-1.0.3.tgz} + name: '@remix-run/router' + version: 1.0.3 + engines: {node: '>=14'} + dev: false + + registry.npmmirror.com/@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} + name: '@rollup/pluginutils' + version: 4.2.1 + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: false + registry.npmmirror.com/@tsconfig/node10/1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz} name: '@tsconfig/node10' @@ -834,6 +961,13 @@ packages: version: 1.0.3 dev: true + registry.npmmirror.com/@types/acorn/4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/acorn/-/acorn-4.0.6.tgz} + name: '@types/acorn' + version: 4.0.6 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + registry.npmmirror.com/@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/chai-subset/-/chai-subset-1.3.3.tgz} name: '@types/chai-subset' @@ -848,6 +982,25 @@ packages: version: 4.3.4 dev: true + registry.npmmirror.com/@types/debug/4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz} + name: '@types/debug' + version: 4.1.7 + dependencies: + '@types/ms': registry.npmmirror.com/@types/ms/0.7.31 + + registry.npmmirror.com/@types/estree-jsx/1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz} + name: '@types/estree-jsx' + version: 1.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + + registry.npmmirror.com/@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz} + name: '@types/estree' + version: 1.0.0 + registry.npmmirror.com/@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz} name: '@types/fs-extra' @@ -856,18 +1009,43 @@ packages: '@types/node': registry.npmmirror.com/@types/node/18.11.7 dev: true + registry.npmmirror.com/@types/hast/2.3.4: + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hast/-/hast-2.3.4.tgz} + name: '@types/hast' + version: 2.3.4 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + registry.npmmirror.com/@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} name: '@types/json-schema' version: 7.0.11 dev: true + registry.npmmirror.com/@types/mdast/3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.10.tgz} + name: '@types/mdast' + version: 3.0.10 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + + registry.npmmirror.com/@types/mdx/2.0.3: + resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdx/-/mdx-2.0.3.tgz} + name: '@types/mdx' + version: 2.0.3 + dev: false + registry.npmmirror.com/@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz} name: '@types/minimist' version: 1.2.2 dev: true + registry.npmmirror.com/@types/ms/0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz} + name: '@types/ms' + version: 0.7.31 + registry.npmmirror.com/@types/node/14.18.34: resolution: {integrity: sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-14.18.34.tgz} name: '@types/node' @@ -892,6 +1070,12 @@ packages: version: 4.0.0 dev: true + registry.npmmirror.com/@types/parse5/6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz} + name: '@types/parse5' + version: 6.0.3 + dev: false + registry.npmmirror.com/@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz} name: '@types/prop-types' @@ -928,6 +1112,11 @@ packages: version: 7.3.13 dev: true + registry.npmmirror.com/@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz} + name: '@types/unist' + version: 2.0.6 + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.45.0_e7dbdy4h4uife7ujplb4sbnkau: resolution: {integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.45.0 @@ -1078,7 +1267,7 @@ packages: eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 dev: true - registry.npmmirror.com/@vitejs/plugin-react/2.2.0_vite@3.2.1: + registry.npmmirror.com/@vitejs/plugin-react/2.2.0_vite@3.1.4: resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz} id: registry.npmmirror.com/@vitejs/plugin-react/2.2.0 name: '@vitejs/plugin-react' @@ -1094,7 +1283,7 @@ packages: '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.19.6 magic-string: registry.npmmirror.com/magic-string/0.26.7 react-refresh: registry.npmmirror.com/react-refresh/0.14.0 - vite: registry.npmmirror.com/vite/3.2.1 + vite: registry.npmmirror.com/vite/3.1.4 transitivePeerDependencies: - supports-color dev: false @@ -1142,7 +1331,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: registry.npmmirror.com/acorn/8.8.1 - dev: true registry.npmmirror.com/acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz} @@ -1157,7 +1345,6 @@ packages: version: 8.8.1 engines: {node: '>=0.4.0'} hasBin: true - dev: true registry.npmmirror.com/aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz} @@ -1355,6 +1542,13 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/astring/1.8.4: + resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astring/-/astring-1.8.4.tgz} + name: astring + version: 1.8.4 + hasBin: true + dev: false + registry.npmmirror.com/at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz} name: at-least-node @@ -1362,6 +1556,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + registry.npmmirror.com/bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz} + name: bail + version: 2.0.2 + registry.npmmirror.com/balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} name: balanced-match @@ -1432,7 +1631,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: registry.npmmirror.com/fill-range/7.0.1 - dev: true registry.npmmirror.com/browserslist/4.21.4: resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz} @@ -1551,6 +1749,11 @@ packages: version: 1.0.30001426 dev: false + registry.npmmirror.com/ccount/2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz} + name: ccount + version: 2.0.1 + registry.npmmirror.com/chai/4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chai/-/chai-4.3.7.tgz} name: chai @@ -1601,6 +1804,26 @@ packages: version: 5.0.1 engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + registry.npmmirror.com/character-entities-html4/2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz} + name: character-entities-html4 + version: 2.1.0 + + registry.npmmirror.com/character-entities-legacy/3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz} + name: character-entities-legacy + version: 3.0.0 + + registry.npmmirror.com/character-entities/2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz} + name: character-entities + version: 2.0.2 + + registry.npmmirror.com/character-reference-invalid/2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz} + name: character-reference-invalid + version: 2.0.1 + registry.npmmirror.com/chardet/0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} name: chardet @@ -1756,6 +1979,12 @@ packages: version: 2.0.19 dev: true + registry.npmmirror.com/comma-separated-tokens/2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz} + name: comma-separated-tokens + version: 2.0.3 + dev: false + registry.npmmirror.com/commander/4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz} name: commander @@ -2029,6 +2258,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/decode-named-character-reference/1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} + name: decode-named-character-reference + version: 1.0.2 + dependencies: + character-entities: registry.npmmirror.com/character-entities/2.0.2 + registry.npmmirror.com/dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz} name: dedent @@ -2074,6 +2310,12 @@ packages: object-keys: registry.npmmirror.com/object-keys/1.1.1 dev: true + registry.npmmirror.com/dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz} + name: dequal + version: 2.0.3 + engines: {node: '>=6'} + registry.npmmirror.com/detect-file/1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-file/-/detect-file-1.0.0.tgz} name: detect-file @@ -2095,6 +2337,12 @@ packages: engines: {node: '>=0.3.1'} dev: true + registry.npmmirror.com/diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz} + name: diff + version: 5.1.0 + engines: {node: '>=0.3.1'} + registry.npmmirror.com/dir-glob/3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} name: dir-glob @@ -2155,6 +2403,13 @@ packages: version: 9.2.2 dev: true + registry.npmmirror.com/entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-4.4.0.tgz} + name: entities + version: 4.4.0 + engines: {node: '>=0.12'} + dev: false + registry.npmmirror.com/error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} name: error-ex @@ -2464,6 +2719,13 @@ packages: engines: {node: '>=10'} dev: true + registry.npmmirror.com/escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} + name: escape-string-regexp + version: 5.0.0 + engines: {node: '>=12'} + dev: false + registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.29.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz} id: registry.npmmirror.com/eslint-config-prettier/8.5.0 @@ -2675,6 +2937,69 @@ packages: engines: {node: '>=4.0'} dev: true + registry.npmmirror.com/estree-util-attach-comments/2.1.0: + resolution: {integrity: sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz} + name: estree-util-attach-comments + version: 2.1.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + dev: false + + registry.npmmirror.com/estree-util-build-jsx/2.2.0: + resolution: {integrity: sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.0.tgz} + name: estree-util-build-jsx + version: 2.2.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name/2.0.1 + estree-walker: registry.npmmirror.com/estree-walker/3.0.1 + dev: false + + registry.npmmirror.com/estree-util-is-identifier-name/2.0.1: + resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz} + name: estree-util-is-identifier-name + version: 2.0.1 + + registry.npmmirror.com/estree-util-to-js/1.1.0: + resolution: {integrity: sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz} + name: estree-util-to-js + version: 1.1.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + astring: registry.npmmirror.com/astring/1.8.4 + source-map: registry.npmmirror.com/source-map/0.7.4 + dev: false + + registry.npmmirror.com/estree-util-value-to-estree/2.1.0: + resolution: {integrity: sha512-fcAWmZilY1+tEt7GSeLZoHDvp2NNgLkJznBRYkEpaholas41d+Y0zd/Acch7+qzZdxLtxLi+m04KjHFJSoMa6A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-value-to-estree/-/estree-util-value-to-estree-2.1.0.tgz} + name: estree-util-value-to-estree + version: 2.1.0 + engines: {node: '>=14.0.0'} + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + is-plain-obj: registry.npmmirror.com/is-plain-obj/4.1.0 + dev: false + + registry.npmmirror.com/estree-util-visit/1.2.0: + resolution: {integrity: sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-visit/-/estree-util-visit-1.2.0.tgz} + name: estree-util-visit + version: 1.2.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + + registry.npmmirror.com/estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + dev: false + + registry.npmmirror.com/estree-walker/3.0.1: + resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.1.tgz} + name: estree-walker + version: 3.0.1 + dev: false + registry.npmmirror.com/esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} name: esutils @@ -2725,6 +3050,11 @@ packages: homedir-polyfill: registry.npmmirror.com/homedir-polyfill/1.0.3 dev: true + registry.npmmirror.com/extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} + name: extend + version: 3.0.2 + registry.npmmirror.com/external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} name: external-editor @@ -2749,7 +3079,7 @@ packages: dev: true registry.npmmirror.com/fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} name: fast-glob version: 3.2.12 engines: {node: '>=8.6.0'} @@ -2759,7 +3089,6 @@ packages: glob-parent: registry.npmmirror.com/glob-parent/5.1.2 merge2: registry.npmmirror.com/merge2/1.4.1 micromatch: registry.npmmirror.com/micromatch/4.0.5 - dev: true registry.npmmirror.com/fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} @@ -2787,7 +3116,14 @@ packages: version: 1.13.0 dependencies: reusify: registry.npmmirror.com/reusify/1.0.4 - dev: true + + registry.npmmirror.com/fault/2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz} + name: fault + version: 2.0.1 + dependencies: + format: registry.npmmirror.com/format/0.2.2 + dev: false registry.npmmirror.com/figures/3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz} @@ -2814,7 +3150,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 - dev: true registry.npmmirror.com/find-node-modules/2.1.3: resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-node-modules/-/find-node-modules-2.1.3.tgz} @@ -2879,6 +3214,13 @@ packages: version: 3.2.7 dev: true + registry.npmmirror.com/format/0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/format/-/format-0.2.2.tgz} + name: format + version: 0.2.2 + engines: {node: '>=0.4.x'} + dev: false + registry.npmmirror.com/fs-extra/10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} name: fs-extra @@ -3006,14 +3348,19 @@ packages: through2: registry.npmmirror.com/through2/4.0.2 dev: true + registry.npmmirror.com/github-slugger/2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-slugger/-/github-slugger-2.0.0.tgz} + name: github-slugger + version: 2.0.0 + dev: false + registry.npmmirror.com/glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} name: glob-parent version: 5.1.2 engines: {node: '>= 6'} dependencies: is-glob: registry.npmmirror.com/is-glob/4.0.3 - dev: true registry.npmmirror.com/glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} @@ -3182,6 +3529,138 @@ packages: dependencies: function-bind: registry.npmmirror.com/function-bind/1.1.1 + registry.npmmirror.com/hast-util-from-html/1.0.0: + resolution: {integrity: sha512-tXYPhk28aMtDjGb4xNDaxtGKqlyZAEPGjN12jPCjczWppdLSrG/0r604a3FMvrd+9nV1HclILQiVqMnuPxN0WQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-html/-/hast-util-from-html-1.0.0.tgz} + name: hast-util-from-html + version: 1.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5/7.1.0 + parse5: registry.npmmirror.com/parse5/7.1.2 + vfile: registry.npmmirror.com/vfile/5.3.6 + dev: false + + registry.npmmirror.com/hast-util-from-parse5/7.1.0: + resolution: {integrity: sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz} + name: hast-util-from-parse5 + version: 7.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/parse5': registry.npmmirror.com/@types/parse5/6.0.3 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + hastscript: registry.npmmirror.com/hastscript/7.1.0 + property-information: registry.npmmirror.com/property-information/6.2.0 + vfile: registry.npmmirror.com/vfile/5.3.6 + vfile-location: registry.npmmirror.com/vfile-location/4.0.1 + web-namespaces: registry.npmmirror.com/web-namespaces/2.0.1 + dev: false + + registry.npmmirror.com/hast-util-has-property/2.0.0: + resolution: {integrity: sha512-4Qf++8o5v14us4Muv3HRj+Er6wTNGA/N9uCaZMty4JWvyFKLdhULrv4KE1b65AthsSO9TXSZnjuxS8ecIyhb0w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-has-property/-/hast-util-has-property-2.0.0.tgz} + name: hast-util-has-property + version: 2.0.0 + dev: false + + registry.npmmirror.com/hast-util-heading-rank/2.1.0: + resolution: {integrity: sha512-w+Rw20Q/iWp2Bcnr6uTrYU6/ftZLbHKhvc8nM26VIWpDqDMlku2iXUVTeOlsdoih/UKQhY7PHQ+vZ0Aqq8bxtQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-heading-rank/-/hast-util-heading-rank-2.1.0.tgz} + name: hast-util-heading-rank + version: 2.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + dev: false + + registry.npmmirror.com/hast-util-is-element/2.1.2: + resolution: {integrity: sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz} + name: hast-util-is-element + version: 2.1.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + dev: false + + registry.npmmirror.com/hast-util-parse-selector/3.1.0: + resolution: {integrity: sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz} + name: hast-util-parse-selector + version: 3.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + dev: false + + registry.npmmirror.com/hast-util-to-estree/2.1.0: + resolution: {integrity: sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-2.1.0.tgz} + name: hast-util-to-estree + version: 2.1.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens/2.0.3 + estree-util-attach-comments: registry.npmmirror.com/estree-util-attach-comments/2.1.0 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name/2.0.1 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace/2.0.0 + mdast-util-mdx-expression: registry.npmmirror.com/mdast-util-mdx-expression/1.3.1 + mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm/1.3.0 + property-information: registry.npmmirror.com/property-information/6.2.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens/2.0.2 + style-to-object: registry.npmmirror.com/style-to-object/0.3.0 + unist-util-position: registry.npmmirror.com/unist-util-position/4.0.3 + zwitch: registry.npmmirror.com/zwitch/2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/hast-util-to-html/8.0.3: + resolution: {integrity: sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz} + name: hast-util-to-html + version: 8.0.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + ccount: registry.npmmirror.com/ccount/2.0.1 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens/2.0.3 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element/2.1.2 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace/2.0.0 + html-void-elements: registry.npmmirror.com/html-void-elements/2.0.1 + property-information: registry.npmmirror.com/property-information/6.2.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens/2.0.2 + stringify-entities: registry.npmmirror.com/stringify-entities/4.0.3 + unist-util-is: registry.npmmirror.com/unist-util-is/5.1.1 + dev: false + + registry.npmmirror.com/hast-util-to-string/2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz} + name: hast-util-to-string + version: 2.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + dev: false + + registry.npmmirror.com/hast-util-whitespace/2.0.0: + resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz} + name: hast-util-whitespace + version: 2.0.0 + dev: false + + registry.npmmirror.com/hastscript/7.1.0: + resolution: {integrity: sha512-uBjaTTLN0MkCZxY/R2fWUOcu7FRtUVzKRO5P/RAfgsu3yFiMB1JWCO4AjeVkgHxAira1f2UecHK5WfS9QurlWA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-7.1.0.tgz} + name: hastscript + version: 7.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens/2.0.3 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector/3.1.0 + property-information: registry.npmmirror.com/property-information/6.2.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens/2.0.2 + dev: false + + registry.npmmirror.com/hoist-non-react-statics/3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz} + name: hoist-non-react-statics + version: 3.3.2 + dependencies: + react-is: registry.npmmirror.com/react-is/16.13.1 + dev: false + registry.npmmirror.com/homedir-polyfill/1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz} name: homedir-polyfill @@ -3206,6 +3685,12 @@ packages: lru-cache: registry.npmmirror.com/lru-cache/6.0.0 dev: true + registry.npmmirror.com/html-void-elements/2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz} + name: html-void-elements + version: 2.0.1 + dev: false + registry.npmmirror.com/human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} name: human-signals @@ -3293,6 +3778,12 @@ packages: version: 1.3.8 dev: true + registry.npmmirror.com/inline-style-parser/0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz} + name: inline-style-parser + version: 0.1.1 + dev: false + registry.npmmirror.com/inquirer/8.2.4: resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-8.2.4.tgz} name: inquirer @@ -3327,6 +3818,19 @@ packages: side-channel: registry.npmmirror.com/side-channel/1.0.4 dev: true + registry.npmmirror.com/is-alphabetical/2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz} + name: is-alphabetical + version: 2.0.1 + + registry.npmmirror.com/is-alphanumerical/2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz} + name: is-alphanumerical + version: 2.0.1 + dependencies: + is-alphabetical: registry.npmmirror.com/is-alphabetical/2.0.1 + is-decimal: registry.npmmirror.com/is-decimal/2.0.1 + registry.npmmirror.com/is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} name: is-arrayish @@ -3360,6 +3864,12 @@ packages: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 dev: true + registry.npmmirror.com/is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} + name: is-buffer + version: 2.0.5 + engines: {node: '>=4'} + registry.npmmirror.com/is-callable/1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} name: is-callable @@ -3383,6 +3893,11 @@ packages: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 dev: true + registry.npmmirror.com/is-decimal/2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz} + name: is-decimal + version: 2.0.1 + registry.npmmirror.com/is-docker/2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} name: is-docker @@ -3396,7 +3911,6 @@ packages: name: is-extglob version: 2.1.1 engines: {node: '>=0.10.0'} - dev: true registry.npmmirror.com/is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} @@ -3419,7 +3933,11 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: registry.npmmirror.com/is-extglob/2.1.1 - dev: true + + registry.npmmirror.com/is-hexadecimal/2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz} + name: is-hexadecimal + version: 2.0.1 registry.npmmirror.com/is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz} @@ -3456,7 +3974,6 @@ packages: name: is-number version: 7.0.0 engines: {node: '>=0.12.0'} - dev: true registry.npmmirror.com/is-obj/2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz} @@ -3479,6 +3996,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/is-plain-obj/4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz} + name: is-plain-obj + version: 4.1.0 + engines: {node: '>=12'} + registry.npmmirror.com/is-port-reachable/4.0.0: resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-port-reachable/-/is-port-reachable-4.0.0.tgz} name: is-port-reachable @@ -3486,6 +4009,14 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + registry.npmmirror.com/is-reference/3.0.0: + resolution: {integrity: sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-reference/-/is-reference-3.0.0.tgz} + name: is-reference + version: 3.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + dev: false + registry.npmmirror.com/is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} name: is-regex @@ -3662,6 +4193,12 @@ packages: hasBin: true dev: false + registry.npmmirror.com/jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz} + name: jsonc-parser + version: 3.2.0 + dev: false + registry.npmmirror.com/jsonfile/6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} name: jsonfile @@ -3695,6 +4232,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} + name: kleur + version: 4.1.5 + engines: {node: '>=6'} + registry.npmmirror.com/levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} name: levn @@ -3906,6 +4449,11 @@ packages: wrap-ansi: registry.npmmirror.com/wrap-ansi/6.2.0 dev: true + registry.npmmirror.com/longest-streak/3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz} + name: longest-streak + version: 3.1.0 + registry.npmmirror.com/longest/2.0.1: resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest/-/longest-2.0.1.tgz} name: longest @@ -3967,43 +4515,642 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/meow/-/meow-8.1.2.tgz} - name: meow - version: 8.1.2 - engines: {node: '>=10'} - dependencies: - '@types/minimist': registry.npmmirror.com/@types/minimist/1.2.2 - camelcase-keys: registry.npmmirror.com/camelcase-keys/6.2.2 - decamelize-keys: registry.npmmirror.com/decamelize-keys/1.1.1 - hard-rejection: registry.npmmirror.com/hard-rejection/2.1.0 - minimist-options: registry.npmmirror.com/minimist-options/4.1.0 - normalize-package-data: registry.npmmirror.com/normalize-package-data/3.0.3 - read-pkg-up: registry.npmmirror.com/read-pkg-up/7.0.1 - redent: registry.npmmirror.com/redent/3.0.0 - trim-newlines: registry.npmmirror.com/trim-newlines/3.0.1 - type-fest: registry.npmmirror.com/type-fest/0.18.1 - yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 - dev: true + registry.npmmirror.com/markdown-extensions/1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz} + name: markdown-extensions + version: 1.1.1 + engines: {node: '>=0.10.0'} + dev: false - registry.npmmirror.com/merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} - name: merge-stream - version: 2.0.0 - dev: true + registry.npmmirror.com/markdown-table/3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} + name: markdown-table + version: 3.0.3 + dev: false - registry.npmmirror.com/merge/2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz} - name: merge + registry.npmmirror.com/mdast-util-definitions/5.1.1: + resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz} + name: mdast-util-definitions + version: 5.1.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + dev: false + + registry.npmmirror.com/mdast-util-find-and-replace/2.2.1: + resolution: {integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz} + name: mdast-util-find-and-replace + version: 2.2.1 + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/5.0.0 + unist-util-is: registry.npmmirror.com/unist-util-is/5.1.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents/5.1.1 + dev: false + + registry.npmmirror.com/mdast-util-from-markdown/1.2.0: + resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz} + name: mdast-util-from-markdown + version: 1.2.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference/1.0.2 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string/3.1.0 + micromark: registry.npmmirror.com/micromark/3.1.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference/1.0.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string/1.0.2 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position/3.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/mdast-util-frontmatter/1.0.0: + resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz} + name: mdast-util-frontmatter + version: 1.0.0 + dependencies: + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter/1.0.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-autolink-literal/1.0.2: + resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz} + name: mdast-util-gfm-autolink-literal + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + ccount: registry.npmmirror.com/ccount/2.0.1 + mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace/2.2.1 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-footnote/1.0.1: + resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz} + name: mdast-util-gfm-footnote + version: 1.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-strikethrough/1.0.2: + resolution: {integrity: sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz} + name: mdast-util-gfm-strikethrough + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-table/1.0.6: + resolution: {integrity: sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz} + name: mdast-util-gfm-table + version: 1.0.6 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + markdown-table: registry.npmmirror.com/markdown-table/3.0.3 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown/1.2.0 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-gfm-task-list-item/1.0.1: + resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz} + name: mdast-util-gfm-task-list-item + version: 1.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm/2.0.1: + resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz} + name: mdast-util-gfm + version: 2.0.1 + dependencies: + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown/1.2.0 + mdast-util-gfm-autolink-literal: registry.npmmirror.com/mdast-util-gfm-autolink-literal/1.0.2 + mdast-util-gfm-footnote: registry.npmmirror.com/mdast-util-gfm-footnote/1.0.1 + mdast-util-gfm-strikethrough: registry.npmmirror.com/mdast-util-gfm-strikethrough/1.0.2 + mdast-util-gfm-table: registry.npmmirror.com/mdast-util-gfm-table/1.0.6 + mdast-util-gfm-task-list-item: registry.npmmirror.com/mdast-util-gfm-task-list-item/1.0.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-mdx-expression/1.3.1: + resolution: {integrity: sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz} + name: mdast-util-mdx-expression + version: 1.3.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown/1.2.0 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/mdast-util-mdx-jsx/2.1.0: + resolution: {integrity: sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz} + name: mdast-util-mdx-jsx + version: 2.1.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + ccount: registry.npmmirror.com/ccount/2.0.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + parse-entities: registry.npmmirror.com/parse-entities/4.0.0 + stringify-entities: registry.npmmirror.com/stringify-entities/4.0.3 + unist-util-remove-position: registry.npmmirror.com/unist-util-remove-position/4.0.1 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position/3.0.2 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/mdast-util-mdx/2.0.0: + resolution: {integrity: sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz} + name: mdast-util-mdx + version: 2.0.0 + dependencies: + mdast-util-mdx-expression: registry.npmmirror.com/mdast-util-mdx-expression/1.3.1 + mdast-util-mdx-jsx: registry.npmmirror.com/mdast-util-mdx-jsx/2.1.0 + mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm/1.3.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/mdast-util-mdxjs-esm/1.3.0: + resolution: {integrity: sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz} + name: mdast-util-mdxjs-esm + version: 1.3.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx/1.0.0 + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown/1.2.0 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/mdast-util-to-hast/12.2.4: + resolution: {integrity: sha512-a21xoxSef1l8VhHxS1Dnyioz6grrJkoaCUgGzMD/7dWHvboYX3VW53esRUfB5tgTyz4Yos1n25SPcj35dJqmAg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.4.tgz} + name: mdast-util-to-hast + version: 12.2.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-definitions: registry.npmmirror.com/mdast-util-definitions/5.1.1 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri/1.1.0 + trim-lines: registry.npmmirror.com/trim-lines/3.0.1 + unist-builder: registry.npmmirror.com/unist-builder/3.0.0 + unist-util-generated: registry.npmmirror.com/unist-util-generated/2.0.0 + unist-util-position: registry.npmmirror.com/unist-util-position/4.0.3 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + dev: false + + registry.npmmirror.com/mdast-util-to-markdown/1.4.0: + resolution: {integrity: sha512-IjXARf/O8VGx/pc5SZ7syfydq1DYL9vd92orsG5U0b4GNCmAvXzu+n7sbzfIKrXwB0AVrYk3NV2kXl0AIi9LCA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.4.0.tgz} + name: mdast-util-to-markdown + version: 1.4.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + longest-streak: registry.npmmirror.com/longest-streak/3.1.0 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string/3.1.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string/1.0.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + zwitch: registry.npmmirror.com/zwitch/2.0.4 + + registry.npmmirror.com/mdast-util-to-string/3.1.0: + resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz} + name: mdast-util-to-string + version: 3.1.0 + + registry.npmmirror.com/meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/meow/-/meow-8.1.2.tgz} + name: meow + version: 8.1.2 + engines: {node: '>=10'} + dependencies: + '@types/minimist': registry.npmmirror.com/@types/minimist/1.2.2 + camelcase-keys: registry.npmmirror.com/camelcase-keys/6.2.2 + decamelize-keys: registry.npmmirror.com/decamelize-keys/1.1.1 + hard-rejection: registry.npmmirror.com/hard-rejection/2.1.0 + minimist-options: registry.npmmirror.com/minimist-options/4.1.0 + normalize-package-data: registry.npmmirror.com/normalize-package-data/3.0.3 + read-pkg-up: registry.npmmirror.com/read-pkg-up/7.0.1 + redent: registry.npmmirror.com/redent/3.0.0 + trim-newlines: registry.npmmirror.com/trim-newlines/3.0.1 + type-fest: registry.npmmirror.com/type-fest/0.18.1 + yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 + dev: true + + registry.npmmirror.com/merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: true + + registry.npmmirror.com/merge/2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz} + name: merge version: 2.1.1 dev: true registry.npmmirror.com/merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} name: merge2 version: 1.4.1 engines: {node: '>= 8'} - dev: true + + registry.npmmirror.com/micromark-core-commonmark/1.0.6: + resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz} + name: micromark-core-commonmark + version: 1.0.6 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference/1.0.2 + micromark-factory-destination: registry.npmmirror.com/micromark-factory-destination/1.0.0 + micromark-factory-label: registry.npmmirror.com/micromark-factory-label/1.0.2 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-factory-title: registry.npmmirror.com/micromark-factory-title/1.0.2 + micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked/1.0.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character/1.0.0 + micromark-util-html-tag-name: registry.npmmirror.com/micromark-util-html-tag-name/1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all/1.0.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize/1.0.2 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + + registry.npmmirror.com/micromark-extension-frontmatter/1.0.0: + resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz} + name: micromark-extension-frontmatter + version: 1.0.0 + dependencies: + fault: registry.npmmirror.com/fault/2.0.1 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-autolink-literal/1.0.3: + resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz} + name: micromark-extension-gfm-autolink-literal + version: 1.0.3 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-footnote/1.0.4: + resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz} + name: micromark-extension-gfm-footnote + version: 1.0.4 + dependencies: + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark/1.0.6 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-strikethrough/1.0.4: + resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz} + name: micromark-extension-gfm-strikethrough + version: 1.0.4 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked/1.0.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character/1.0.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all/1.0.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-table/1.0.5: + resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz} + name: micromark-extension-gfm-table + version: 1.0.5 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-tagfilter/1.0.1: + resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz} + name: micromark-extension-gfm-tagfilter + version: 1.0.1 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-task-list-item/1.0.3: + resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz} + name: micromark-extension-gfm-task-list-item + version: 1.0.3 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm/2.0.1: + resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz} + name: micromark-extension-gfm + version: 2.0.1 + dependencies: + micromark-extension-gfm-autolink-literal: registry.npmmirror.com/micromark-extension-gfm-autolink-literal/1.0.3 + micromark-extension-gfm-footnote: registry.npmmirror.com/micromark-extension-gfm-footnote/1.0.4 + micromark-extension-gfm-strikethrough: registry.npmmirror.com/micromark-extension-gfm-strikethrough/1.0.4 + micromark-extension-gfm-table: registry.npmmirror.com/micromark-extension-gfm-table/1.0.5 + micromark-extension-gfm-tagfilter: registry.npmmirror.com/micromark-extension-gfm-tagfilter/1.0.1 + micromark-extension-gfm-task-list-item: registry.npmmirror.com/micromark-extension-gfm-task-list-item/1.0.3 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions/1.0.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + dev: false + + registry.npmmirror.com/micromark-extension-mdx-expression/1.0.3: + resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz} + name: micromark-extension-mdx-expression + version: 1.0.3 + dependencies: + micromark-factory-mdx-expression: registry.npmmirror.com/micromark-factory-mdx-expression/1.0.6 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-events-to-acorn: registry.npmmirror.com/micromark-util-events-to-acorn/1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + + registry.npmmirror.com/micromark-extension-mdx-jsx/1.0.3: + resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz} + name: micromark-extension-mdx-jsx + version: 1.0.3 + dependencies: + '@types/acorn': registry.npmmirror.com/@types/acorn/4.0.6 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name/2.0.1 + micromark-factory-mdx-expression: registry.npmmirror.com/micromark-factory-mdx-expression/1.0.6 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/micromark-extension-mdx-md/1.0.0: + resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz} + name: micromark-extension-mdx-md + version: 1.0.0 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-extension-mdxjs-esm/1.0.3: + resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz} + name: micromark-extension-mdxjs-esm + version: 1.0.3 + dependencies: + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark/1.0.6 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-events-to-acorn: registry.npmmirror.com/micromark-util-events-to-acorn/1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + unist-util-position-from-estree: registry.npmmirror.com/unist-util-position-from-estree/1.1.1 + uvu: registry.npmmirror.com/uvu/0.5.6 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/micromark-extension-mdxjs/1.0.0: + resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz} + name: micromark-extension-mdxjs + version: 1.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn/8.8.1 + acorn-jsx: registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.8.1 + micromark-extension-mdx-expression: registry.npmmirror.com/micromark-extension-mdx-expression/1.0.3 + micromark-extension-mdx-jsx: registry.npmmirror.com/micromark-extension-mdx-jsx/1.0.3 + micromark-extension-mdx-md: registry.npmmirror.com/micromark-extension-mdx-md/1.0.0 + micromark-extension-mdxjs-esm: registry.npmmirror.com/micromark-extension-mdxjs-esm/1.0.3 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions/1.0.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-factory-destination/1.0.0: + resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz} + name: micromark-factory-destination + version: 1.0.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-factory-label/1.0.2: + resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz} + name: micromark-factory-label + version: 1.0.2 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + + registry.npmmirror.com/micromark-factory-mdx-expression/1.0.6: + resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.6.tgz} + name: micromark-factory-mdx-expression + version: 1.0.6 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-events-to-acorn: registry.npmmirror.com/micromark-util-events-to-acorn/1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + unist-util-position-from-estree: registry.npmmirror.com/unist-util-position-from-estree/1.1.1 + uvu: registry.npmmirror.com/uvu/0.5.6 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/micromark-factory-space/1.0.0: + resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz} + name: micromark-factory-space + version: 1.0.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-factory-title/1.0.2: + resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz} + name: micromark-factory-title + version: 1.0.2 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + + registry.npmmirror.com/micromark-factory-whitespace/1.0.0: + resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz} + name: micromark-factory-whitespace + version: 1.0.0 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-util-character/1.1.0: + resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz} + name: micromark-util-character + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-util-chunked/1.0.0: + resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz} + name: micromark-util-chunked + version: 1.0.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + + registry.npmmirror.com/micromark-util-classify-character/1.0.0: + resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz} + name: micromark-util-classify-character + version: 1.0.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-util-combine-extensions/1.0.0: + resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz} + name: micromark-util-combine-extensions + version: 1.0.0 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked/1.0.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-util-decode-numeric-character-reference/1.0.0: + resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz} + name: micromark-util-decode-numeric-character-reference + version: 1.0.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + + registry.npmmirror.com/micromark-util-decode-string/1.0.2: + resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz} + name: micromark-util-decode-string + version: 1.0.2 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference/1.0.2 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference/1.0.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + + registry.npmmirror.com/micromark-util-encode/1.0.1: + resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz} + name: micromark-util-encode + version: 1.0.1 + + registry.npmmirror.com/micromark-util-events-to-acorn/1.2.0: + resolution: {integrity: sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.0.tgz} + name: micromark-util-events-to-acorn + version: 1.2.0 + dependencies: + '@types/acorn': registry.npmmirror.com/@types/acorn/4.0.6 + '@types/estree': registry.npmmirror.com/@types/estree/1.0.0 + estree-util-visit: registry.npmmirror.com/estree-util-visit/1.2.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + vfile-location: registry.npmmirror.com/vfile-location/4.0.1 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/micromark-util-html-tag-name/1.1.0: + resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz} + name: micromark-util-html-tag-name + version: 1.1.0 + + registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0: + resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz} + name: micromark-util-normalize-identifier + version: 1.0.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + + registry.npmmirror.com/micromark-util-resolve-all/1.0.0: + resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz} + name: micromark-util-resolve-all + version: 1.0.0 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + + registry.npmmirror.com/micromark-util-sanitize-uri/1.1.0: + resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz} + name: micromark-util-sanitize-uri + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode/1.0.1 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + + registry.npmmirror.com/micromark-util-subtokenize/1.0.2: + resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz} + name: micromark-util-subtokenize + version: 1.0.2 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked/1.0.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + + registry.npmmirror.com/micromark-util-symbol/1.0.1: + resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz} + name: micromark-util-symbol + version: 1.0.1 + + registry.npmmirror.com/micromark-util-types/1.0.2: + resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz} + name: micromark-util-types + version: 1.0.2 + + registry.npmmirror.com/micromark/3.1.0: + resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark/-/micromark-3.1.0.tgz} + name: micromark + version: 3.1.0 + dependencies: + '@types/debug': registry.npmmirror.com/@types/debug/4.1.7 + debug: registry.npmmirror.com/debug/4.3.4 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference/1.0.2 + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark/1.0.6 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked/1.0.0 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions/1.0.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference/1.0.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode/1.0.1 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier/1.0.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all/1.0.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri/1.1.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize/1.0.2 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + transitivePeerDependencies: + - supports-color registry.npmmirror.com/micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} @@ -4013,7 +5160,6 @@ packages: dependencies: braces: registry.npmmirror.com/braces/3.0.2 picomatch: registry.npmmirror.com/picomatch/2.3.1 - dev: true registry.npmmirror.com/mime-db/1.33.0: resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.33.0.tgz} @@ -4106,6 +5252,12 @@ packages: version: 1.2.7 dev: true + registry.npmmirror.com/mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} + name: mri + version: 1.2.0 + engines: {node: '>=4'} + registry.npmmirror.com/mrmime/1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz} name: mrmime @@ -4141,7 +5293,7 @@ packages: dev: true registry.npmmirror.com/nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} name: nanoid version: 3.3.4 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4442,6 +5594,20 @@ packages: callsites: registry.npmmirror.com/callsites/3.1.0 dev: true + registry.npmmirror.com/parse-entities/4.0.0: + resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.0.tgz} + name: parse-entities + version: 4.0.0 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + character-entities: registry.npmmirror.com/character-entities/2.0.2 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy/3.0.0 + character-reference-invalid: registry.npmmirror.com/character-reference-invalid/2.0.1 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference/1.0.2 + is-alphanumerical: registry.npmmirror.com/is-alphanumerical/2.0.1 + is-decimal: registry.npmmirror.com/is-decimal/2.0.1 + is-hexadecimal: registry.npmmirror.com/is-hexadecimal/2.0.1 + registry.npmmirror.com/parse-json/5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} name: parse-json @@ -4461,6 +5627,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz} + name: parse5 + version: 7.1.2 + dependencies: + entities: registry.npmmirror.com/entities/4.4.0 + dev: false + registry.npmmirror.com/path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} name: path-exists @@ -4519,8 +5693,17 @@ packages: version: 1.1.1 dev: true + registry.npmmirror.com/periscopic/3.0.4: + resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/periscopic/-/periscopic-3.0.4.tgz} + name: periscopic + version: 3.0.4 + dependencies: + estree-walker: registry.npmmirror.com/estree-walker/3.0.1 + is-reference: registry.npmmirror.com/is-reference/3.0.0 + dev: false + registry.npmmirror.com/picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors version: 1.0.0 @@ -4529,7 +5712,6 @@ packages: name: picomatch version: 2.3.1 engines: {node: '>=8.6'} - dev: true registry.npmmirror.com/pidtree/0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pidtree/-/pidtree-0.6.0.tgz} @@ -4573,7 +5755,7 @@ packages: dev: true registry.npmmirror.com/postcss/8.4.18: - resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.18.tgz} + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.18.tgz} name: postcss version: 8.4.18 engines: {node: ^10 || ^12 || >=14} @@ -4616,6 +5798,12 @@ packages: react-is: registry.npmmirror.com/react-is/16.13.1 dev: true + registry.npmmirror.com/property-information/6.2.0: + resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-6.2.0.tgz} + name: property-information + version: 6.2.0 + dev: false + registry.npmmirror.com/punycode/1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz} name: punycode @@ -4640,7 +5828,6 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} name: queue-microtask version: 1.2.3 - dev: true registry.npmmirror.com/quick-lru/4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} @@ -4685,7 +5872,6 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} name: react-is version: 16.13.1 - dev: true registry.npmmirror.com/react-refresh/0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz} @@ -4694,6 +5880,35 @@ packages: engines: {node: '>=0.10.0'} dev: false + registry.npmmirror.com/react-router-dom/6.4.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.4.3.tgz} + id: registry.npmmirror.com/react-router-dom/6.4.3 + name: react-router-dom + version: 6.4.3 + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router/1.0.3 + react: registry.npmmirror.com/react/18.2.0 + react-dom: registry.npmmirror.com/react-dom/18.2.0_react@18.2.0 + react-router: registry.npmmirror.com/react-router/6.4.3_react@18.2.0 + dev: false + + registry.npmmirror.com/react-router/6.4.3_react@18.2.0: + resolution: {integrity: sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.4.3.tgz} + id: registry.npmmirror.com/react-router/6.4.3 + name: react-router + version: 6.4.3 + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router/1.0.3 + react: registry.npmmirror.com/react/18.2.0 + dev: false + registry.npmmirror.com/react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react/-/react-18.2.0.tgz} name: react @@ -4755,6 +5970,12 @@ packages: strip-indent: registry.npmmirror.com/strip-indent/3.0.0 dev: true + registry.npmmirror.com/regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + dev: false + registry.npmmirror.com/regexp.prototype.flags/1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz} name: regexp.prototype.flags @@ -4791,6 +6012,125 @@ packages: rc: registry.npmmirror.com/rc/1.2.8 dev: true + registry.npmmirror.com/rehype-autolink-headings/6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz} + name: rehype-autolink-headings + version: 6.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + extend: registry.npmmirror.com/extend/3.0.2 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property/2.0.0 + hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank/2.1.0 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element/2.1.2 + unified: registry.npmmirror.com/unified/10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + dev: false + + registry.npmmirror.com/rehype-slug/5.1.0: + resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-slug/-/rehype-slug-5.1.0.tgz} + name: rehype-slug + version: 5.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + github-slugger: registry.npmmirror.com/github-slugger/2.0.0 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property/2.0.0 + hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank/2.1.0 + hast-util-to-string: registry.npmmirror.com/hast-util-to-string/2.0.0 + unified: registry.npmmirror.com/unified/10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + dev: false + + registry.npmmirror.com/rehype-stringify/9.0.3: + resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz} + name: rehype-stringify + version: 9.0.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + hast-util-to-html: registry.npmmirror.com/hast-util-to-html/8.0.3 + unified: registry.npmmirror.com/unified/10.1.2 + dev: false + + registry.npmmirror.com/remark-frontmatter/4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz} + name: remark-frontmatter + version: 4.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-frontmatter: registry.npmmirror.com/mdast-util-frontmatter/1.0.0 + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter/1.0.0 + unified: registry.npmmirror.com/unified/10.1.2 + dev: false + + registry.npmmirror.com/remark-gfm/3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz} + name: remark-gfm + version: 3.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-gfm: registry.npmmirror.com/mdast-util-gfm/2.0.1 + micromark-extension-gfm: registry.npmmirror.com/micromark-extension-gfm/2.0.1 + unified: registry.npmmirror.com/unified/10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-mdx-frontmatter/2.1.1: + resolution: {integrity: sha512-kH8R4FcZ9VD2Uak9FuEgoZnKdIXhIXA3kYVB+6hkoWgYXbgpZNetgiAw58q4Z0MMN3W+nfkg7Fv6bcJTr1Y8BQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-mdx-frontmatter/-/remark-mdx-frontmatter-2.1.1.tgz} + name: remark-mdx-frontmatter + version: 2.1.1 + engines: {node: '>=14.0.0'} + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name/2.0.1 + estree-util-value-to-estree: registry.npmmirror.com/estree-util-value-to-estree/2.1.0 + toml: registry.npmmirror.com/toml/3.0.0 + unified: registry.npmmirror.com/unified/10.1.2 + yaml: registry.npmmirror.com/yaml/2.1.3 + dev: false + + registry.npmmirror.com/remark-mdx/2.2.1: + resolution: {integrity: sha512-R9wcN+/THRXTKyRBp6Npo/mcbGA2iT3N4G8qUqLA5pOEg7kBidHv8K2hHidCMYZ6DXmwK18umu0K4cicgA2PPQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-mdx/-/remark-mdx-2.2.1.tgz} + name: remark-mdx + version: 2.2.1 + dependencies: + mdast-util-mdx: registry.npmmirror.com/mdast-util-mdx/2.0.0 + micromark-extension-mdxjs: registry.npmmirror.com/micromark-extension-mdxjs/1.0.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/remark-parse/10.0.1: + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.1.tgz} + name: remark-parse + version: 10.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown/1.2.0 + unified: registry.npmmirror.com/unified/10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-rehype/10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz} + name: remark-rehype + version: 10.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast/12.2.4 + unified: registry.npmmirror.com/unified/10.1.2 + dev: false + + registry.npmmirror.com/remark-stringify/10.0.2: + resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-stringify/-/remark-stringify-10.0.2.tgz} + name: remark-stringify + version: 10.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.4.0 + unified: registry.npmmirror.com/unified/10.1.2 + dev: true + registry.npmmirror.com/require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} name: require-directory @@ -4839,7 +6179,7 @@ packages: dev: true registry.npmmirror.com/resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} name: resolve version: 1.22.1 hasBin: true @@ -4884,7 +6224,6 @@ packages: name: reusify version: 1.0.4 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true registry.npmmirror.com/rfdc/1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz} @@ -4901,14 +6240,25 @@ packages: glob: registry.npmmirror.com/glob/7.2.3 dev: true + registry.npmmirror.com/rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.78.1.tgz} + name: rollup + version: 2.78.1 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: false + registry.npmmirror.com/rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} name: rollup version: 2.79.1 engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true registry.npmmirror.com/rollup/3.2.3: resolution: {integrity: sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.2.3.tgz} @@ -4943,7 +6293,6 @@ packages: version: 1.2.0 dependencies: queue-microtask: registry.npmmirror.com/queue-microtask/1.2.3 - dev: true registry.npmmirror.com/rxjs/7.6.0: resolution: {integrity: sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-7.6.0.tgz} @@ -4953,6 +6302,14 @@ packages: tslib: registry.npmmirror.com/tslib/2.4.1 dev: true + registry.npmmirror.com/sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} + name: sade + version: 1.8.1 + engines: {node: '>=6'} + dependencies: + mri: registry.npmmirror.com/mri/1.2.0 + registry.npmmirror.com/safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} name: safe-buffer @@ -5074,6 +6431,16 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/shiki/0.12.1: + resolution: {integrity: sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shiki/-/shiki-0.12.1.tgz} + name: shiki + version: 0.12.1 + dependencies: + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + vscode-oniguruma: registry.npmmirror.com/vscode-oniguruma/1.7.0 + vscode-textmate: registry.npmmirror.com/vscode-textmate/8.0.0 + dev: false + registry.npmmirror.com/side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} name: side-channel @@ -5140,7 +6507,7 @@ packages: dev: true registry.npmmirror.com/source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} name: source-map-js version: 1.0.2 engines: {node: '>=0.10.0'} @@ -5161,6 +6528,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} + name: source-map + version: 0.7.4 + engines: {node: '>= 8'} + dev: false + registry.npmmirror.com/source-map/0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz} name: source-map @@ -5176,6 +6550,12 @@ packages: version: 1.4.8 dev: false + registry.npmmirror.com/space-separated-tokens/2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz} + name: space-separated-tokens + version: 2.0.2 + dev: false + registry.npmmirror.com/spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz} name: spdx-correct @@ -5285,6 +6665,14 @@ packages: dependencies: safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + registry.npmmirror.com/stringify-entities/4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz} + name: stringify-entities + version: 4.0.3 + dependencies: + character-entities-html4: registry.npmmirror.com/character-entities-html4/2.1.0 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy/3.0.0 + registry.npmmirror.com/strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} name: strip-ansi @@ -5354,6 +6742,14 @@ packages: acorn: registry.npmmirror.com/acorn/8.8.1 dev: true + registry.npmmirror.com/style-to-object/0.3.0: + resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-to-object/-/style-to-object-0.3.0.tgz} + name: style-to-object + version: 0.3.0 + dependencies: + inline-style-parser: registry.npmmirror.com/inline-style-parser/0.1.1 + dev: false + registry.npmmirror.com/sucrase/3.29.0: resolution: {integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sucrase/-/sucrase-3.29.0.tgz} name: sucrase @@ -5479,7 +6875,12 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: registry.npmmirror.com/is-number/7.0.0 - dev: true + + registry.npmmirror.com/toml/3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toml/-/toml-3.0.0.tgz} + name: toml + version: 3.0.0 + dev: false registry.npmmirror.com/totalist/3.0.0: resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/totalist/-/totalist-3.0.0.tgz} @@ -5503,6 +6904,12 @@ packages: hasBin: true dev: true + registry.npmmirror.com/trim-lines/3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz} + name: trim-lines + version: 3.0.1 + dev: false + registry.npmmirror.com/trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} name: trim-newlines @@ -5510,6 +6917,11 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/trough/2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz} + name: trough + version: 2.1.0 + registry.npmmirror.com/ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz} name: ts-interface-checker @@ -5704,6 +7116,85 @@ packages: which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive/1.0.2 dev: true + registry.npmmirror.com/unified/10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz} + name: unified + version: 10.1.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + bail: registry.npmmirror.com/bail/2.0.2 + extend: registry.npmmirror.com/extend/3.0.2 + is-buffer: registry.npmmirror.com/is-buffer/2.0.5 + is-plain-obj: registry.npmmirror.com/is-plain-obj/4.1.0 + trough: registry.npmmirror.com/trough/2.1.0 + vfile: registry.npmmirror.com/vfile/5.3.6 + + registry.npmmirror.com/unist-builder/3.0.0: + resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-builder/-/unist-builder-3.0.0.tgz} + name: unist-builder + version: 3.0.0 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + dev: false + + registry.npmmirror.com/unist-util-generated/2.0.0: + resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz} + name: unist-util-generated + version: 2.0.0 + dev: false + + registry.npmmirror.com/unist-util-is/5.1.1: + resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.1.1.tgz} + name: unist-util-is + version: 5.1.1 + + registry.npmmirror.com/unist-util-position-from-estree/1.1.1: + resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz} + name: unist-util-position-from-estree + version: 1.1.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + + registry.npmmirror.com/unist-util-position/4.0.3: + resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.3.tgz} + name: unist-util-position + version: 4.0.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + dev: false + + registry.npmmirror.com/unist-util-remove-position/4.0.1: + resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz} + name: unist-util-remove-position + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.1 + + registry.npmmirror.com/unist-util-stringify-position/3.0.2: + resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz} + name: unist-util-stringify-position + version: 3.0.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + + registry.npmmirror.com/unist-util-visit-parents/5.1.1: + resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz} + name: unist-util-visit-parents + version: 5.1.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-is: registry.npmmirror.com/unist-util-is/5.1.1 + + registry.npmmirror.com/unist-util-visit/4.1.1: + resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz} + name: unist-util-visit + version: 4.1.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-is: registry.npmmirror.com/unist-util-is/5.1.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents/5.1.1 + registry.npmmirror.com/universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} name: universalify @@ -5746,6 +7237,18 @@ packages: name: util-deprecate version: 1.0.2 + registry.npmmirror.com/uvu/0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz} + name: uvu + version: 0.5.6 + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: registry.npmmirror.com/dequal/2.0.3 + diff: registry.npmmirror.com/diff/5.1.0 + kleur: registry.npmmirror.com/kleur/4.1.5 + sade: registry.npmmirror.com/sade/1.8.1 + registry.npmmirror.com/v8-compile-cache-lib/3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} name: v8-compile-cache-lib @@ -5768,8 +7271,63 @@ packages: engines: {node: '>= 0.8'} dev: true + registry.npmmirror.com/vfile-location/4.0.1: + resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-4.0.1.tgz} + name: vfile-location + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + vfile: registry.npmmirror.com/vfile/5.3.6 + + registry.npmmirror.com/vfile-message/3.1.3: + resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.3.tgz} + name: vfile-message + version: 3.1.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position/3.0.2 + + registry.npmmirror.com/vfile/5.3.6: + resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile/-/vfile-5.3.6.tgz} + name: vfile + version: 5.3.6 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + is-buffer: registry.npmmirror.com/is-buffer/2.0.5 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position/3.0.2 + vfile-message: registry.npmmirror.com/vfile-message/3.1.3 + + registry.npmmirror.com/vite/3.1.4: + resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-3.1.4.tgz} + name: vite + version: 3.1.4 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: registry.npmmirror.com/esbuild/0.15.12 + postcss: registry.npmmirror.com/postcss/8.4.18 + resolve: registry.npmmirror.com/resolve/1.22.1 + rollup: registry.npmmirror.com/rollup/2.78.1 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: false + registry.npmmirror.com/vite/3.2.1: - resolution: {integrity: sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-3.2.1.tgz} + resolution: {integrity: sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-3.2.1.tgz} name: vite version: 3.2.1 engines: {node: ^14.18.0 || >=16.0.0} @@ -5798,6 +7356,7 @@ packages: rollup: registry.npmmirror.com/rollup/2.79.1 optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true registry.npmmirror.com/vitest/0.25.3_@vitest+ui@0.25.3: resolution: {integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vitest/-/vitest-0.25.3.tgz} @@ -5848,6 +7407,18 @@ packages: - terser dev: true + registry.npmmirror.com/vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz} + name: vscode-oniguruma + version: 1.7.0 + dev: false + + registry.npmmirror.com/vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz} + name: vscode-textmate + version: 8.0.0 + dev: false + registry.npmmirror.com/wcwidth/1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz} name: wcwidth @@ -5855,6 +7426,12 @@ packages: dependencies: defaults: registry.npmmirror.com/defaults/1.0.4 + registry.npmmirror.com/web-namespaces/2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} + name: web-namespaces + version: 2.0.1 + dev: false + registry.npmmirror.com/webidl-conversions/4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz} name: webidl-conversions @@ -5982,7 +7559,6 @@ packages: name: yaml version: 2.1.3 engines: {node: '>= 14'} - dev: true registry.npmmirror.com/yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} @@ -6026,3 +7602,8 @@ packages: version: 0.1.0 engines: {node: '>=10'} dev: true + + registry.npmmirror.com/zwitch/2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz} + name: zwitch + version: 2.0.4 diff --git a/src/node/__test__/md.test.ts b/src/node/__test__/md.test.ts new file mode 100644 index 0000000..3e70d60 --- /dev/null +++ b/src/node/__test__/md.test.ts @@ -0,0 +1,90 @@ +import { unified } from 'unified'; +import remarkParse from 'remark-parse'; +import remarkRehype from 'remark-rehype'; +import rehypeStringify from 'rehype-stringify'; +import { rehypePluginPreWrapper } from '../plugin-mdx/rehypePlugins/preWrapper'; +import { describe, test, expect } from 'vitest'; +import { rehypePluginShiki } from '../plugin-mdx/rehypePlugins/shiki'; +import shiki from 'shiki'; +import remarkMdx from 'remark-mdx'; +import remarkStringify from 'remark-stringify'; +import { remarkPluginToc } from '../plugin-mdx/remarkPlugins/toc'; + +describe('Markdown compile cases', async () => { + const processor = unified(); + + processor + .use(remarkParse) + .use(remarkRehype) + .use(rehypeStringify) + .use(rehypePluginPreWrapper) + .use(rehypePluginShiki, { + highlighter: await shiki.getHighlighter({ + theme: 'nord' + }) + }); + + test('Compile title', async () => { + const result = processor.processSync('# Hello World'); + expect(result.toString()).toMatchInlineSnapshot('"

Hello World

"'); + }); + + test('Compile code', async () => { + const mdContent = 'I am using `Island.js`'; + const result = processor.processSync(mdContent); + expect(result.value).toMatchInlineSnapshot( + '"

I am using Island.js

"' + ); + }); + + test('Compile code block', async () => { + const mdContent = '```js\nconsole.log("Hello World");\n```'; + const result = processor.processSync(mdContent); + expect(result.value).toMatchInlineSnapshot(` + "
js
console.log(\\"Hello World\\");
+      
" + `); + }); + + test('Compile TOC', async () => { + const mdContent = `# h1 + +## h2 \`code\` + +### h3 [link](https://islandjs.dev) + +#### h4 + +##### h5 +`; + const remarkProcessor = unified() + .use(remarkParse) + .use(remarkMdx) + .use(remarkPluginToc) + .use(remarkStringify); + + const result = remarkProcessor.processSync(mdContent); + expect(result.value.toString().replace(mdContent, '')) + .toMatchInlineSnapshot(` + " + export const toc = [ + { + \\"id\\": \\"h2-code\\", + \\"text\\": \\"h2 code\\", + \\"depth\\": 2 + }, + { + \\"id\\": \\"h3-link\\", + \\"text\\": \\"h3 link\\", + \\"depth\\": 3 + }, + { + \\"id\\": \\"h4\\", + \\"text\\": \\"h4\\", + \\"depth\\": 4 + } + ]; + " + `); + }); +}); diff --git a/src/node/build.ts b/src/node/build.ts index f36c6f3..ee3b4e2 100644 --- a/src/node/build.ts +++ b/src/node/build.ts @@ -1,18 +1,28 @@ import { build as viteBuild, InlineConfig } from 'vite'; import type { RollupOutput } from 'rollup'; import { CLIENT_ENTRY_PATH, SERVER_ENTRY_PATH } from './constants'; -import { join } from 'path'; +import path, { dirname, join } from 'path'; import fs from 'fs-extra'; import ora from 'ora'; import { pathToFileURL } from 'url'; +import { SiteConfig } from 'shared/types'; +import { createVitePlugins } from './vitePlugins'; +import type { Plugin } from 'vite'; +import { Route } from './plugin-routes'; -export async function bundle(root: string) { - const resolveViteConfig = (isServer: boolean): InlineConfig => ({ +export async function bundle(root: string, config: SiteConfig) { + const resolveViteConfig = async ( + isServer: boolean + ): Promise => ({ mode: 'production', root, + ssr: { + noExternal: ['react-router-dom'] + }, + plugins: (await createVitePlugins(config, undefined, isServer)) as Plugin[], build: { ssr: isServer, - outDir: isServer ? '.temp' : 'build', + outDir: isServer ? path.join(root, '.temp') : path.join(root, 'build'), rollupOptions: { input: isServer ? SERVER_ENTRY_PATH : CLIENT_ENTRY_PATH, output: { @@ -28,9 +38,9 @@ export async function bundle(root: string) { try { const [clientBundle, serverBundle] = await Promise.all([ // client build - viteBuild(resolveViteConfig(false)), + viteBuild(await resolveViteConfig(false)), // server build - viteBuild(resolveViteConfig(true)) + viteBuild(await resolveViteConfig(true)) ]); return [clientBundle, serverBundle] as [RollupOutput, RollupOutput]; } catch (e) { @@ -39,40 +49,52 @@ export async function bundle(root: string) { } export async function renderPage( - render: () => string, + render: (pagePath: string) => string, root: string, - clientBundle: RollupOutput + clientBundle: RollupOutput, + routes: Route[] ) { const clientChunk = clientBundle.output.find( (chunk) => chunk.type === 'chunk' && chunk.isEntry ); console.log('Rendering page in server side...'); - const appHtml = render(); - const html = ` - - - - - - title - - - -
${appHtml}
- - -`.trim(); - await fs.ensureDir(join(root, 'build')); - await fs.writeFile(join(root, 'build/index.html'), html); + await Promise.all( + routes.map(async (route) => { + const routePath = route.path; + const appHtml = render(routePath); + const html = ` + + + + + + title + + + +
${appHtml}
+ + + `.trim(); + const fileName = routePath.endsWith('/') + ? `${routePath}index.html` + : `${routePath}.html`; + // 当前文件的文件夹路径 + await fs.ensureDir(join(root, 'build', dirname(fileName))); + await fs.writeFile(join(root, 'build', fileName), html); + }) + ); await fs.remove(join(root, '.temp')); } -export async function build(root: string = process.cwd()) { +export async function build(root: string = process.cwd(), config: SiteConfig) { // 1. bundle - client 端 + server 端 - const [clientBundle] = await bundle(root); + const [clientBundle] = await bundle(root, config); // 2. 引入 server-entry 模块 const serverEntryPath = join(root, '.temp', 'ssr-entry.js'); - const { render } = await import(pathToFileURL(serverEntryPath).toString()); + const { render, routes } = await import( + pathToFileURL(serverEntryPath).toString() + ); // 3. 服务端渲染,产出 HTML - await renderPage(render, root, clientBundle); + await renderPage(render, root, clientBundle, routes); } diff --git a/src/node/cli.ts b/src/node/cli.ts index fbc709b..3a8cf07 100644 --- a/src/node/cli.ts +++ b/src/node/cli.ts @@ -1,14 +1,22 @@ import cac from 'cac'; import { resolve } from 'path'; import { build } from './build'; +import { resolveConfig } from './config'; import { createDevServer } from './dev'; const cli = cac('island').version('0.0.1').help(); cli.command('dev [root]', 'start dev server').action(async (root: string) => { - const server = await createDevServer(root); - await server.listen(); - server.printUrls(); + const createServer = async () => { + const { createDevServer } = await import('./dev'); + const server = await createDevServer(root, async () => { + await server.close(); + await createServer(); + }); + await server.listen(); + server.printUrls(); + }; + await createServer(); }); cli @@ -16,7 +24,8 @@ cli .action(async (root: string) => { try { root = resolve(root); - await build(root); + const config = await resolveConfig(root, 'build', 'production'); + await build(root, config); } catch (e) { console.log(e); } diff --git a/src/node/config.ts b/src/node/config.ts new file mode 100644 index 0000000..62ac2ad --- /dev/null +++ b/src/node/config.ts @@ -0,0 +1,83 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { loadConfigFromFile } from 'vite'; +import { SiteConfig, UserConfig } from 'shared/types/index'; + +type RawConfig = + | UserConfig + | Promise + | (() => UserConfig | Promise); + +function getUserConfigPath(root: string) { + try { + const supportConfigFiles = ['config.ts', 'config.js']; + const configPath = supportConfigFiles + .map((file) => path.resolve(root, file)) + .find((file) => fs.pathExistsSync(file)); + if (!configPath) { + throw new Error('Config file not found'); + } + return configPath; + } catch (error) { + throw new Error('Failed to load user config'); + } +} + +function resolveSiteData(userConfig: UserConfig) { + return { + title: userConfig.title || 'Island.js', + description: userConfig.description || 'SSG Framework', + themeConfig: userConfig.themeConfig || {}, + vite: userConfig.vite || {} + }; +} + +export async function resolveUserConfig( + root: string, + command: 'serve' | 'build', + mode: 'production' | 'development' +) { + // 1. 获取配置文件路径,支持js, ts格式 + const configPath = getUserConfigPath(root); + + // 2. 解析配置文件 + const result = await loadConfigFromFile( + { + command, + mode + }, + configPath, + root + ); + if (result) { + const { config: rawConfig = {} as RawConfig } = result; + // 1. object + // 2. promise + // 3. function + const userConfig = await (typeof rawConfig === 'function' + ? rawConfig() + : rawConfig); + + return [configPath, userConfig] as const; + } else { + return [configPath, {} as UserConfig] as const; + } +} + +export async function resolveConfig( + root: string, + command: 'serve' | 'build', + mode: 'production' | 'development' +) { + const [configPath, userConfig] = await resolveUserConfig(root, command, mode); + const siteConfig: SiteConfig = { + root, + configPath: configPath, + siteData: resolveSiteData(userConfig as UserConfig) + }; + return siteConfig; +} + +export function defineConfig(config: UserConfig): UserConfig { + return config; +} diff --git a/src/node/dev.ts b/src/node/dev.ts index 31f240c..4797ed0 100644 --- a/src/node/dev.ts +++ b/src/node/dev.ts @@ -1,11 +1,19 @@ import { createServer } from 'vite'; -import { pluginIndexHtml } from './plugin-island/indexHtml'; -import pluginReact from '@vitejs/plugin-react'; + import { PACKAGE_ROOT } from './constants'; -export function createDevServer(root: string) { +import { resolveConfig } from './config'; +import { createVitePlugins } from './vitePlugins'; +import type { Plugin } from 'vite'; + +export async function createDevServer( + root: string, + restart: () => Promise +) { + const config = await resolveConfig(root, 'serve', 'development'); + return createServer({ - root, - plugins: [pluginIndexHtml(), pluginReact()], + root: PACKAGE_ROOT, + plugins: (await createVitePlugins(config, restart)) as Plugin[], server: { fs: { allow: [PACKAGE_ROOT] diff --git a/src/node/index.ts b/src/node/index.ts new file mode 100644 index 0000000..b8bb5ac --- /dev/null +++ b/src/node/index.ts @@ -0,0 +1 @@ +export { defineConfig } from './config'; diff --git a/src/node/plugin-island/config.ts b/src/node/plugin-island/config.ts new file mode 100644 index 0000000..fe86269 --- /dev/null +++ b/src/node/plugin-island/config.ts @@ -0,0 +1,52 @@ +import { SiteConfig } from '../../shared/types'; +import { normalizePath, Plugin, ViteDevServer } from 'vite'; +import path from 'path'; +import { PACKAGE_ROOT, RUNTIME_PATH } from 'node/constants'; + +const SITE_DATA_ID = 'island:site-data'; + +export function pluginConfig(config: SiteConfig, restart?: () => void): Plugin { + let server: ViteDevServer | null = null; + return { + name: 'island:site-data', + resolveId(id) { + if (id === SITE_DATA_ID) { + return '\0' + SITE_DATA_ID; + } + }, + load(id) { + if (id === '\0' + SITE_DATA_ID) { + return `export default ${JSON.stringify(config.siteData)}`; + } + }, + configureServer(_server) { + // 获取vite dev server实例 + server = _server; + }, + async handleHotUpdate(ctx) { + const customWatchedFiles = [normalizePath(config.configPath)]; + const include = (id: string) => + customWatchedFiles.some((file) => id.includes(file)); + + if (include(ctx.file)) { + console.log(config.root); + console.log(` + \n${path.relative(config.root, ctx.file)} changed, + \nrestarting server... + `); + + // 调用dev.ts中的createServer + restart && (await restart()); + } + }, + config() { + return { + resolve: { + alias: { + '@runtime': RUNTIME_PATH + } + } + }; + } + }; +} diff --git a/src/node/plugin-island/indexHtml.ts b/src/node/plugin-island/indexHtml.ts index 4f9ac76..60f36d6 100644 --- a/src/node/plugin-island/indexHtml.ts +++ b/src/node/plugin-island/indexHtml.ts @@ -26,7 +26,6 @@ export function pluginIndexHtml(): Plugin { return () => { server.middlewares.use(async (req, res, next) => { let html = await fs.readFile(DEFAULT_HTML_PATH, 'utf-8'); - try { html = await server.transformIndexHtml( req.url, diff --git a/src/node/plugin-mdx/index.ts b/src/node/plugin-mdx/index.ts new file mode 100644 index 0000000..4a9f31a --- /dev/null +++ b/src/node/plugin-mdx/index.ts @@ -0,0 +1,6 @@ +import { pluginMdxHMR } from './pluginMdxHmr'; +import { pluginMdxRollup } from './pluginMdxRollup'; + +export async function createMdxPlugins() { + return [await pluginMdxRollup(), await pluginMdxHMR()]; +} diff --git a/src/node/plugin-mdx/pluginMdxHmr.ts b/src/node/plugin-mdx/pluginMdxHmr.ts new file mode 100644 index 0000000..fde7186 --- /dev/null +++ b/src/node/plugin-mdx/pluginMdxHmr.ts @@ -0,0 +1,34 @@ +import assert from 'assert'; +import { Plugin } from 'vite'; + +export function pluginMdxHMR(): Plugin { + let viteReactPlugin: Plugin; + + return { + name: 'vite-plugin-mdx-hmr', + apply: 'serve', + configResolved(config) { + viteReactPlugin = config.plugins.find( + (plugin) => plugin.name === 'vite:react-babel' + ) as Plugin; + }, + async transform(code, id, opts) { + if (/\.mdx?$/.test(id)) { + assert(typeof viteReactPlugin.transform === 'function'); + const result = await viteReactPlugin.transform?.call( + this, + code, + id + '?.jsx', + opts + ); + if ( + typeof result === 'object' && + !result.code?.includes('import.meta.hot.accept(') + ) { + result.code += 'import.meta.hot.accept();'; + } + return result; + } + } + }; +} diff --git a/src/node/plugin-mdx/pluginMdxRollup.ts b/src/node/plugin-mdx/pluginMdxRollup.ts new file mode 100644 index 0000000..caec65d --- /dev/null +++ b/src/node/plugin-mdx/pluginMdxRollup.ts @@ -0,0 +1,46 @@ +import pluginMdx from '@mdx-js/rollup'; +import remarkGfm from 'remark-gfm'; +import type { Plugin } from 'vite'; +import rehypePluginAutolinkHeadings from 'rehype-autolink-headings'; +import rehypePluginSlug from 'rehype-slug'; +import remarkPluginMDXFrontMatter from 'remark-mdx-frontmatter'; +import remarkPluginFrontmatter from 'remark-frontmatter'; +import { rehypePluginPreWrapper } from './rehypePlugins/preWrapper'; +import { rehypePluginShiki } from './rehypePlugins/shiki'; +import { remarkPluginToc } from './remarkPlugins/toc'; +import shiki from 'shiki'; + +export async function pluginMdxRollup(): Promise { + return pluginMdx({ + remarkPlugins: [ + remarkGfm, + [remarkPluginMDXFrontMatter, { name: 'frontmatter' }], + remarkPluginFrontmatter, + remarkPluginToc + ], + rehypePlugins: [ + rehypePluginSlug, + [ + rehypePluginAutolinkHeadings, + { + properties: { + class: 'header-anchor' + }, + content: { + type: 'text', + value: '#' + } + } + ], + rehypePluginPreWrapper, + [ + rehypePluginShiki, + { + highlighter: await shiki.getHighlighter({ + theme: 'nord' + }) + } + ] + ] + }) as unknown as Plugin; +} diff --git a/src/node/plugin-mdx/rehypePlugins/preWrapper.ts b/src/node/plugin-mdx/rehypePlugins/preWrapper.ts new file mode 100644 index 0000000..8a3a5ca --- /dev/null +++ b/src/node/plugin-mdx/rehypePlugins/preWrapper.ts @@ -0,0 +1,54 @@ +import type { Plugin } from 'unified'; + +import { visit } from 'unist-util-visit'; +import type { Element, Root } from 'hast'; + +export const rehypePluginPreWrapper: Plugin<[], Root> = () => { + return (tree) => { + visit(tree, 'element', (node) => { + if ( + node.tagName === 'pre' && + node.children[0]?.type === 'element' && + node.children[0]?.tagName === 'code' && + node.data?.isVisited !== true + ) { + const codeNode = node.children[0] as Element; + const codeClassName = codeNode.properties?.className?.toString() || ''; + const lang = codeClassName.replace('language-', ''); + + const cloneNode: Element = { + type: 'element', + tagName: 'pre', + children: node.children, + properties: { + className: codeClassName + }, + data: { + isVisited: true + } + }; + + node.tagName = 'div'; + node.properties = node.properties || {}; + node.properties.className = codeClassName; + + node.children = [ + { + type: 'element', + tagName: 'span', + properties: { + className: 'code-lang' + }, + children: [ + { + type: 'text', + value: lang + } + ] + }, + cloneNode + ]; + } + }); + }; +}; diff --git a/src/node/plugin-mdx/rehypePlugins/shiki.ts b/src/node/plugin-mdx/rehypePlugins/shiki.ts new file mode 100644 index 0000000..b1bd75e --- /dev/null +++ b/src/node/plugin-mdx/rehypePlugins/shiki.ts @@ -0,0 +1,33 @@ +import { visit } from 'unist-util-visit'; +import type { Plugin } from 'unified'; +import type { Text, Root } from 'hast'; +import { fromHtml } from 'hast-util-from-html'; +import shiki from 'shiki'; + +interface Options { + highlighter: shiki.Highlighter; +} + +export const rehypePluginShiki: Plugin<[Options], Root> = ({ highlighter }) => { + return (tree) => { + visit(tree, 'element', (node, index, parent) => { + if ( + node.tagName === 'pre' && + node.children[0]?.type === 'element' && + node.children[0].tagName === 'code' + ) { + // 语法名称,如:js, 代码内容 + const codeNode = node.children[0]; + const codeContent = (codeNode.children[0] as Text)?.value || ''; + const codeClassName = codeNode.properties.className.toString() || ''; + const lang = codeClassName.replace('language-', ''); + if (!lang) return; + const highlightedCode = highlighter.codeToHtml(codeContent, { lang }); + const fragmentAst = fromHtml(highlightedCode, { + fragment: true + }); + parent.children.splice(index, 1, ...fragmentAst.children); + } + }); + }; +}; diff --git a/src/node/plugin-mdx/remarkPlugins/toc.ts b/src/node/plugin-mdx/remarkPlugins/toc.ts new file mode 100644 index 0000000..2d2a286 --- /dev/null +++ b/src/node/plugin-mdx/remarkPlugins/toc.ts @@ -0,0 +1,64 @@ +import { Root } from 'mdast'; +import { Plugin } from 'unified'; +import { visit } from 'unist-util-visit'; +import Slugger from 'github-slugger'; +import { parse } from 'acorn'; +import type { Program } from 'mdast-util-mdxjs-esm'; + +const slugger = new Slugger(); + +interface ChildNode { + type: 'link' | 'text' | 'inlineCode'; + value: string; + children?: ChildNode[]; +} + +interface TocItem { + id: string; + text: string; + depth: number; +} + +export const remarkPluginToc: Plugin<[], Root> = () => { + return (tree) => { + const toc: TocItem[] = []; + + visit(tree, 'heading', (node) => { + if (!node.depth || !node.children?.length) { + return; + } + + // h2 ~ h4 + if (node.depth > 1 && node.depth < 5) { + const originText = (node.children as ChildNode[]) + .map((child) => { + switch (child.type) { + case 'link': + return child.children?.map((c) => c.value).join('') || ''; + default: + return child.value; + } + }) + .join(''); + const id = slugger.slug(originText); + toc.push({ + id, + text: originText, + depth: node.depth + }); + } + }); + const insertedCode = `export const toc = ${JSON.stringify(toc, null, 2)};`; + + tree.children.push({ + type: 'mdxjsEsm', + value: insertedCode, + data: { + estree: parse(insertedCode, { + ecmaVersion: 2020, + sourceType: 'module' + }) as unknown as Program + } + }); + }; +}; diff --git a/src/node/plugin-routes/RouteService.test.ts b/src/node/plugin-routes/RouteService.test.ts new file mode 100644 index 0000000..de34d4f --- /dev/null +++ b/src/node/plugin-routes/RouteService.test.ts @@ -0,0 +1,53 @@ +import { RouteService } from './RouteService'; +import { describe, expect, test } from 'vitest'; +import path from 'path'; +import { normalizePath } from 'vite'; + +describe('RouteService', async () => { + const testDir = path.resolve(__dirname, 'fixtures'); + const routeService = new RouteService(testDir); + routeService.init(); + + test('should get route meta', () => { + const routeMeta = routeService.getRouteMeta().map((item) => ({ + ...item, + absolutePath: item.absolutePath.replace( + normalizePath(testDir), + 'TEST_DIR' + ) + })); + expect(routeMeta).toMatchInlineSnapshot(` + [ + { + "absolutePath": "TEST_DIR/a.mdx", + "routePath": "/a", + }, + { + "absolutePath": "TEST_DIR/guide/index.mdx", + "routePath": "/guide/", + }, + ] + `); + }); + + test('should generate route code', () => { + const routeCode = routeService.generateRouteCode(); + expect(routeCode).toMatchInlineSnapshot(` + " + import React from 'react' + import Route0 from 'E:/frontEnd/sgg/island-dev/src/node/plugin-routes/fixtures/a.mdx' + import Route1 from 'E:/frontEnd/sgg/island-dev/src/node/plugin-routes/fixtures/guide/index.mdx'; + export const routes = [ + { + path: '/a', + element: React.createElement(Route0) + }, + { + path: '/guide/', + element: React.createElement(Route1) + } + ] + " + `); + }); +}); diff --git a/src/node/plugin-routes/RouteService.ts b/src/node/plugin-routes/RouteService.ts new file mode 100644 index 0000000..aa4aac2 --- /dev/null +++ b/src/node/plugin-routes/RouteService.ts @@ -0,0 +1,70 @@ +import fastGlob from 'fast-glob'; +import path from 'node:path'; +import { normalizePath } from 'vite'; + +interface RouteMeta { + routePath: string; + absolutePath: string; +} + +export class RouteService { + #scanDir: string; + #routeData: RouteMeta[] = []; + + constructor(scanDir: string) { + this.#scanDir = scanDir; + } + + async init() { + const files = fastGlob + .sync(['**/*.{js,jsx,ts,tsx,md,mdx}'], { + cwd: this.#scanDir, + absolute: true, + ignore: ['**/build/**', '**/.island/**', '**/config.ts'] + }) + .sort(); + files.forEach((file) => { + const fileRelativePath = normalizePath( + path.relative(this.#scanDir, file) + ); + const routePath = this.normalizeRoutePath(fileRelativePath); + this.#routeData.push({ + routePath, + absolutePath: file + }); + }); + } + + generateRouteCode(ssr: boolean) { + return ` + import React from 'react'; + ${ssr ? '' : 'import loadable from "@loadable/component";'}; + ${this.#routeData + .map((route, index) => { + return ssr + ? `import Route${index} from '${route.absolutePath}'` + : `const Route${index} = loadable(() => import('${route.absolutePath}'));`; + }) + .join('\n')} + export const routes = [ + ${this.#routeData + .map((route, index) => { + return `{ + path: '${route.routePath}', + element: React.createElement(Route${index}) + }`; + }) + .join(',\n')} + ] + `; + } + + normalizeRoutePath(raw: string) { + const routePath = raw.replace(/\.(.*)?$/, '').replace(/index$/, ''); + return routePath.startsWith('/') ? routePath : `/${routePath}`; + } + + getRouteMeta() { + return this.#routeData; + } +} diff --git a/src/node/plugin-routes/fixtures/a.mdx b/src/node/plugin-routes/fixtures/a.mdx new file mode 100644 index 0000000..e69de29 diff --git a/src/node/plugin-routes/fixtures/guide/index.mdx b/src/node/plugin-routes/fixtures/guide/index.mdx new file mode 100644 index 0000000..e69de29 diff --git a/src/node/plugin-routes/index.ts b/src/node/plugin-routes/index.ts new file mode 100644 index 0000000..83e5115 --- /dev/null +++ b/src/node/plugin-routes/index.ts @@ -0,0 +1,36 @@ +import { Plugin } from 'vite'; +import { RouteService } from './RouteService'; + +export interface Route { + path: string; + element: React.ReactElement; + filePath: string; +} + +interface PluginOptions { + root: string; + isSSR: boolean; +} + +export const CONVENTIONAL_ROUTE_ID = 'island:routes'; + +export function pluginRoutes(options: PluginOptions): Plugin { + const { root } = options; + const routerService = new RouteService(root); + return { + name: 'island:routes', + resolveId(id) { + if (id === CONVENTIONAL_ROUTE_ID) { + return '\0' + CONVENTIONAL_ROUTE_ID; + } + }, + async configResolved(config) { + await routerService.init(); + }, + async load(id) { + if (id === '\0' + CONVENTIONAL_ROUTE_ID) { + return routerService.generateRouteCode(options.isSSR); + } + } + }; +} diff --git a/src/node/vitePlugins.ts b/src/node/vitePlugins.ts new file mode 100644 index 0000000..8c4f516 --- /dev/null +++ b/src/node/vitePlugins.ts @@ -0,0 +1,23 @@ +import { pluginIndexHtml } from './plugin-island/indexHtml'; +import { pluginConfig } from './plugin-island/config'; +import pluginReact from '@vitejs/plugin-react'; +import { pluginRoutes } from './plugin-routes'; +import { SiteConfig } from 'shared/types'; +import { createMdxPlugins } from './plugin-mdx'; + +export async function createVitePlugins( + config: SiteConfig, + restart?: () => Promise, + isSSR = false +) { + return [ + pluginIndexHtml(), + pluginReact({ jsxRuntime: 'automatic' }), + pluginConfig(config, restart), + pluginRoutes({ + root: config.root, + isSSR + }), + await createMdxPlugins() + ]; +} diff --git a/src/runtime/Content.tsx b/src/runtime/Content.tsx new file mode 100644 index 0000000..534529a --- /dev/null +++ b/src/runtime/Content.tsx @@ -0,0 +1,7 @@ +import { useRoutes } from 'react-router-dom'; +import { routes } from 'island:routes'; + +export const Content = () => { + const routesElement = useRoutes(routes); + return routesElement; +}; diff --git a/src/runtime/client-entry.tsx b/src/runtime/client-entry.tsx index f6b5934..3907bab 100644 --- a/src/runtime/client-entry.tsx +++ b/src/runtime/client-entry.tsx @@ -1,12 +1,19 @@ import { createRoot } from 'react-dom/client'; import { App } from './app'; +import siteData from 'island:site-data'; +import { BrowserRouter } from 'react-router-dom'; function renderInBrowser() { + console.log(siteData); const containerEl = document.getElementById('root'); if (!containerEl) { throw new Error('#root element not found'); } - createRoot(containerEl).render(); + createRoot(containerEl).render( + + + + ); } renderInBrowser(); diff --git a/src/runtime/index.ts b/src/runtime/index.ts new file mode 100644 index 0000000..5023640 --- /dev/null +++ b/src/runtime/index.ts @@ -0,0 +1 @@ +export { Content } from './Content'; diff --git a/src/runtime/ssr-entry.tsx b/src/runtime/ssr-entry.tsx index 48f41af..de2d67c 100644 --- a/src/runtime/ssr-entry.tsx +++ b/src/runtime/ssr-entry.tsx @@ -1,7 +1,14 @@ import { App } from './app'; import { renderToString } from 'react-dom/server'; +import { StaticRouter } from 'react-router-dom/server'; // For ssr component render -export function render() { - return renderToString(); +export function render(pagePath: string) { + return renderToString( + + + + ); } + +export { routes } from 'island:routes'; diff --git a/src/shared/types/index.ts b/src/shared/types/index.ts new file mode 100644 index 0000000..3c3db9e --- /dev/null +++ b/src/shared/types/index.ts @@ -0,0 +1,49 @@ +import { UserConfig as ViteConfiguration } from 'vite'; + +export type NavItemWithLink = { + text: string; + link: string; +}; + +export interface SideBar { + [path: string]: SideBarGroup[]; +} + +export interface SideBarGroup { + text: string; + items: SideBarItem[]; +} + +export type SideBarItem = + | { + text: string; + link: string; + } + | { + text: string; + link?: string; + items: SideBarItem[]; + }; + +export interface Footer { + message: string; +} + +export interface ThemeConfig { + nav?: NavItemWithLink[]; + sidebar?: SideBar; + footer?: Footer; +} + +export interface UserConfig { + title: string; + description: string; + themeConfig: ThemeConfig; + vite: ViteConfiguration; +} + +export interface SiteConfig { + root: string; + configPath: string; + siteData: UserConfig; +} diff --git a/src/shared/types/types.d.ts b/src/shared/types/types.d.ts new file mode 100644 index 0000000..52c3131 --- /dev/null +++ b/src/shared/types/types.d.ts @@ -0,0 +1,10 @@ +declare module 'island:site-data' { + import type { UserConfig } from 'shared/types'; + const siteData: UserConfig; + export default siteData; +} + +declare module 'island:routes' { + import type { RouteObject } from 'react-router-dom'; + export const routes: RouteObject[]; +} diff --git a/src/theme-default/Layout/index.tsx b/src/theme-default/Layout/index.tsx index e94748e..e516833 100644 --- a/src/theme-default/Layout/index.tsx +++ b/src/theme-default/Layout/index.tsx @@ -1,14 +1,11 @@ import { useState } from 'react'; +import { Content } from '@runtime'; export function Layout() { - const [count, setCount] = useState(0); return (
-

This is Layout Component

-
- {count} - -
+

Common Content

+
); } diff --git a/tsconfig.json b/tsconfig.json index bb021aa..fe98436 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,11 +2,16 @@ "compilerOptions": { "module": "ESNext", "outDir": "dist", - "rootDir": "src", + "rootDir": ".", "target": "ESNext", "jsx": "react-jsx", "moduleResolution": "node", - "esModuleInterop": true + "esModuleInterop": true, + "baseUrl": "src", + "paths": { + "shared/*": ["shared/*"], + "@runtime": ["runtime/index.ts"] + } }, "include": ["src/**/*"] } diff --git a/tsup.config.ts b/tsup.config.ts index 175faff..7ba18d2 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,7 +1,11 @@ import { defineConfig } from 'tsup'; export default defineConfig({ - entryPoints: ['src/node/cli.ts'], + entryPoints: [ + './src/node/cli.ts', + './src/node/index.ts', + './src/node/dev.ts' + ], bundle: true, splitting: true, minify: process.env.NODE_ENV === 'production', @@ -9,7 +13,5 @@ export default defineConfig({ format: ['cjs', 'esm'], dts: true, shims: true, - banner: { - js: 'import { createRequire as createRequire0 } from "module"; const require = createRequire0(import.meta.url);' - } + clean: true });