From 0c4210bb5ed114fb8597786230cb145790578071 Mon Sep 17 00:00:00 2001 From: Jeff Tian Date: Tue, 27 Jun 2023 22:56:01 +0800 Subject: [PATCH] feat(build): support nested markdown includes (#2545) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- .prettierignore | 1 + __tests__/e2e/markdown-extensions/index.md | 5 + .../markdown-extensions.test.ts | 6 +- .../e2e/markdown-extensions/nested-include.md | 3 + docs/guide/markdown.md | 4 +- package.json | 10 +- pnpm-lock.yaml | 316 +++++++++--------- src/node/markdownToVue.ts | 38 ++- 8 files changed, 200 insertions(+), 183 deletions(-) create mode 100644 __tests__/e2e/markdown-extensions/nested-include.md diff --git a/.prettierignore b/.prettierignore index e5ac2d3d..32f2a7ad 100644 --- a/.prettierignore +++ b/.prettierignore @@ -6,3 +6,4 @@ cache template temp !CHANGELOG.md +.temp diff --git a/__tests__/e2e/markdown-extensions/index.md b/__tests__/e2e/markdown-extensions/index.md index 348bdca9..3dba6b4e 100644 --- a/__tests__/e2e/markdown-extensions/index.md +++ b/__tests__/e2e/markdown-extensions/index.md @@ -180,3 +180,8 @@ export default config ## Markdown At File Inclusion + + +## Markdown Nested File Inclusion + + diff --git a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts index b844647b..69764571 100644 --- a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts +++ b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts @@ -63,7 +63,7 @@ describe('Table of Contents', () => { test('render toc', async () => { const items = page.locator('#table-of-contents + nav ul li') const count = await items.count() - expect(count).toBe(24) + expect(count).toBe(27) }) }) @@ -233,4 +233,8 @@ describe('Markdown File Inclusion', () => { const h1 = page.locator('#markdown-at-file-inclusion + h1') expect(await h1.getAttribute('id')).toBe('bar') }) + test('render markdown using nested inclusion', async () => { + const h1 = page.locator('#markdown-nested-file-inclusion + h1') + expect(await h1.getAttribute('id')).toBe('foo-1') + }) }) diff --git a/__tests__/e2e/markdown-extensions/nested-include.md b/__tests__/e2e/markdown-extensions/nested-include.md new file mode 100644 index 00000000..fd6cb58a --- /dev/null +++ b/__tests__/e2e/markdown-extensions/nested-include.md @@ -0,0 +1,3 @@ + + +### After Foo diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index 37f500f6..bd213f30 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -696,10 +696,10 @@ You can also [import snippets](#import-code-snippets) in code groups: ## Markdown File Inclusion -You can include a markdown file in another markdown file. +You can include a markdown file in another markdown file, even nested. ::: tip -You can also prefix the markdown path with `@`, it will act as the source root. By default it's the VitePress project root, unless `srcDir` is configured. +You can also prefix the markdown path with `@`, it will act as the source root. By default, it's the VitePress project root, unless `srcDir` is configured. ::: For example, you can include a relative markdown file using this: diff --git a/package.json b/package.json index e73dd2b3..2fa88626 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0-beta.3", "description": "Vite & Vue powered static site generator", "type": "module", - "packageManager": "pnpm@8.6.3", + "packageManager": "pnpm@8.6.5", "main": "dist/node/index.js", "types": "types/index.d.ts", "exports": { @@ -130,14 +130,14 @@ "@types/markdown-it-emoji": "^2.0.2", "@types/micromatch": "^4.0.2", "@types/minimist": "^1.2.2", - "@types/node": "^20.3.1", + "@types/node": "^20.3.2", "@types/prompts": "^2.4.4", "chokidar": "^3.5.3", "compression": "^1.7.4", "conventional-changelog-cli": "^2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "esbuild": "^0.18.7", + "esbuild": "^0.18.10", "escape-html": "^1.0.3", "execa": "^7.1.1", "fast-glob": "^3.2.12", @@ -166,7 +166,7 @@ "prompts": "^2.4.2", "punycode": "^2.3.0", "rimraf": "^5.0.1", - "rollup": "^3.25.1", + "rollup": "^3.25.3", "rollup-plugin-dts": "^5.3.0", "rollup-plugin-esbuild": "^5.0.0", "semver": "^7.5.3", @@ -176,7 +176,7 @@ "supports-color": "^9.3.1", "typescript": "^5.1.3", "vitest": "^0.32.2", - "vue-tsc": "^1.8.1", + "vue-tsc": "^1.8.2", "wait-on": "^7.0.1" }, "simple-git-hooks": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 891ad0b2..3f6c1d11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,7 +43,7 @@ importers: version: 0.14.3 vite: specifier: 4.4.0-beta.2 - version: 4.4.0-beta.2(@types/node@20.3.1) + version: 4.4.0-beta.2(@types/node@20.3.2) vue: specifier: ^3.3.4 version: 3.3.4 @@ -74,19 +74,19 @@ importers: version: 0.12.0 '@rollup/plugin-alias': specifier: ^5.0.0 - version: 5.0.0(rollup@3.25.1) + version: 5.0.0(rollup@3.25.3) '@rollup/plugin-commonjs': specifier: ^25.0.2 - version: 25.0.2(rollup@3.25.1) + version: 25.0.2(rollup@3.25.3) '@rollup/plugin-json': specifier: ^6.0.0 - version: 6.0.0(rollup@3.25.1) + version: 6.0.0(rollup@3.25.3) '@rollup/plugin-node-resolve': specifier: ^15.1.0 - version: 15.1.0(rollup@3.25.1) + version: 15.1.0(rollup@3.25.3) '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.25.1) + version: 5.0.2(rollup@3.25.3) '@types/body-scroll-lock': specifier: ^3.1.0 version: 3.1.0 @@ -127,8 +127,8 @@ importers: specifier: ^1.2.2 version: 1.2.2 '@types/node': - specifier: ^20.3.1 - version: 20.3.1 + specifier: ^20.3.2 + version: 20.3.2 '@types/prompts': specifier: ^2.4.4 version: 2.4.4 @@ -148,8 +148,8 @@ importers: specifier: ^4.3.4 version: 4.3.4(supports-color@9.3.1) esbuild: - specifier: ^0.18.7 - version: 0.18.7 + specifier: ^0.18.10 + version: 0.18.10 escape-html: specifier: ^1.0.3 version: 1.0.3 @@ -235,14 +235,14 @@ importers: specifier: ^5.0.1 version: 5.0.1 rollup: - specifier: ^3.25.1 - version: 3.25.1 + specifier: ^3.25.3 + version: 3.25.3 rollup-plugin-dts: specifier: ^5.3.0 - version: 5.3.0(rollup@3.25.1)(typescript@5.1.3) + version: 5.3.0(rollup@3.25.3)(typescript@5.1.3) rollup-plugin-esbuild: specifier: ^5.0.0 - version: 5.0.0(esbuild@0.18.7)(rollup@3.25.1)(supports-color@9.3.1) + version: 5.0.0(esbuild@0.18.10)(rollup@3.25.3)(supports-color@9.3.1) semver: specifier: ^7.5.3 version: 7.5.3 @@ -265,8 +265,8 @@ importers: specifier: ^0.32.2 version: 0.32.2(supports-color@9.3.1) vue-tsc: - specifier: ^1.8.1 - version: 1.8.1(typescript@5.1.3) + specifier: ^1.8.2 + version: 1.8.2(typescript@5.1.3) wait-on: specifier: ^7.0.1 version: 7.0.1(debug@4.3.4) @@ -530,8 +530,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.18.7: - resolution: {integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==} + /@esbuild/android-arm64@0.18.10: + resolution: {integrity: sha512-ynm4naLbNbK0ajf9LUWtQB+6Vfg1Z/AplArqr4tGebC00Z6m9Y91OVIcjDa461wGcZwcaHYaZAab4yJxfhisTQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -547,8 +547,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.18.7: - resolution: {integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==} + /@esbuild/android-arm@0.18.10: + resolution: {integrity: sha512-3KClmVNd+Fku82uZJz5C4Rx8m1PPmWUFz5Zkw8jkpZPOmsq+EG1TTOtw1OXkHuX3WczOFQigrtf60B1ijKwNsg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -564,8 +564,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.18.7: - resolution: {integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==} + /@esbuild/android-x64@0.18.10: + resolution: {integrity: sha512-vFfXj8P9Yfjh54yqUDEHKzqzYuEfPyAOl3z7R9hjkwt+NCvbn9VMxX+IILnAfdImRBfYVItgSUsqGKhJFnBwZw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -581,8 +581,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.18.7: - resolution: {integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==} + /@esbuild/darwin-arm64@0.18.10: + resolution: {integrity: sha512-k2OJQ7ZxE6sVc91+MQeZH9gFeDAH2uIYALPAwTjTCvcPy9Dzrf7V7gFUQPYkn09zloWhQ+nvxWHia2x2ZLR0sQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -598,8 +598,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.18.7: - resolution: {integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==} + /@esbuild/darwin-x64@0.18.10: + resolution: {integrity: sha512-tnz/mdZk1L1Z3WpGjin/L2bKTe8/AKZpI8fcCLtH+gq8WXWsCNJSxlesAObV4qbtTl6pG5vmqFXfWUQ5hV8PAQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -615,8 +615,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.18.7: - resolution: {integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==} + /@esbuild/freebsd-arm64@0.18.10: + resolution: {integrity: sha512-QJluV0LwBrbHnYYwSKC+K8RGz0g/EyhpQH1IxdoFT0nM7PfgjE+aS8wxq/KFEsU0JkL7U/EEKd3O8xVBxXb2aA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -632,8 +632,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.18.7: - resolution: {integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==} + /@esbuild/freebsd-x64@0.18.10: + resolution: {integrity: sha512-Hi/ycUkS6KTw+U9G5PK5NoK7CZboicaKUSVs0FSiPNtuCTzK6HNM4DIgniH7hFaeuszDS9T4dhAHWiLSt/Y5Ng==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -649,8 +649,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.18.7: - resolution: {integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==} + /@esbuild/linux-arm64@0.18.10: + resolution: {integrity: sha512-Nz6XcfRBOO7jSrVpKAyEyFOPGhySPNlgumSDhWAspdQQ11ub/7/NZDMhWDFReE9QH/SsCOCLQbdj0atAk/HMOQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -666,8 +666,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.18.7: - resolution: {integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==} + /@esbuild/linux-arm@0.18.10: + resolution: {integrity: sha512-HfFoxY172tVHPIvJy+FHxzB4l8xU7e5cxmNS11cQ2jt4JWAukn/7LXaPdZid41UyTweqa4P/1zs201gRGCTwHw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -683,8 +683,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.18.7: - resolution: {integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==} + /@esbuild/linux-ia32@0.18.10: + resolution: {integrity: sha512-otMdmSmkMe+pmiP/bZBjfphyAsTsngyT9RCYwoFzqrveAbux9nYitDTpdgToG0Z0U55+PnH654gCH2GQ1aB6Yw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -700,8 +700,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.18.7: - resolution: {integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==} + /@esbuild/linux-loong64@0.18.10: + resolution: {integrity: sha512-t8tjFuON1koxskzQ4VFoh0T5UDUMiLYjwf9Wktd0tx8AoK6xgU+5ubKOpWpcnhEQ2tESS5u0v6QuN8PX/ftwcQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -717,8 +717,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.18.7: - resolution: {integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==} + /@esbuild/linux-mips64el@0.18.10: + resolution: {integrity: sha512-+dUkcVzcfEJHz3HEnVpIJu8z8Wdn2n/nWMWdl6FVPFGJAVySO4g3+XPzNKFytVFwf8hPVDwYXzVcu8GMFqsqZw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.18.7: - resolution: {integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==} + /@esbuild/linux-ppc64@0.18.10: + resolution: {integrity: sha512-sO3PjjxEGy+PY2qkGe2gwJbXdZN9wAYpVBZWFD0AwAoKuXRkWK0/zaMQ5ekUFJDRDCRm8x5U0Axaub7ynH/wVg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -751,8 +751,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.18.7: - resolution: {integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==} + /@esbuild/linux-riscv64@0.18.10: + resolution: {integrity: sha512-JDtdbJg3yjDeXLv4lZYE1kiTnxv73/8cbPHY9T/dUKi8rYOM/k5b3W4UJLMUksuQ6nTm5c89W1nADsql6FW75A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -768,8 +768,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.18.7: - resolution: {integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==} + /@esbuild/linux-s390x@0.18.10: + resolution: {integrity: sha512-NLuSKcp8WckjD2a7z5kzLiCywFwBTMlIxDNuud1AUGVuwBBJSkuubp6cNjJ0p5c6CZaA3QqUGwjHJBiG1SoOFw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -785,8 +785,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.18.7: - resolution: {integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==} + /@esbuild/linux-x64@0.18.10: + resolution: {integrity: sha512-wj2KRsCsFusli+6yFgNO/zmmLslislAWryJnodteRmGej7ZzinIbMdsyp13rVGde88zxJd5vercNYK9kuvlZaQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -802,8 +802,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.18.7: - resolution: {integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==} + /@esbuild/netbsd-x64@0.18.10: + resolution: {integrity: sha512-pQ9QqxEPI3cVRZyUtCoZxhZK3If+7RzR8L2yz2+TDzdygofIPOJFaAPkEJ5rYIbUO101RaiYxfdOBahYexLk5A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -819,8 +819,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.18.7: - resolution: {integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==} + /@esbuild/openbsd-x64@0.18.10: + resolution: {integrity: sha512-k8GTIIW9I8pEEfoOUm32TpPMgSg06JhL5DO+ql66aLTkOQUs0TxCA67Wi7pv6z8iF8STCGcNbm3UWFHLuci+ag==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -836,8 +836,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.18.7: - resolution: {integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==} + /@esbuild/sunos-x64@0.18.10: + resolution: {integrity: sha512-vIGYJIdEI6d4JBucAx8py792G8J0GP40qSH+EvSt80A4zvGd6jph+5t1g+eEXcS2aRpgZw6CrssNCFZxTdEsxw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -853,8 +853,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.18.7: - resolution: {integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==} + /@esbuild/win32-arm64@0.18.10: + resolution: {integrity: sha512-kRhNcMZFGMW+ZHCarAM1ypr8OZs0k688ViUCetVCef9p3enFxzWeBg9h/575Y0nsFu0ZItluCVF5gMR2pwOEpA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -870,8 +870,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.18.7: - resolution: {integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==} + /@esbuild/win32-ia32@0.18.10: + resolution: {integrity: sha512-AR9PX1whYaYh9p0EOaKna0h48F/A101Mt/ag72+kMkkBZXPQ7cjbz2syXI/HI3OlBdUytSdHneljfjvUoqwqiQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -887,8 +887,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.18.7: - resolution: {integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==} + /@esbuild/win32-x64@0.18.10: + resolution: {integrity: sha512-5sTkYhAGHNRr6bVf4RM0PsscqVr6/DBYdrlMh168oph3usid3lKHcHEEHmr34iZ9GHeeg2juFOxtpl6XyC3tpw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1020,7 +1020,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-alias@5.0.0(rollup@3.25.1): + /@rollup/plugin-alias@5.0.0(rollup@3.25.3): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1029,11 +1029,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.25.1 + rollup: 3.25.3 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs@25.0.2(rollup@3.25.1): + /@rollup/plugin-commonjs@25.0.2(rollup@3.25.3): resolution: {integrity: sha512-NGTwaJxIO0klMs+WSFFtBP7b9TdTJ3K76HZkewT8/+yHzMiUGVQgaPtLQxNVYIgT5F7lxkEyVID+yS3K7bhCow==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1042,16 +1042,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.25.1) + '@rollup/pluginutils': 5.0.2(rollup@3.25.3) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.25.1 + rollup: 3.25.3 dev: true - /@rollup/plugin-json@6.0.0(rollup@3.25.1): + /@rollup/plugin-json@6.0.0(rollup@3.25.3): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1060,11 +1060,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.25.1) - rollup: 3.25.1 + '@rollup/pluginutils': 5.0.2(rollup@3.25.3) + rollup: 3.25.3 dev: true - /@rollup/plugin-node-resolve@15.1.0(rollup@3.25.1): + /@rollup/plugin-node-resolve@15.1.0(rollup@3.25.3): resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1073,16 +1073,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.25.1) + '@rollup/pluginutils': 5.0.2(rollup@3.25.3) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.2 - rollup: 3.25.1 + rollup: 3.25.3 dev: true - /@rollup/plugin-replace@5.0.2(rollup@3.25.1): + /@rollup/plugin-replace@5.0.2(rollup@3.25.3): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1091,12 +1091,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.25.1) + '@rollup/pluginutils': 5.0.2(rollup@3.25.3) magic-string: 0.27.0 - rollup: 3.25.1 + rollup: 3.25.3 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.25.1): + /@rollup/pluginutils@5.0.2(rollup@3.25.3): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1108,7 +1108,7 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.25.1 + rollup: 3.25.3 dev: true /@sideway/address@4.1.4: @@ -1129,7 +1129,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/body-scroll-lock@3.1.0: @@ -1159,13 +1159,13 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/cross-spawn@6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/debug@4.1.8: @@ -1185,7 +1185,7 @@ packages: /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -1204,7 +1204,7 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/http-errors@2.0.1: @@ -1220,7 +1220,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/linkify-it@3.0.2: @@ -1284,8 +1284,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.3.1: - resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + /@types/node@20.3.2: + resolution: {integrity: sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -1294,7 +1294,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 kleur: 3.0.3 dev: true @@ -1314,7 +1314,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/serve-static@1.15.2: @@ -1322,7 +1322,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: true /@types/sizzle@2.3.3: @@ -1340,7 +1340,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.0-beta.2(@types/node@20.3.1) + vite: 4.4.0-beta.2(@types/node@20.3.2) vue: 3.3.4 dev: false @@ -1383,22 +1383,22 @@ packages: pretty-format: 27.5.1 dev: true - /@volar/language-core@1.7.8: - resolution: {integrity: sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==} + /@volar/language-core@1.7.9: + resolution: {integrity: sha512-U6GMPDNqfGFqVRv4npUN2hEDW4/6EwL4YHd6qggapcvTzRrYAodTTbOTZs4PDzmw7NSZ2Cdrmd54SjzCCMXbZw==} dependencies: - '@volar/source-map': 1.7.8 + '@volar/source-map': 1.7.9 dev: true - /@volar/source-map@1.7.8: - resolution: {integrity: sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==} + /@volar/source-map@1.7.9: + resolution: {integrity: sha512-bLizh8HIAzbq7OdxfyoG18dXJJF9FNXBcaiRj7eqg2Bq+DkgkYHabaY+xobgaXeKFOp93Tg1KfMM7qyR2KXHmQ==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.7.8: - resolution: {integrity: sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==} + /@volar/typescript@1.7.9: + resolution: {integrity: sha512-cXGg7lgvdjpRjYfz52cXKo6ExBi8k3pWeBe6Gckf4+9zmTfEwEFfKWMj0H/IyUYO+S2rjyE9jytdsu1Imk+Azw==} dependencies: - '@volar/language-core': 1.7.8 + '@volar/language-core': 1.7.9 dev: true /@vue/compiler-core@3.3.4: @@ -1441,16 +1441,16 @@ packages: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} dev: false - /@vue/language-core@1.8.1(typescript@5.1.3): - resolution: {integrity: sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==} + /@vue/language-core@1.8.2(typescript@5.1.3): + resolution: {integrity: sha512-QJujhmp89TRoWwzjn2sPMezG97+mNyaCTfznGHWNCE3LBsillZCBqAO7M7cxO8ee1V3r+qHjWytkoh3M4YkRJw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.7.8 - '@volar/source-map': 1.7.8 + '@volar/language-core': 1.7.9 + '@volar/source-map': 1.7.9 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -1503,11 +1503,11 @@ packages: /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - /@vue/typescript@1.8.1(typescript@5.1.3): - resolution: {integrity: sha512-nQpo55j/roie8heCfqyXHnyayqD5+p4/0fzfxH4ZuHf7NSBQS791PNv7ztp2CCOjnGAiaiCMdtC9rc6oriyPUg==} + /@vue/typescript@1.8.2(typescript@5.1.3): + resolution: {integrity: sha512-5q2gpCBIfGlygfJupyjAQbc82r5J6qQuhupPeX3NlHvDK+mR6m5n4jVGknSacsp+7gtgs4RKYDq+tysoto+npA==} dependencies: - '@volar/typescript': 1.7.8 - '@vue/language-core': 1.8.1(typescript@5.1.3) + '@volar/typescript': 1.7.9 + '@vue/language-core': 1.8.2(typescript@5.1.3) transitivePeerDependencies: - typescript dev: true @@ -2431,34 +2431,34 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: true - /esbuild@0.18.7: - resolution: {integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==} + /esbuild@0.18.10: + resolution: {integrity: sha512-33WKo67auOXzZHBY/9DTJRo7kIvfU12S+D4sp2wIz39N88MDIaCGyCwbW01RR70pK6Iya0I74lHEpyLfFqOHPA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.7 - '@esbuild/android-arm64': 0.18.7 - '@esbuild/android-x64': 0.18.7 - '@esbuild/darwin-arm64': 0.18.7 - '@esbuild/darwin-x64': 0.18.7 - '@esbuild/freebsd-arm64': 0.18.7 - '@esbuild/freebsd-x64': 0.18.7 - '@esbuild/linux-arm': 0.18.7 - '@esbuild/linux-arm64': 0.18.7 - '@esbuild/linux-ia32': 0.18.7 - '@esbuild/linux-loong64': 0.18.7 - '@esbuild/linux-mips64el': 0.18.7 - '@esbuild/linux-ppc64': 0.18.7 - '@esbuild/linux-riscv64': 0.18.7 - '@esbuild/linux-s390x': 0.18.7 - '@esbuild/linux-x64': 0.18.7 - '@esbuild/netbsd-x64': 0.18.7 - '@esbuild/openbsd-x64': 0.18.7 - '@esbuild/sunos-x64': 0.18.7 - '@esbuild/win32-arm64': 0.18.7 - '@esbuild/win32-ia32': 0.18.7 - '@esbuild/win32-x64': 0.18.7 + '@esbuild/android-arm': 0.18.10 + '@esbuild/android-arm64': 0.18.10 + '@esbuild/android-x64': 0.18.10 + '@esbuild/darwin-arm64': 0.18.10 + '@esbuild/darwin-x64': 0.18.10 + '@esbuild/freebsd-arm64': 0.18.10 + '@esbuild/freebsd-x64': 0.18.10 + '@esbuild/linux-arm': 0.18.10 + '@esbuild/linux-arm64': 0.18.10 + '@esbuild/linux-ia32': 0.18.10 + '@esbuild/linux-loong64': 0.18.10 + '@esbuild/linux-mips64el': 0.18.10 + '@esbuild/linux-ppc64': 0.18.10 + '@esbuild/linux-riscv64': 0.18.10 + '@esbuild/linux-s390x': 0.18.10 + '@esbuild/linux-x64': 0.18.10 + '@esbuild/netbsd-x64': 0.18.10 + '@esbuild/openbsd-x64': 0.18.10 + '@esbuild/sunos-x64': 0.18.10 + '@esbuild/win32-arm64': 0.18.10 + '@esbuild/win32-ia32': 0.18.10 + '@esbuild/win32-x64': 0.18.10 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2564,7 +2564,7 @@ packages: /focus-trap@7.4.3: resolution: {integrity: sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==} dependencies: - tabbable: 6.1.2 + tabbable: 6.2.0 dev: false /follow-redirects@1.15.2(debug@4.3.4): @@ -4072,7 +4072,7 @@ packages: glob: 10.3.0 dev: true - /rollup-plugin-dts@5.3.0(rollup@3.25.1)(typescript@5.1.3): + /rollup-plugin-dts@5.3.0(rollup@3.25.3)(typescript@5.1.3): resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} engines: {node: '>=v14'} peerDependencies: @@ -4080,32 +4080,32 @@ packages: typescript: ^4.1 || ^5.0 dependencies: magic-string: 0.30.0 - rollup: 3.25.1 + rollup: 3.25.3 typescript: 5.1.3 optionalDependencies: '@babel/code-frame': 7.22.5 dev: true - /rollup-plugin-esbuild@5.0.0(esbuild@0.18.7)(rollup@3.25.1)(supports-color@9.3.1): + /rollup-plugin-esbuild@5.0.0(esbuild@0.18.10)(rollup@3.25.3)(supports-color@9.3.1): resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} peerDependencies: esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.25.1) + '@rollup/pluginutils': 5.0.2(rollup@3.25.3) debug: 4.3.4(supports-color@9.3.1) es-module-lexer: 1.3.0 - esbuild: 0.18.7 + esbuild: 0.18.10 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 3.25.1 + rollup: 3.25.3 transitivePeerDependencies: - supports-color dev: true - /rollup@3.25.1: - resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} + /rollup@3.25.3: + resolution: {integrity: sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -4120,7 +4120,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: true /safe-buffer@5.1.2: @@ -4475,8 +4475,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /tabbable@6.1.2: - resolution: {integrity: sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==} + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: false /temp-dir@2.0.0: @@ -4561,8 +4561,8 @@ packages: regexparam: 1.3.0 dev: true - /tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + /tslib@2.6.0: + resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} dev: true /type-detect@4.0.8: @@ -4656,7 +4656,7 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-node@0.32.2(@types/node@20.3.1)(supports-color@9.3.1): + /vite-node@0.32.2(@types/node@20.3.2)(supports-color@9.3.1): resolution: {integrity: sha512-dTQ1DCLwl2aEseov7cfQ+kDMNJpM1ebpyMMMwWzBvLbis8Nla/6c9WQcqpPssTwS6Rp/+U6KwlIj8Eapw4bLdA==} engines: {node: '>=v14.18.0'} hasBin: true @@ -4666,7 +4666,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.9(@types/node@20.3.1) + vite: 4.3.9(@types/node@20.3.2) transitivePeerDependencies: - '@types/node' - less @@ -4677,7 +4677,7 @@ packages: - terser dev: true - /vite@4.3.9(@types/node@20.3.1): + /vite@4.3.9(@types/node@20.3.2): resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -4702,15 +4702,15 @@ packages: terser: optional: true dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 esbuild: 0.17.19 postcss: 8.4.24 - rollup: 3.25.1 + rollup: 3.25.3 optionalDependencies: fsevents: 2.3.2 dev: true - /vite@4.4.0-beta.2(@types/node@20.3.1): + /vite@4.4.0-beta.2(@types/node@20.3.2): resolution: {integrity: sha512-wDISz2ET2q0QhmnKgkw9LGmjV3roie30ryb83b9r/UJ2JnXEXkaiCoWam5KzZning+7y5/W5XQ/VjHG5C50wtA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -4738,10 +4738,10 @@ packages: terser: optional: true dependencies: - '@types/node': 20.3.1 - esbuild: 0.18.7 + '@types/node': 20.3.2 + esbuild: 0.18.10 postcss: 8.4.24 - rollup: 3.25.1 + rollup: 3.25.3 optionalDependencies: fsevents: 2.3.2 dev: false @@ -4779,7 +4779,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.3.1 + '@types/node': 20.3.2 '@vitest/expect': 0.32.2 '@vitest/runner': 0.32.2 '@vitest/snapshot': 0.32.2 @@ -4799,8 +4799,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.5.0 - vite: 4.3.9(@types/node@20.3.1) - vite-node: 0.32.2(@types/node@20.3.1)(supports-color@9.3.1) + vite: 4.3.9(@types/node@20.3.2) + vite-node: 0.32.2(@types/node@20.3.2)(supports-color@9.3.1) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -4839,14 +4839,14 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.1(typescript@5.1.3): - resolution: {integrity: sha512-GxBQrcb0Qvyrj1uZqnTXQyWbXdNDRY2MTa+r7ESgjhf+WzBSdxZfkS3KD/C3WhKYG+aN8hf44Hp5Gqzb6PehAA==} + /vue-tsc@1.8.2(typescript@5.1.3): + resolution: {integrity: sha512-iLS+z7jzxEAZRGLo4bYWfzZeBNVA71uXKmT2+5bQSsOJBtGLniR45sVpR+X7sa0m3J8iMEIU5+phLB7FnMLS0A==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.1(typescript@5.1.3) - '@vue/typescript': 1.8.1(typescript@5.1.3) + '@vue/language-core': 1.8.2(typescript@5.1.3) + '@vue/typescript': 1.8.2(typescript@5.1.3) semver: 7.5.3 typescript: 5.1.3 dev: true diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index 4d76d5ed..02d1f90e 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -86,23 +86,27 @@ export async function createMarkdownToVueRenderFn( // resolve includes let includes: string[] = [] - src = src.replace(includesRE, (m, m1) => { - if (!m1.length) return m - - const atPresent = m1[0] === '@' - try { - const dir = atPresent ? srcDir : path.dirname(fileOrig) - const includePath = path.join( - dir, - atPresent ? m1.slice(m1.length > 1 && m1[1] === '/' ? 2 : 1) : m1 - ) - const content = fs.readFileSync(includePath, 'utf-8') - includes.push(slash(includePath)) - return content - } catch (error) { - return m // silently ignore error if file is not present - } - }) + + function processIncludes(src: string): string { + return src.replace(includesRE, (m, m1) => { + if (!m1.length) return m + + const atPresent = m1[0] === '@' + try { + const includePath = atPresent + ? path.join(srcDir, m1.slice(m1[1] === '/' ? 2 : 1)) + : path.join(path.dirname(fileOrig), m1) + const content = fs.readFileSync(includePath, 'utf-8') + includes.push(slash(includePath)) + // recursively process includes in the content + return processIncludes(content) + } catch (error) { + return m // silently ignore error if file is not present + } + }) + } + + src = processIncludes(src) // reset env before render const env: MarkdownEnv = {