refactor. 패키지 및 의존성 업데이트

- @pinia/nuxt 및 pinia 버전 업데이트
- app.vue에서 favicon 링크 생성 로직 개선
- error.vue에서 불필요한 console.log 제거
- pageData.global.ts에서 API URL 수정 및 에러 처리 로직 개선
- init-game-data.server.ts에서 언어 코드 설정 로직 개선
- gameData.ts에서 경로 필터링 로직 수정
- commonUtil.ts에서 정적 파일 확인 정규 표현식 개선
This commit is contained in:
clkim
2026-03-26 18:24:17 +09:00
parent 4f83ae2311
commit d5e783113d
8 changed files with 233 additions and 76 deletions

View File

@@ -20,9 +20,9 @@ const { scrollGnbPosition } = storeToRefs(scrollStore)
// favicon 링크 생성 헬퍼 // favicon 링크 생성 헬퍼
const createStyleLinks = () => { const createStyleLinks = () => {
const links = [] const links = []
const iconUrl = faviconJson.value[0] const iconUrl = faviconJson.value?.[0]
const appleTouchIconUrl = faviconJson.value[1] const appleTouchIconUrl = faviconJson.value?.[1]
const pngIconUrl = faviconJson.value[2] const pngIconUrl = faviconJson.value?.[2]
const fontPath = gameFontJson.value?.font_path const fontPath = gameFontJson.value?.font_path
if (iconUrl) { if (iconUrl) {
@@ -57,7 +57,7 @@ const createStyleLinks = () => {
// CSS 변수 생성 헬퍼 // CSS 변수 생성 헬퍼
const createStyleCss = () => { const createStyleCss = () => {
const colorVariables = Object.entries(keyColorJson.value) const colorVariables = Object.entries(keyColorJson.value || {})
.filter(([key, value]) => key && value != null) .filter(([key, value]) => key && value != null)
.map(([key, value]) => `--${key}: ${value};`) .map(([key, value]) => `--${key}: ${value};`)
.join('\n ') .join('\n ')

View File

@@ -126,7 +126,6 @@ const handleKeydown = (e: KeyboardEvent) => {
// 500 에러 발생 시 /error 페이지로 리다이렉트 // 500 에러 발생 시 /error 페이지로 리다이렉트
onMounted(() => { onMounted(() => {
const statusCode = currentError.value?.statusCode const statusCode = currentError.value?.statusCode
console.log('🚀 ~ statusCode:', nuxtError)
if (statusCode === 500) { if (statusCode === 500) {
errorTitle.value = tm('Error_500_Inconvenience') errorTitle.value = tm('Error_500_Inconvenience')

View File

@@ -49,7 +49,7 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
const pageVer = urlParams.get('page_ver') || '' const pageVer = urlParams.get('page_ver') || ''
const queryLangCode = urlParams.get('lang_code') || currentLangCode const queryLangCode = urlParams.get('lang_code') || currentLangCode
apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/page/preview` apiUrl = `${stoveApiOrigin}/pub-comm/v1.0/template/page/preview`
queryParams = { queryParams = {
lang_code: queryLangCode, lang_code: queryLangCode,
page_seq: pageSeq, page_seq: pageSeq,
@@ -72,7 +72,7 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
} catch (error) { } catch (error) {
pageDataStore.clearPageData() pageDataStore.clearPageData()
console.error(error) console.error(error)
return showError( return abortNavigation(
createError({ createError({
statusCode: error.statusCode, statusCode: error.statusCode,
statusMessage: error.message, statusMessage: error.message,
@@ -95,14 +95,12 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
pageDataResponse?.code === 91001 || pageDataResponse?.code === 91001 ||
pageDataResponse?.code === 91003 pageDataResponse?.code === 91003
) { ) {
return showError( return abortNavigation(
createError({ createError({
statusCode: 404, statusCode: 404,
statusMessage: pageDataResponse?.message,
fatal: false, // 즉시 에러 페이지로 fatal: false, // 즉시 에러 페이지로
data: { statusMessage: pageDataResponse?.message,
reason: pageDataResponse?.message, data: { reason: 'post-not-found' },
},
}) })
) )
} }
@@ -110,14 +108,16 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
if (pageDataResponse?.code === 91002) { if (pageDataResponse?.code === 91002) {
// 이미 /home 경로에 있으면 무한 리다이렉트 방지 // 이미 /home 경로에 있으면 무한 리다이렉트 방지
if (pathWithoutLocale === '/home') { if (pathWithoutLocale === '/home') {
return createError({ return abortNavigation(
statusCode: 404, createError({
statusMessage: pageDataResponse?.message, statusCode: 404,
fatal: false, // 즉시 에러 페이지로 statusMessage: pageDataResponse?.message,
data: { fatal: false, // 즉시 에러 페이지로
reason: pageDataResponse?.message, data: {
}, reason: 'invalid-lang-code',
}) },
})
)
} }
return navigateTo(`/${currentLangCode}/home`) return navigateTo(`/${currentLangCode}/home`)
} }

View File

@@ -3,18 +3,22 @@ import type { GameDataValue } from '#layers/types/api/gameData'
export default defineNuxtPlugin({ export default defineNuxtPlugin({
name: 'hydrate-game-data', name: 'hydrate-game-data',
dependsOn: ['pinia'], dependsOn: ['pinia'],
setup(_nuxtApp) { async setup(_nuxtApp) {
if (!import.meta.server) return if (!import.meta.server) return
const event = useRequestEvent() const event = useRequestEvent()
const gameData = (event?.context as { gameData?: GameDataValue })?.gameData const eventContext = event?.context as {
const currentLangCode = (event?.context as { currentLangCode?: string }) gameData?: GameDataValue
?.currentLangCode currentLangCode?: string
}
const gameData = eventContext?.gameData
const resolvedCurrentLangCode = eventContext?.currentLangCode || null
if (!gameData) return if (!gameData) return
const gameDataStore = useGameDataStore() const gameDataStore = useGameDataStore()
gameDataStore.setCurrentLangCode(currentLangCode)
gameDataStore.setGameData(gameData) gameDataStore.setGameData(gameData)
gameDataStore.setCurrentLangCode(resolvedCurrentLangCode)
}, },
}) })

View File

@@ -115,7 +115,7 @@ function fnLocaleMiddleware(
function shouldSkipPath(path: string): boolean { function shouldSkipPath(path: string): boolean {
return ( return (
path.startsWith('/_nuxt/') || path.startsWith('/_nuxt/') ||
path.startsWith('/__nuxt') || (path.startsWith('/__nuxt') && !path.startsWith('/__nuxt_error')) ||
path.startsWith('/api/') || path.startsWith('/api/') ||
path.startsWith('/_i18n/') || path.startsWith('/_i18n/') ||
path.includes('/assets/') || path.includes('/assets/') ||
@@ -128,15 +128,14 @@ function shouldSkipPath(path: string): boolean {
export default defineEventHandler(async event => { export default defineEventHandler(async event => {
const runtimeConfig = useRuntimeConfig() const runtimeConfig = useRuntimeConfig()
// HMR 요청 필터링 (개발 모드에서 중복 실행 방지) // 1-1. 정적 파일 패스
if (shouldSkipPath(event.path)) { if (isStaticFile(event.path)) return
return
} // 1-2. 특정 경로 패스 (API, 리소스)
if (shouldSkipPath(event.path)) return
// 이미 응답이 종료되었는지 확인 (리다이렉트 등으로 인한 중복 실행 방지) // 이미 응답이 종료되었는지 확인 (리다이렉트 등으로 인한 중복 실행 방지)
if (event.node.res.headersSent || event.node.res.writableEnded) { if (event.node.res.headersSent || event.node.res.writableEnded) return
return
}
const stoveApiServerBaseUrl = runtimeConfig.public.stoveApiUrlServer const stoveApiServerBaseUrl = runtimeConfig.public.stoveApiUrlServer
@@ -179,15 +178,12 @@ export default defineEventHandler(async event => {
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
const fullPath = event.path const fullPath = event.path
// 1-1. 정적 파일 패스 // error 패스
if (isStaticFile(event.path)) return if (fullPath.startsWith('/__nuxt_error')) return
// 1-2. /inspection 패스 // inspection 패스
if (fullPath.includes('/inspection')) return if (fullPath.includes('/inspection')) return
// 1-3. 특정 경로 패스 (API, 리소스)
if (shouldSkipPath(fullPath)) return
// 캐시 키 생성 (게임 ID 포함하여 충돌 방지) // 캐시 키 생성 (게임 ID 포함하여 충돌 방지)
const gameId = gameDataValue?.game_id || 'default' const gameId = gameDataValue?.game_id || 'default'
const cacheKey = `inspection:${gameId}` const cacheKey = `inspection:${gameId}`

View File

@@ -147,7 +147,7 @@ const setCookieForDay = (name: string, value: string, exp?: number) => {
// 정적 파일인지 확인하는 함수 // 정적 파일인지 확인하는 함수
const isStaticFile = (path: string): boolean => { const isStaticFile = (path: string): boolean => {
return /\.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|scss)$/i.test( return /\.(js|css|png|jpg|jpeg|gif|ico|svg|webp|woff|woff2|ttf|eot|scss)$/i.test(
path path
) )
} }

View File

@@ -28,7 +28,7 @@
"@amplitude/analytics-node": "^1.5.9", "@amplitude/analytics-node": "^1.5.9",
"@nuxtjs/device": "^3.2.4", "@nuxtjs/device": "^3.2.4",
"@nuxtjs/i18n": "^9.0.0", "@nuxtjs/i18n": "^9.0.0",
"@pinia/nuxt": "^0.6.1", "@pinia/nuxt": "^0.11.3",
"@seed-next/date": "^0.0.0", "@seed-next/date": "^0.0.0",
"@splidejs/splide": "^4.1.4", "@splidejs/splide": "^4.1.4",
"@splidejs/vue-splide": "^0.6.12", "@splidejs/vue-splide": "^0.6.12",
@@ -39,7 +39,7 @@
"motion-v": "^1.8.1", "motion-v": "^1.8.1",
"nuxt": "^4.0.3", "nuxt": "^4.0.3",
"nuxt-gtag": "^4.0.0", "nuxt-gtag": "^4.0.0",
"pinia": "^2.3.1", "pinia": "^3.0.3",
"vue": "^3.5.0", "vue": "^3.5.0",
"vue-dompurify-html": "^5.3.0" "vue-dompurify-html": "^5.3.0"
}, },

226
pnpm-lock.yaml generated
View File

@@ -21,8 +21,8 @@ importers:
specifier: ^9.0.0 specifier: ^9.0.0
version: 9.5.6(@vue/compiler-dom@3.5.21)(eslint@9.35.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.50.0)(vue@3.5.21(typescript@5.9.2)) version: 9.5.6(@vue/compiler-dom@3.5.21)(eslint@9.35.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.50.0)(vue@3.5.21(typescript@5.9.2))
'@pinia/nuxt': '@pinia/nuxt':
specifier: ^0.6.1 specifier: ^0.11.3
version: 0.6.1(magicast@0.3.5)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) version: 0.11.3(magicast@0.3.5)(pinia@3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
'@seed-next/date': '@seed-next/date':
specifier: ^0.0.0 specifier: ^0.0.0
version: 0.0.0 version: 0.0.0
@@ -54,8 +54,8 @@ importers:
specifier: ^4.0.0 specifier: ^4.0.0
version: 4.0.0(magicast@0.3.5) version: 4.0.0(magicast@0.3.5)
pinia: pinia:
specifier: ^2.3.1 specifier: 3.0.3
version: 2.3.1(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) version: 3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
vue: vue:
specifier: ^3.5.0 specifier: ^3.5.0
version: 3.5.21(typescript@5.9.2) version: 3.5.21(typescript@5.9.2)
@@ -743,6 +743,10 @@ packages:
resolution: {integrity: sha512-2MGfOXtbcxdkbUNZDjyEv4xmokicZhTrQBMrmNJQztrePfpKOVBe8AiGf/BfbHelXMKio5PgktiRoiEIyIsX4g==} resolution: {integrity: sha512-2MGfOXtbcxdkbUNZDjyEv4xmokicZhTrQBMrmNJQztrePfpKOVBe8AiGf/BfbHelXMKio5PgktiRoiEIyIsX4g==}
engines: {node: '>=18.12.0'} engines: {node: '>=18.12.0'}
'@nuxt/kit@4.4.2':
resolution: {integrity: sha512-5+IPRNX2CjkBhuWUwz0hBuLqiaJPRoKzQ+SvcdrQDbAyE+VDeFt74VpSFr5/R0ujrK4b+XnSHUJWdS72w6hsog==}
engines: {node: '>=18.12.0'}
'@nuxt/schema@4.1.1': '@nuxt/schema@4.1.1':
resolution: {integrity: sha512-s4ELQEw6er4kop4e9HkTZ2ByVEvOGic9YJmesr2QI3O+q01CLSZE6aepbRLsq1Hz6bbfq/UrFw8MLuHs7l03aA==} resolution: {integrity: sha512-s4ELQEw6er4kop4e9HkTZ2ByVEvOGic9YJmesr2QI3O+q01CLSZE6aepbRLsq1Hz6bbfq/UrFw8MLuHs7l03aA==}
engines: {node: ^14.18.0 || >=16.10.0} engines: {node: ^14.18.0 || >=16.10.0}
@@ -1219,8 +1223,10 @@ packages:
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
'@pinia/nuxt@0.6.1': '@pinia/nuxt@0.11.3':
resolution: {integrity: sha512-eqPaOmPbKQANNVOvMMnJfdHij5alzirYzTeZ5eGcFIet8n/gF+vWOWVJkf0BZXIyaTq8hT79IS1HlZXTIhn+PQ==} resolution: {integrity: sha512-7WVNHpWx4qAEzOlnyrRC88kYrwnlR/PrThWT0XI1dSNyUAXu/KBv9oR37uCgYkZroqP5jn8DfzbkNF3BtKvE9w==}
peerDependencies:
pinia: ^3.0.4
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -1728,6 +1734,9 @@ packages:
'@vue/devtools-api@6.6.4': '@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
'@vue/devtools-api@7.7.9':
resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==}
'@vue/devtools-core@7.7.7': '@vue/devtools-core@7.7.7':
resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==} resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==}
peerDependencies: peerDependencies:
@@ -1736,9 +1745,15 @@ packages:
'@vue/devtools-kit@7.7.7': '@vue/devtools-kit@7.7.7':
resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==}
'@vue/devtools-kit@7.7.9':
resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==}
'@vue/devtools-shared@7.7.7': '@vue/devtools-shared@7.7.7':
resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==}
'@vue/devtools-shared@7.7.9':
resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==}
'@vue/language-core@3.0.6': '@vue/language-core@3.0.6':
resolution: {integrity: sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==} resolution: {integrity: sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==}
peerDependencies: peerDependencies:
@@ -1824,6 +1839,11 @@ packages:
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
acorn@8.16.0:
resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
agent-base@7.1.4: agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
@@ -1978,6 +1998,14 @@ packages:
magicast: magicast:
optional: true optional: true
c12@3.3.3:
resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==}
peerDependencies:
magicast: '*'
peerDependenciesMeta:
magicast:
optional: true
cac@6.7.14: cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -2023,6 +2051,10 @@ packages:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'} engines: {node: '>= 14.16.0'}
chokidar@5.0.0:
resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
engines: {node: '>= 20.19.0'}
chownr@3.0.0: chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'} engines: {node: '>=18'}
@@ -2364,6 +2396,10 @@ packages:
resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
dotenv@17.3.1:
resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==}
engines: {node: '>=12'}
dunder-proto@1.0.1: dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -2637,6 +2673,9 @@ packages:
exsolve@1.0.7: exsolve@1.0.7:
resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
fast-deep-equal@3.1.3: fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -3054,6 +3093,10 @@ packages:
resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
hasBin: true hasBin: true
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
js-tokens@4.0.0: js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -3216,6 +3259,9 @@ packages:
magic-string@0.30.18: magic-string@0.30.18:
resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magicast@0.3.5: magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
@@ -3308,6 +3354,9 @@ packages:
mlly@1.8.0: mlly@1.8.0:
resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
mlly@1.8.2:
resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==}
mocked-exports@0.1.1: mocked-exports@0.1.1:
resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==}
@@ -3609,8 +3658,8 @@ packages:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
pinia@2.3.1: pinia@3.0.3:
resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} resolution: {integrity: sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==}
peerDependencies: peerDependencies:
typescript: '>=4.4.4' typescript: '>=4.4.4'
vue: ^2.7.0 || ^3.5.11 vue: ^2.7.0 || ^3.5.11
@@ -3903,6 +3952,9 @@ packages:
rc9@2.1.2: rc9@2.1.2:
resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
rc9@3.0.0:
resolution: {integrity: sha512-MGOue0VqscKWQ104udASX/3GYDcKyPI4j4F8gu/jHHzglpmy9a/anZK3PNe8ug6aZFl+9GxLtdhe3kVZuMaQbA==}
read-cache@1.0.0: read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@@ -3924,6 +3976,10 @@ packages:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'} engines: {node: '>= 14.18.0'}
readdirp@5.0.0:
resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
engines: {node: '>= 20.19.0'}
redis-errors@1.2.0: redis-errors@1.2.0:
resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
engines: {node: '>=4'} engines: {node: '>=4'}
@@ -4041,6 +4097,11 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
semver@7.7.4:
resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
engines: {node: '>=10'}
hasBin: true
send@1.2.0: send@1.2.0:
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
@@ -4337,6 +4398,9 @@ packages:
ufo@1.6.1: ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
ufo@1.6.3:
resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==}
ultrahtml@1.6.0: ultrahtml@1.6.0:
resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==}
@@ -4346,6 +4410,9 @@ packages:
unctx@2.4.1: unctx@2.4.1:
resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==}
unctx@2.5.0:
resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==}
undici-types@7.10.0: undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
@@ -4403,6 +4470,10 @@ packages:
resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
engines: {node: '>=18.12.0'} engines: {node: '>=18.12.0'}
unplugin@2.3.11:
resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==}
engines: {node: '>=18.12.0'}
unrs-resolver@1.11.1: unrs-resolver@1.11.1:
resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
@@ -4609,17 +4680,6 @@ packages:
vue-bundle-renderer@2.1.2: vue-bundle-renderer@2.1.2:
resolution: {integrity: sha512-M4WRBO/O/7G9phGaGH9AOwOnYtY9ZpPoDVpBpRzR2jO5rFL9mgIlQIgums2ljCTC2HL1jDXFQc//CzWcAQHgAw==} resolution: {integrity: sha512-M4WRBO/O/7G9phGaGH9AOwOnYtY9ZpPoDVpBpRzR2jO5rFL9mgIlQIgums2ljCTC2HL1jDXFQc//CzWcAQHgAw==}
vue-demi@0.14.10:
resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
engines: {node: '>=12'}
hasBin: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
vue-devtools-stub@0.1.0: vue-devtools-stub@0.1.0:
resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==}
@@ -5587,6 +5647,31 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- magicast - magicast
'@nuxt/kit@4.4.2(magicast@0.3.5)':
dependencies:
c12: 3.3.3(magicast@0.3.5)
consola: 3.4.2
defu: 6.1.4
destr: 2.0.5
errx: 0.1.0
exsolve: 1.0.8
ignore: 7.0.5
jiti: 2.6.1
klona: 2.0.6
mlly: 1.8.2
ohash: 2.0.11
pathe: 2.0.3
pkg-types: 2.3.0
rc9: 3.0.0
scule: 1.3.0
semver: 7.7.4
tinyglobby: 0.2.15
ufo: 1.6.3
unctx: 2.5.0
untyped: 2.0.0
transitivePeerDependencies:
- magicast
'@nuxt/schema@4.1.1': '@nuxt/schema@4.1.1':
dependencies: dependencies:
'@vue/shared': 3.5.21 '@vue/shared': 3.5.21
@@ -5993,15 +6078,12 @@ snapshots:
'@parcel/watcher-win32-ia32': 2.5.1 '@parcel/watcher-win32-ia32': 2.5.1
'@parcel/watcher-win32-x64': 2.5.1 '@parcel/watcher-win32-x64': 2.5.1
'@pinia/nuxt@0.6.1(magicast@0.3.5)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))': '@pinia/nuxt@0.11.3(magicast@0.3.5)(pinia@3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
dependencies: dependencies:
'@nuxt/kit': 3.19.1(magicast@0.3.5) '@nuxt/kit': 4.4.2(magicast@0.3.5)
pinia: 2.3.1(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) pinia: 3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api'
- magicast - magicast
- typescript
- vue
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
optional: true optional: true
@@ -6508,6 +6590,10 @@ snapshots:
'@vue/devtools-api@6.6.4': {} '@vue/devtools-api@6.6.4': {}
'@vue/devtools-api@7.7.9':
dependencies:
'@vue/devtools-kit': 7.7.9
'@vue/devtools-core@7.7.7(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': '@vue/devtools-core@7.7.7(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))':
dependencies: dependencies:
'@vue/devtools-kit': 7.7.7 '@vue/devtools-kit': 7.7.7
@@ -6530,10 +6616,24 @@ snapshots:
speakingurl: 14.0.1 speakingurl: 14.0.1
superjson: 2.2.2 superjson: 2.2.2
'@vue/devtools-kit@7.7.9':
dependencies:
'@vue/devtools-shared': 7.7.9
birpc: 2.5.0
hookable: 5.5.3
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
superjson: 2.2.2
'@vue/devtools-shared@7.7.7': '@vue/devtools-shared@7.7.7':
dependencies: dependencies:
rfdc: 1.4.1 rfdc: 1.4.1
'@vue/devtools-shared@7.7.9':
dependencies:
rfdc: 1.4.1
'@vue/language-core@3.0.6(typescript@5.9.2)': '@vue/language-core@3.0.6(typescript@5.9.2)':
dependencies: dependencies:
'@volar/language-core': 2.4.23 '@volar/language-core': 2.4.23
@@ -6634,6 +6734,8 @@ snapshots:
acorn@8.15.0: {} acorn@8.15.0: {}
acorn@8.16.0: {}
agent-base@7.1.4: {} agent-base@7.1.4: {}
ajv@6.12.6: ajv@6.12.6:
@@ -6797,6 +6899,23 @@ snapshots:
optionalDependencies: optionalDependencies:
magicast: 0.3.5 magicast: 0.3.5
c12@3.3.3(magicast@0.3.5):
dependencies:
chokidar: 5.0.0
confbox: 0.2.2
defu: 6.1.4
dotenv: 17.3.1
exsolve: 1.0.8
giget: 2.0.0
jiti: 2.6.1
ohash: 2.0.11
pathe: 2.0.3
perfect-debounce: 2.0.0
pkg-types: 2.3.0
rc9: 2.1.2
optionalDependencies:
magicast: 0.3.5
cac@6.7.14: {} cac@6.7.14: {}
cache-content-type@1.0.1: cache-content-type@1.0.1:
@@ -6850,6 +6969,10 @@ snapshots:
dependencies: dependencies:
readdirp: 4.1.2 readdirp: 4.1.2
chokidar@5.0.0:
dependencies:
readdirp: 5.0.0
chownr@3.0.0: {} chownr@3.0.0: {}
ci-info@4.3.0: {} ci-info@4.3.0: {}
@@ -7132,6 +7255,8 @@ snapshots:
dotenv@17.2.2: {} dotenv@17.2.2: {}
dotenv@17.3.1: {}
dunder-proto@1.0.1: dunder-proto@1.0.1:
dependencies: dependencies:
call-bind-apply-helpers: 1.0.2 call-bind-apply-helpers: 1.0.2
@@ -7473,6 +7598,8 @@ snapshots:
exsolve@1.0.7: {} exsolve@1.0.7: {}
exsolve@1.0.8: {}
fast-deep-equal@3.1.3: {} fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {} fast-diff@1.3.0: {}
@@ -7881,6 +8008,8 @@ snapshots:
jiti@2.5.1: {} jiti@2.5.1: {}
jiti@2.6.1: {}
js-tokens@4.0.0: {} js-tokens@4.0.0: {}
js-tokens@9.0.1: {} js-tokens@9.0.1: {}
@@ -8075,6 +8204,10 @@ snapshots:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
magicast@0.3.5: magicast@0.3.5:
dependencies: dependencies:
'@babel/parser': 7.28.4 '@babel/parser': 7.28.4
@@ -8147,6 +8280,13 @@ snapshots:
pkg-types: 1.3.1 pkg-types: 1.3.1
ufo: 1.6.1 ufo: 1.6.1
mlly@1.8.2:
dependencies:
acorn: 8.16.0
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.6.3
mocked-exports@0.1.1: {} mocked-exports@0.1.1: {}
motion-dom@12.24.11: motion-dom@12.24.11:
@@ -8674,15 +8814,12 @@ snapshots:
pify@2.3.0: {} pify@2.3.0: {}
pinia@2.3.1(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)): pinia@3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)):
dependencies: dependencies:
'@vue/devtools-api': 6.6.4 '@vue/devtools-api': 7.7.9
vue: 3.5.21(typescript@5.9.2) vue: 3.5.21(typescript@5.9.2)
vue-demi: 0.14.10(vue@3.5.21(typescript@5.9.2))
optionalDependencies: optionalDependencies:
typescript: 5.9.2 typescript: 5.9.2
transitivePeerDependencies:
- '@vue/composition-api'
pirates@4.0.7: {} pirates@4.0.7: {}
@@ -8945,6 +9082,11 @@ snapshots:
defu: 6.1.4 defu: 6.1.4
destr: 2.0.5 destr: 2.0.5
rc9@3.0.0:
dependencies:
defu: 6.1.4
destr: 2.0.5
read-cache@1.0.0: read-cache@1.0.0:
dependencies: dependencies:
pify: 2.3.0 pify: 2.3.0
@@ -8977,6 +9119,8 @@ snapshots:
readdirp@4.1.2: {} readdirp@4.1.2: {}
readdirp@5.0.0: {}
redis-errors@1.2.0: {} redis-errors@1.2.0: {}
redis-parser@3.0.0: redis-parser@3.0.0:
@@ -9097,6 +9241,8 @@ snapshots:
semver@7.7.2: {} semver@7.7.2: {}
semver@7.7.4: {}
send@1.2.0: send@1.2.0:
dependencies: dependencies:
debug: 4.4.1 debug: 4.4.1
@@ -9419,6 +9565,8 @@ snapshots:
ufo@1.6.1: {} ufo@1.6.1: {}
ufo@1.6.3: {}
ultrahtml@1.6.0: {} ultrahtml@1.6.0: {}
uncrypto@0.1.3: {} uncrypto@0.1.3: {}
@@ -9430,6 +9578,13 @@ snapshots:
magic-string: 0.30.18 magic-string: 0.30.18
unplugin: 2.3.10 unplugin: 2.3.10
unctx@2.5.0:
dependencies:
acorn: 8.15.0
estree-walker: 3.0.3
magic-string: 0.30.21
unplugin: 2.3.11
undici-types@7.10.0: {} undici-types@7.10.0: {}
unenv@2.0.0-rc.20: unenv@2.0.0-rc.20:
@@ -9542,6 +9697,13 @@ snapshots:
picomatch: 4.0.3 picomatch: 4.0.3
webpack-virtual-modules: 0.6.2 webpack-virtual-modules: 0.6.2
unplugin@2.3.11:
dependencies:
'@jridgewell/remapping': 2.3.5
acorn: 8.15.0
picomatch: 4.0.3
webpack-virtual-modules: 0.6.2
unrs-resolver@1.11.1: unrs-resolver@1.11.1:
dependencies: dependencies:
napi-postinstall: 0.3.3 napi-postinstall: 0.3.3
@@ -9716,10 +9878,6 @@ snapshots:
dependencies: dependencies:
ufo: 1.6.1 ufo: 1.6.1
vue-demi@0.14.10(vue@3.5.21(typescript@5.9.2)):
dependencies:
vue: 3.5.21(typescript@5.9.2)
vue-devtools-stub@0.1.0: {} vue-devtools-stub@0.1.0: {}
vue-dompurify-html@5.3.0(vue@3.5.21(typescript@5.9.2)): vue-dompurify-html@5.3.0(vue@3.5.21(typescript@5.9.2)):