test(e2e): add markdown file inclusion check

This commit is contained in:
YunYouJun 2024-06-16 20:09:03 +08:00
parent 8ab9129381
commit 4e6a37e6a3
12 changed files with 141 additions and 77 deletions

View File

@ -2,7 +2,7 @@
title: 'excerpt_type: ai'
excerpt_type: ai
excerpt: '这里是 AI 摘要'
cover: https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
cover: https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
date: 2023-10-21
---

View File

@ -1,7 +1,7 @@
---
title: 'excerpt_type: html'
excerpt_type: html
cover: https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
cover: https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
---
## Header

View File

@ -1,5 +1,5 @@
---
cover: https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
cover: https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
title: Hello, Valaxy!
date: 2022-03-22
updated: 2022-03-23 15:00:00

View File

@ -1,6 +0,0 @@
---
title: "@include 测试"
categories: Test
---
<!-- @include: ./markdown.md{9,} -->

View File

@ -1,7 +1,13 @@
---
title: Markdown File Inclusion
title: Markdown File Inclusion By @include
categories:
- Test
---
Include content:
<!--@include: @/snippets/md/test.md-->
<!-- @include: @/snippets/md/test.md -->
---
<!-- @include: ../posts/markdown.md{9,} -->

View File

@ -1,5 +1,5 @@
---
cover: https://fastly.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
cover: https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
title: Why Valaxy
title_zh: 为什么选 Valaxy
date: 2022-03-22

View File

@ -0,0 +1,18 @@
import { expect, test } from '@playwright/test'
import { env } from '../../env'
test.use({
baseURL: env['theme-yun'],
})
test.describe('Markdown File Inclusion by @include', () => {
test('test/markdown-file-inclusion', async ({ page }) => {
await page.goto('/test/markdown-file-inclusion')
await page.waitForSelector('.markdown-body')
await expect(page.locator('h1#hello-included')).toHaveText('Hello Included')
// tip custom-block, count > 1
expect(await page.locator('.tip.custom-block').count()).toBeGreaterThan(1)
})
})

View File

@ -51,9 +51,6 @@ export function useActiveAnchor(
const offsetHeight = document.body.offsetHeight
const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1
// console.log(scrollY, innerHeight, offsetHeight)
// console.log(isBottom)
// page bottom - highlight last one
if (anchors.length && isBottom) {
activateLink(anchors[anchors.length - 1].hash)

View File

@ -106,7 +106,7 @@ export async function createMarkdownToVueRenderFn(
const pageData = await generatePageData(code, id, options)
code = transformHexoTags(code, id)
const data = resolveTransformIncludes(code, id)
const data = resolveTransformIncludes(code, id, options)
const includes = data.includes
code = data.code
code = transformCodeBlock(code)

View File

@ -14,11 +14,14 @@ export function createTransformIncludes(options: ResolvedValaxyOptions) {
}
}
export function resolveTransformIncludes(code: string, id: string) {
export function resolveTransformIncludes(code: string, id: string, options: ResolvedValaxyOptions) {
const includes: string[] = []
const dir = path.dirname(id)
code = code.replace(includedRE, (m, m1) => {
const includePath = path.join(dir, m1)
const atPresent = m1.startsWith('@')
const includePath = atPresent
? path.resolve(options.userRoot, m1.slice(m1[1] === '/' ? 2 : 1))
: path.join(dir, m1)
includes.push(slash(includePath))
return ''
})

View File

@ -74,7 +74,7 @@
"@unhead/vue": "^1.9.13",
"@valaxyjs/devtools": "workspace:*",
"@vitejs/plugin-vue": "^5.0.5",
"@vue/devtools-api": "^7.2.1",
"@vue/devtools-api": "^7.3.0",
"@vueuse/core": "^10.11.0",
"@vueuse/integrations": "^10.11.0",
"consola": "^3.2.3",
@ -125,7 +125,7 @@
"unplugin-vue-router": "^0.9.1",
"vanilla-lazyload": "^19.1.3",
"vite": "^5.3.1",
"vite-plugin-vue-devtools": "^7.2.1",
"vite-plugin-vue-devtools": "^7.3.0",
"vite-plugin-vue-layouts": "0.11.0",
"vite-ssg": "0.23.7",
"vite-ssg-sitemap": "0.6.1",

View File

@ -345,8 +345,8 @@ importers:
specifier: ^5.0.5
version: 5.0.5(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-api':
specifier: ^7.2.1
version: 7.2.1(vue@3.4.29(typescript@5.4.5))
specifier: ^7.3.0
version: 7.3.0(vue@3.4.29(typescript@5.4.5))
'@vueuse/core':
specifier: ^10.11.0
version: 10.11.0(vue@3.4.29(typescript@5.4.5))
@ -498,8 +498,8 @@ importers:
specifier: ^5.3.1
version: 5.3.1(@types/node@20.14.2)(sass@1.77.5)
vite-plugin-vue-devtools:
specifier: ^7.2.1
version: 7.2.1(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
specifier: ^7.3.0
version: 7.3.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
vite-plugin-vue-layouts:
specifier: 0.11.0
version: 0.11.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
@ -2719,17 +2719,28 @@ packages:
'@vue/devtools-api@7.2.1':
resolution: {integrity: sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g==}
'@vue/devtools-core@7.2.1':
resolution: {integrity: sha512-OyWl455UnJIVgZ6lo5WQ79WbDMoXtSRwyNKp9WzCZ0HhuQywIk4qv59KtLRe75uVmtGBde4hXNaSyRm+x9bY6g==}
'@vue/devtools-api@7.3.0':
resolution: {integrity: sha512-EQ6DIm9AuL9q6IzjjnxeHWgzHzZTI+0ZGyLyG6faLN1e0tzLWPut58OtvFbLP/hbEhE5zPlsdUsH1uFr7RVFYw==}
'@vue/devtools-core@7.3.0':
resolution: {integrity: sha512-J5nmaYadJvDgH9zsQI9vSLlWjfZn/TdKWEKMcc9xjbF3OvdhQwRrojvFax1G+WPoQ/X67EZKeUVY/ovCCyLo7A==}
'@vue/devtools-kit@7.2.1':
resolution: {integrity: sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==}
peerDependencies:
vue: ^3.0.0
'@vue/devtools-kit@7.3.0':
resolution: {integrity: sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==}
peerDependencies:
vue: ^3.0.0
'@vue/devtools-shared@7.2.1':
resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==}
'@vue/devtools-shared@7.3.0':
resolution: {integrity: sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==}
'@vue/language-core@2.0.17':
resolution: {integrity: sha512-tHw2J6G9yL4kn3jN5MftOHEq86Y6qnuohBQ1OHkJ73fAv3OYgwDI1cfX7ds0OEJEycOMG64BA3ql5bDgDa41zw==}
peerDependencies:
@ -3135,6 +3146,9 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
birpc@0.2.17:
resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==}
body-parser@1.20.2:
resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@ -3423,6 +3437,10 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
copy-anything@3.0.5:
resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
engines: {node: '>=12.13'}
copy-text-to-clipboard@3.2.0:
resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
engines: {node: '>=12'}
@ -5295,6 +5313,10 @@ packages:
is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
is-what@4.1.16:
resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
engines: {node: '>=12.13'}
is-whitespace-character@1.0.4:
resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==}
@ -7527,6 +7549,10 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
superjson@2.2.1:
resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==}
engines: {node: '>=16'}
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@ -8092,8 +8118,8 @@ packages:
'@nuxt/kit':
optional: true
vite-plugin-vue-devtools@7.2.1:
resolution: {integrity: sha512-4k7QNZz0nSojoePQoxnE5fIzi8RU1QJHc0TEg4golv2phZxhBGfjScZD2B8X6bcrRbUQ9CaRKN0dzBs1xtzzNg==}
vite-plugin-vue-devtools@7.3.0:
resolution: {integrity: sha512-XnxQzTloGkQUTpsRdWVsEBzyh9F6i8NBmuPo8lotx4lSUnWYJ+jUlXvfftzmOf14hFgsTOySLJCr9nhaqOzgOA==}
engines: {node: '>=v14.21.3'}
peerDependencies:
vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0
@ -8853,7 +8879,7 @@ snapshots:
'@babel/helper-module-imports@7.22.15':
dependencies:
'@babel/types': 7.24.6
'@babel/types': 7.24.7
'@babel/helper-module-imports@7.24.6':
dependencies:
@ -8988,27 +9014,29 @@ snapshots:
dependencies:
'@babel/types': 7.24.6
'@babel/plugin-proposal-decorators@7.24.6(@babel/core@7.24.6)':
'@babel/plugin-proposal-decorators@7.24.6(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.6
'@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6)
'@babel/helper-plugin-utils': 7.24.6
'@babel/plugin-syntax-decorators': 7.24.6(@babel/core@7.24.6)
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-decorators': 7.24.6(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
'@babel/plugin-syntax-decorators@7.24.6(@babel/core@7.24.6)':
'@babel/plugin-syntax-decorators@7.24.6(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.6
'@babel/helper-plugin-utils': 7.24.6
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6)':
'@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.6
'@babel/helper-plugin-utils': 7.24.6
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6)':
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.6
'@babel/helper-plugin-utils': 7.24.6
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6)':
dependencies:
@ -10817,32 +10845,32 @@ snapshots:
'@vue/babel-helper-vue-transform-on@1.2.2': {}
'@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.6)':
'@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)':
dependencies:
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.24.6
'@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6)
'@babel/template': 7.24.6
'@babel/traverse': 7.24.6
'@babel/types': 7.24.6
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/template': 7.24.7
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@vue/babel-helper-vue-transform-on': 1.2.2
'@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.6)
'@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7)
camelcase: 6.3.0
html-tags: 3.3.1
svg-tags: 1.0.0
optionalDependencies:
'@babel/core': 7.24.6
'@babel/core': 7.24.7
transitivePeerDependencies:
- supports-color
'@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.6)':
'@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)':
dependencies:
'@babel/code-frame': 7.24.6
'@babel/core': 7.24.6
'@babel/code-frame': 7.24.7
'@babel/core': 7.24.7
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.24.6
'@babel/parser': 7.24.6
'@vue/compiler-sfc': 3.4.27
'@babel/helper-plugin-utils': 7.24.7
'@babel/parser': 7.24.7
'@vue/compiler-sfc': 3.4.29
'@vue/compiler-core@3.4.27':
dependencies:
@ -10920,16 +10948,16 @@ snapshots:
transitivePeerDependencies:
- vue
'@vue/devtools-api@7.2.1(vue@3.4.29(typescript@5.4.5))':
'@vue/devtools-api@7.3.0(vue@3.4.29(typescript@5.4.5))':
dependencies:
'@vue/devtools-kit': 7.2.1(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-kit': 7.3.0(vue@3.4.29(typescript@5.4.5))
transitivePeerDependencies:
- vue
'@vue/devtools-core@7.2.1(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))':
'@vue/devtools-core@7.3.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))':
dependencies:
'@vue/devtools-kit': 7.2.1(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-shared': 7.2.1
'@vue/devtools-kit': 7.3.0(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-shared': 7.3.0
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
@ -10947,19 +10975,25 @@ snapshots:
speakingurl: 14.0.1
vue: 3.4.27(typescript@5.4.5)
'@vue/devtools-kit@7.2.1(vue@3.4.29(typescript@5.4.5))':
'@vue/devtools-kit@7.3.0(vue@3.4.29(typescript@5.4.5))':
dependencies:
'@vue/devtools-shared': 7.2.1
'@vue/devtools-shared': 7.3.0
birpc: 0.2.17
hookable: 5.5.3
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
superjson: 2.2.1
vue: 3.4.29(typescript@5.4.5)
'@vue/devtools-shared@7.2.1':
dependencies:
rfdc: 1.3.1
'@vue/devtools-shared@7.3.0':
dependencies:
rfdc: 1.3.1
'@vue/language-core@2.0.17(typescript@5.4.5)':
dependencies:
'@volar/language-core': 2.2.5
@ -11410,6 +11444,8 @@ snapshots:
binary-extensions@2.3.0: {}
birpc@0.2.17: {}
body-parser@1.20.2:
dependencies:
bytes: 3.1.2
@ -11706,6 +11742,10 @@ snapshots:
cookie@0.6.0: {}
copy-anything@3.0.5:
dependencies:
is-what: 4.1.16
copy-text-to-clipboard@3.2.0: {}
core-js-compat@3.37.1:
@ -14037,6 +14077,8 @@ snapshots:
dependencies:
call-bind: 1.0.7
is-what@4.1.16: {}
is-whitespace-character@1.0.4: {}
is-word-character@1.0.4: {}
@ -16592,6 +16634,10 @@ snapshots:
pirates: 4.0.6
ts-interface-checker: 0.1.13
superjson@2.2.1:
dependencies:
copy-anything: 3.0.5
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@ -17255,7 +17301,7 @@ snapshots:
'@unhead/vue': 1.9.13(vue@3.4.29(typescript@5.4.5))
'@valaxyjs/devtools': 0.18.7(debug@4.3.5)(rollup@4.18.0)
'@vitejs/plugin-vue': 5.0.5(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-api': 7.2.1(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-api': 7.3.0(vue@3.4.29(typescript@5.4.5))
'@vueuse/core': 10.11.0(vue@3.4.29(typescript@5.4.5))
'@vueuse/integrations': 10.11.0(axios@1.7.2)(focus-trap@7.5.4)(fuse.js@7.0.0)(jwt-decode@3.1.2)(nprogress@0.2.0)(qrcode@1.5.3)(vue@3.4.29(typescript@5.4.5))
consola: 3.2.3
@ -17306,7 +17352,7 @@ snapshots:
unplugin-vue-router: 0.8.8(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
vanilla-lazyload: 19.1.3
vite: 5.3.1(@types/node@20.14.2)(sass@1.77.5)
vite-plugin-vue-devtools: 7.2.1(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
vite-plugin-vue-devtools: 7.3.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
vite-plugin-vue-layouts: 0.11.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
vite-ssg: 0.23.7(critters@0.0.22)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
vite-ssg-sitemap: 0.6.1
@ -17407,11 +17453,11 @@ snapshots:
- rollup
- supports-color
vite-plugin-vue-devtools@7.2.1(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5)):
vite-plugin-vue-devtools@7.3.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5)):
dependencies:
'@vue/devtools-core': 7.2.1(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-kit': 7.2.1(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-shared': 7.2.1
'@vue/devtools-core': 7.3.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-kit': 7.3.0(vue@3.4.29(typescript@5.4.5))
'@vue/devtools-shared': 7.3.0
execa: 8.0.1
sirv: 2.0.4
vite: 5.3.1(@types/node@20.14.2)(sass@1.77.5)
@ -17425,13 +17471,13 @@ snapshots:
vite-plugin-vue-inspector@5.1.2(vite@5.3.1(@types/node@20.14.2)(sass@1.77.5)):
dependencies:
'@babel/core': 7.24.6
'@babel/plugin-proposal-decorators': 7.24.6(@babel/core@7.24.6)
'@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.6)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6)
'@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6)
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.6)
'@vue/compiler-dom': 3.4.27
'@babel/core': 7.24.7
'@babel/plugin-proposal-decorators': 7.24.6(@babel/core@7.24.7)
'@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.7)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7)
'@vue/compiler-dom': 3.4.29
kolorist: 1.8.0
magic-string: 0.30.10
vite: 5.3.1(@types/node@20.14.2)(sass@1.77.5)