diff --git a/CHANGELOG.md b/CHANGELOG.md
index df937563e..7137878dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,24 @@
+## [3.4.30](https://github.com/vuejs/core/compare/v3.4.29...v3.4.30) (2024-06-22)
+
+
+### Bug Fixes
+
+* **compiler-core:** should not remove slot node with `v-else` ([#11150](https://github.com/vuejs/core/issues/11150)) ([e102670](https://github.com/vuejs/core/commit/e102670bde00417c3a5b0262c855b297c0e4169e))
+* **hydration:** fix css vars hydration mismatch false positive on attr-fallthrough ([#11190](https://github.com/vuejs/core/issues/11190)) ([7ad67ce](https://github.com/vuejs/core/commit/7ad67ced26e5f53a47cb42f4834496e4958cb53b)), closes [#11188](https://github.com/vuejs/core/issues/11188)
+* **hydration:** skip prop mismatch check for directives that mutate DOM in created ([3169c91](https://github.com/vuejs/core/commit/3169c914939d02a013b2938aff30dac8525923f8)), closes [#11189](https://github.com/vuejs/core/issues/11189)
+* **reactivity:** fix side effect computed dirty level ([#11183](https://github.com/vuejs/core/issues/11183)) ([3bd79e3](https://github.com/vuejs/core/commit/3bd79e3e5ed960fc42cbf77bc61a97d2c03557c0)), closes [#11181](https://github.com/vuejs/core/issues/11181) [#11169](https://github.com/vuejs/core/issues/11169)
+* **runtime-core:** ensure unmount dynamic components in optimized mode ([#11171](https://github.com/vuejs/core/issues/11171)) ([220fe24](https://github.com/vuejs/core/commit/220fe247484209e62c7f4991902c5335e29c5007)), closes [#11168](https://github.com/vuejs/core/issues/11168)
+* **runtime-core:** update devtool __vnode on patch, avoid memory leak during dev ([a959781](https://github.com/vuejs/core/commit/a959781dd6f609dcb6f16dd7fa47d3b16895e5ca)), closes [#11192](https://github.com/vuejs/core/issues/11192)
+* **runtime-dom:** ensure only symbols are explicitly stringified during attribute patching ([#11182](https://github.com/vuejs/core/issues/11182)) ([a2e35d6](https://github.com/vuejs/core/commit/a2e35d682db15a592f4270bb0cde70a0e7bdc4a6)), closes [#11177](https://github.com/vuejs/core/issues/11177)
+* **runtime-dom:** prevent setting state as attribute for custom elements ([#11165](https://github.com/vuejs/core/issues/11165)) ([8ae4c29](https://github.com/vuejs/core/commit/8ae4c293adcec28f18114cb6016230a86787e6a9)), closes [#11163](https://github.com/vuejs/core/issues/11163)
+
+
+### Performance Improvements
+
+* **reactivity:** cache tracking value ([#11145](https://github.com/vuejs/core/issues/11145)) ([7936dae](https://github.com/vuejs/core/commit/7936daebceab2ae9461c3b8f256e51020fb7d3ed))
+
+
+
## [3.4.29](https://github.com/vuejs/core/compare/v3.4.28...v3.4.29) (2024-06-14)
diff --git a/package.json b/package.json
index 0385ab26d..3783aa997 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"version": "3.0.0-vapor",
- "packageManager": "pnpm@9.2.0",
+ "packageManager": "pnpm@9.3.0",
"type": "module",
"scripts": {
"dev": "node scripts/dev.js vue vue-vapor",
@@ -67,25 +67,25 @@
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-replace": "5.0.4",
- "@rollup/plugin-terser": "^0.4.4",
+ "@swc/core": "^1.6.1",
"@types/hash-sum": "^1.0.2",
"@types/minimist": "^1.2.5",
"@types/node": "^20.14.2",
"@types/semver": "^7.5.8",
- "@vitest/coverage-istanbul": "^1.5.2",
- "@vitest/ui": "^1.5.2",
+ "@vitest/coverage-istanbul": "^1.6.0",
+ "@vitest/ui": "^1.6.0",
"@vue/consolidate": "1.0.0",
"conventional-changelog-cli": "^4.1.0",
"enquirer": "^2.4.1",
"esbuild": "^0.21.5",
"esbuild-plugin-polyfill-node": "^0.3.0",
- "eslint": "^9.4.0",
+ "eslint": "^9.5.0",
"eslint-plugin-import-x": "^0.5.1",
"eslint-plugin-vitest": "^0.5.4",
"estree-walker": "^2.0.2",
"execa": "^9.2.0",
- "jsdom": "^24.0.0",
- "lint-staged": "^15.2.5",
+ "jsdom": "^24.1.0",
+ "lint-staged": "^15.2.7",
"lodash": "^4.17.21",
"magic-string": "^0.30.10",
"markdown-table": "^3.0.3",
@@ -93,10 +93,10 @@
"minimist": "^1.2.8",
"npm-run-all2": "^6.2.0",
"picocolors": "^1.0.1",
- "prettier": "^3.3.1",
+ "prettier": "^3.3.2",
"pretty-bytes": "^6.1.1",
"pug": "^3.0.3",
- "puppeteer": "~22.7.1",
+ "puppeteer": "~22.11.0",
"rimraf": "^5.0.7",
"rollup": "^4.18.0",
"rollup-plugin-dts": "^6.1.1",
@@ -108,11 +108,11 @@
"terser": "^5.31.1",
"todomvc-app-css": "^2.4.3",
"tslib": "^2.6.3",
- "tsx": "^4.15.1",
+ "tsx": "^4.15.5",
"typescript": "~5.4.5",
- "typescript-eslint": "^7.12.0",
- "vite": "^5.2.13",
- "vitest": "^1.5.2"
+ "typescript-eslint": "^7.13.0",
+ "vite": "^5.3.1",
+ "vitest": "^1.6.0"
},
"pnpm": {
"peerDependencyRules": {
diff --git a/packages/compiler-core/__tests__/transforms/vSlot.spec.ts b/packages/compiler-core/__tests__/transforms/vSlot.spec.ts
index aa7b600cc..3afcf0fc0 100644
--- a/packages/compiler-core/__tests__/transforms/vSlot.spec.ts
+++ b/packages/compiler-core/__tests__/transforms/vSlot.spec.ts
@@ -696,6 +696,7 @@ describe('compiler: transform component slots', () => {
expect((root as any).children[0].codegenNode.patchFlag).toMatch(
PatchFlags.DYNAMIC_SLOTS + '',
)
+ expect((root as any).children[0].children.length).toBe(3)
expect(generate(root).code).toMatchSnapshot()
})
diff --git a/packages/compiler-core/src/compat/transformFilter.ts b/packages/compiler-core/src/compat/transformFilter.ts
index 52b381567..4791e6754 100644
--- a/packages/compiler-core/src/compat/transformFilter.ts
+++ b/packages/compiler-core/src/compat/transformFilter.ts
@@ -25,9 +25,7 @@ export const transformFilter: NodeTransform = (node, context) => {
// filter rewrite is applied before expression transform so only
// simple expressions are possible at this stage
rewriteFilter(node.content, context)
- }
-
- if (node.type === NodeTypes.ELEMENT) {
+ } else if (node.type === NodeTypes.ELEMENT) {
node.props.forEach((prop: AttributeNode | DirectiveNode) => {
if (
prop.type === NodeTypes.DIRECTIVE &&
diff --git a/packages/compiler-core/src/transforms/vSlot.ts b/packages/compiler-core/src/transforms/vSlot.ts
index 1b95e6f71..db367f39c 100644
--- a/packages/compiler-core/src/transforms/vSlot.ts
+++ b/packages/compiler-core/src/transforms/vSlot.ts
@@ -226,10 +226,7 @@ export function buildSlots(
break
}
}
- if (prev && isTemplateNode(prev) && findDir(prev, 'if')) {
- // remove node
- children.splice(i, 1)
- i--
+ if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {
__TEST__ && assert(dynamicSlots.length > 0)
// attach this slot to previous conditional
let conditional = dynamicSlots[
diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json
index 7b23b5f00..7f421b1fa 100644
--- a/packages/compiler-sfc/package.json
+++ b/packages/compiler-sfc/package.json
@@ -63,6 +63,6 @@
"postcss-modules": "^6.0.0",
"postcss-selector-parser": "^6.1.0",
"pug": "^3.0.3",
- "sass": "^1.77.4"
+ "sass": "^1.77.5"
}
}
diff --git a/packages/reactivity/__tests__/computed.spec.ts b/packages/reactivity/__tests__/computed.spec.ts
index dc3df3eaa..fbe321dca 100644
--- a/packages/reactivity/__tests__/computed.spec.ts
+++ b/packages/reactivity/__tests__/computed.spec.ts
@@ -853,6 +853,57 @@ describe('reactivity/computed', () => {
expect(calls).toMatchObject(['b eval', 'mounted', 'b eval'])
})
+ it('should chained computeds keep reactivity when computed effect happens', async () => {
+ const v = ref('Hello')
+ const c = computed(() => {
+ v.value += ' World'
+ return v.value
+ })
+ const d = computed(() => c.value)
+ const e = computed(() => d.value)
+ const Comp = {
+ setup: () => {
+ return () => d.value + ' | ' + e.value
+ },
+ }
+ const root = nodeOps.createElement('div')
+
+ render(h(Comp), root)
+ await nextTick()
+ expect(serializeInner(root)).toBe('Hello World | Hello World')
+
+ v.value += ' World'
+ await nextTick()
+ expect(serializeInner(root)).toBe(
+ 'Hello World World World | Hello World World World',
+ )
+ })
+
+ it('should keep dirty level when side effect computed value changed', () => {
+ const v = ref(0)
+ const c = computed(() => {
+ v.value += 1
+ return v.value
+ })
+ const d = computed(() => {
+ return { d: c.value }
+ })
+
+ const Comp = {
+ setup: () => {
+ return () => {
+ return [d.value.d, d.value.d]
+ }
+ },
+ }
+
+ const root = nodeOps.createElement('div')
+ render(h(Comp), root)
+
+ expect(d.value.d).toBe(1)
+ expect(serializeInner(root)).toBe('11')
+ })
+
it('debug: onTrigger (ref)', () => {
let events: DebuggerEvent[] = []
const onTrigger = vi.fn((e: DebuggerEvent) => {
diff --git a/packages/runtime-core/__tests__/apiInject.spec.ts b/packages/runtime-core/__tests__/apiInject.spec.ts
index 485e688b1..e5c9267e5 100644
--- a/packages/runtime-core/__tests__/apiInject.spec.ts
+++ b/packages/runtime-core/__tests__/apiInject.spec.ts
@@ -13,7 +13,6 @@ import {
} from '../src/index'
import { createApp, nodeOps, render, serialize } from '@vue/runtime-test'
-// reference: https://vue-composition-api-rfc.netlify.com/api.html#provide-inject
describe('api: provide/inject', () => {
it('string keys', () => {
const Provider = {
diff --git a/packages/runtime-core/__tests__/apiLifecycle.spec.ts b/packages/runtime-core/__tests__/apiLifecycle.spec.ts
index 5a0da4d67..45ea3ac39 100644
--- a/packages/runtime-core/__tests__/apiLifecycle.spec.ts
+++ b/packages/runtime-core/__tests__/apiLifecycle.spec.ts
@@ -24,8 +24,6 @@ import {
TriggerOpTypes,
} from '@vue/reactivity'
-// reference: https://vue-composition-api-rfc.netlify.com/api.html#lifecycle-hooks
-
describe('api: lifecycle hooks', () => {
it('onBeforeMount', () => {
const root = nodeOps.createElement('div')
diff --git a/packages/runtime-core/__tests__/apiSetupContext.spec.ts b/packages/runtime-core/__tests__/apiSetupContext.spec.ts
index c4a32a067..d3aab9ab2 100644
--- a/packages/runtime-core/__tests__/apiSetupContext.spec.ts
+++ b/packages/runtime-core/__tests__/apiSetupContext.spec.ts
@@ -12,8 +12,6 @@ import {
watchEffect,
} from '@vue/runtime-test'
-// reference: https://vue-composition-api-rfc.netlify.com/api.html#setup
-
describe('api: setup context', () => {
it('should expose return values to template render context', () => {
const Comp = defineComponent({
diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts
index 8edc75239..db06f9c58 100644
--- a/packages/runtime-core/__tests__/apiWatch.spec.ts
+++ b/packages/runtime-core/__tests__/apiWatch.spec.ts
@@ -37,8 +37,6 @@ import {
triggerRef,
} from '@vue/reactivity'
-// reference: https://vue-composition-api-rfc.netlify.com/api.html#watch
-
describe('api: watch', () => {
it('effect', async () => {
const state = reactive({ count: 0 })
diff --git a/packages/runtime-core/__tests__/hydration.spec.ts b/packages/runtime-core/__tests__/hydration.spec.ts
index 241d7b394..0f37fe929 100644
--- a/packages/runtime-core/__tests__/hydration.spec.ts
+++ b/packages/runtime-core/__tests__/hydration.spec.ts
@@ -3,6 +3,7 @@
*/
import {
+ type ObjectDirective,
Suspense,
Teleport,
Transition,
@@ -1674,5 +1675,45 @@ describe('SSR hydration', () => {
app.mount(container)
expect(`Hydration style mismatch`).not.toHaveBeenWarned()
})
+
+ // #11188
+ test('css vars support fallthrough', () => {
+ const container = document.createElement('div')
+ container.innerHTML = `
`
+ const app = createSSRApp({
+ setup() {
+ useCssVars(() => ({
+ foo: 'red',
+ }))
+ return () => h(Child)
+ },
+ })
+ const Child = {
+ setup() {
+ return () => h('div', { style: 'padding: 4px' })
+ },
+ }
+ app.mount(container)
+ expect(`Hydration style mismatch`).not.toHaveBeenWarned()
+ })
+
+ // #11189
+ test('should not warn for directives that mutate DOM in created', () => {
+ const container = document.createElement('div')
+ container.innerHTML = ``
+ const vColor: ObjectDirective = {
+ created(el, binding) {
+ el.classList.add(binding.value)
+ },
+ }
+ const app = createSSRApp({
+ setup() {
+ return () =>
+ withDirectives(h('div', { class: 'test' }), [[vColor, 'red']])
+ },
+ })
+ app.mount(container)
+ expect(`Hydration style mismatch`).not.toHaveBeenWarned()
+ })
})
})
diff --git a/packages/runtime-core/__tests__/rendererOptimizedMode.spec.ts b/packages/runtime-core/__tests__/rendererOptimizedMode.spec.ts
index ef5bdbe01..556ab7520 100644
--- a/packages/runtime-core/__tests__/rendererOptimizedMode.spec.ts
+++ b/packages/runtime-core/__tests__/rendererOptimizedMode.spec.ts
@@ -487,6 +487,32 @@ describe('renderer: optimized mode', () => {
expect(spy).toHaveBeenCalledTimes(1)
})
+ test('should call onUnmounted hook for dynamic components receiving an existing vnode w/ component children', async () => {
+ const spy = vi.fn()
+ const show = ref(1)
+ const Child = {
+ setup() {
+ onUnmounted(spy)
+ return () => 'child'
+ },
+ }
+ const foo = h('div', null, h(Child))
+ const app = createApp({
+ render() {
+ return show.value
+ ? (openBlock(),
+ createBlock('div', null, [(openBlock(), createBlock(foo))]))
+ : createCommentVNode('v-if', true)
+ },
+ })
+
+ app.mount(root)
+ show.value = 0
+ await nextTick()
+
+ expect(spy).toHaveBeenCalledTimes(1)
+ })
+
// #2444
// `KEYED_FRAGMENT` and `UNKEYED_FRAGMENT` always need to diff its children
test('non-stable Fragment always need to diff its children', () => {
diff --git a/packages/runtime-core/__tests__/rendererTemplateRef.spec.ts b/packages/runtime-core/__tests__/rendererTemplateRef.spec.ts
index 9f26bf9bd..799108dca 100644
--- a/packages/runtime-core/__tests__/rendererTemplateRef.spec.ts
+++ b/packages/runtime-core/__tests__/rendererTemplateRef.spec.ts
@@ -10,8 +10,6 @@ import {
shallowRef,
} from '@vue/runtime-test'
-// reference: https://vue-composition-api-rfc.netlify.com/api.html#template-refs
-
describe('api: template refs', () => {
it('string ref mount', () => {
const root = nodeOps.createElement('div')
diff --git a/packages/runtime-core/src/components/Suspense.ts b/packages/runtime-core/src/components/Suspense.ts
index 7c3c75a6f..e9723f236 100644
--- a/packages/runtime-core/src/components/Suspense.ts
+++ b/packages/runtime-core/src/components/Suspense.ts
@@ -123,7 +123,6 @@ export const SuspenseImpl = {
}
},
hydrate: hydrateSuspense,
- create: createSuspenseBoundary,
normalize: normalizeSuspenseChildren,
}
diff --git a/packages/runtime-core/src/components/Teleport.ts b/packages/runtime-core/src/components/Teleport.ts
index 8d174e202..a10ae84d4 100644
--- a/packages/runtime-core/src/components/Teleport.ts
+++ b/packages/runtime-core/src/components/Teleport.ts
@@ -250,7 +250,6 @@ export const TeleportImpl = {
vnode: VNode,
parentComponent: ComponentInternalInstance | null,
parentSuspense: SuspenseBoundary | null,
- optimized: boolean,
{ um: unmount, o: { remove: hostRemove } }: RendererInternals,
doRemove: boolean,
) {
diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts
index 4e8b9cdb9..aae87df84 100644
--- a/packages/runtime-core/src/hydration.ts
+++ b/packages/runtime-core/src/hydration.ts
@@ -17,6 +17,7 @@ import { warn } from './warning'
import {
PatchFlags,
ShapeFlags,
+ def,
includeBooleanAttr,
isBooleanAttr,
isKnownHtmlAttr,
@@ -141,18 +142,8 @@ export function createHydrationFunctions(
vnode.el = node
if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
- if (!('__vnode' in node)) {
- Object.defineProperty(node, '__vnode', {
- value: vnode,
- enumerable: false,
- })
- }
- if (!('__vueParentComponent' in node)) {
- Object.defineProperty(node, '__vueParentComponent', {
- value: parentComponent,
- enumerable: false,
- })
- }
+ def(node, '__vnode', vnode, true)
+ def(node, '__vueParentComponent', parentComponent, true)
}
if (patchFlag === PatchFlags.BAIL) {
@@ -459,6 +450,9 @@ export function createHydrationFunctions(
// check hydration mismatch
if (
(__DEV__ || __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__) &&
+ // #11189 skip if this node has directives that have created hooks
+ // as it could have mutated the DOM in any possible way
+ !(dirs && dirs.some(d => d.dir.created)) &&
propHasMismatch(el, key, props[key], vnode, parentComponent)
) {
logMismatchError()
@@ -766,18 +760,8 @@ function propHasMismatch(
}
}
- // eslint-disable-next-line no-restricted-syntax
- const root = instance?.subTree
- if (
- vnode === root ||
- // eslint-disable-next-line no-restricted-syntax
- (root?.type === Fragment && (root.children as VNode[]).includes(vnode))
- ) {
- // eslint-disable-next-line no-restricted-syntax
- const cssVars = instance?.getCssVars?.()
- for (const key in cssVars) {
- expectedMap.set(`--${key}`, String(cssVars[key]))
- }
+ if (instance) {
+ resolveCssVars(instance, vnode, expectedMap)
}
if (!isMapEqual(actualMap, expectedMap)) {
@@ -854,10 +838,8 @@ function toStyleMap(str: string): Map {
const styleMap: Map = new Map()
for (const item of str.split(';')) {
let [key, value] = item.split(':')
- // eslint-disable-next-line no-restricted-syntax
- key = key?.trim()
- // eslint-disable-next-line no-restricted-syntax
- value = value?.trim()
+ key = key.trim()
+ value = value && value.trim()
if (key && value) {
styleMap.set(key, value)
}
@@ -876,3 +858,26 @@ function isMapEqual(a: Map, b: Map): boolean {
}
return true
}
+
+function resolveCssVars(
+ instance: ComponentInternalInstance,
+ vnode: VNode,
+ expectedMap: Map,
+) {
+ const root = instance.subTree
+ if (
+ instance.getCssVars &&
+ (vnode === root ||
+ (root &&
+ root.type === Fragment &&
+ (root.children as VNode[]).includes(vnode)))
+ ) {
+ const cssVars = instance.getCssVars()
+ for (const key in cssVars) {
+ expectedMap.set(`--${key}`, String(cssVars[key]))
+ }
+ }
+ if (vnode === root && instance.parent) {
+ resolveCssVars(instance.parent, instance.vnode, expectedMap)
+ }
+}
diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts
index 5a78885b1..b96996895 100644
--- a/packages/runtime-core/src/renderer.ts
+++ b/packages/runtime-core/src/renderer.ts
@@ -32,6 +32,7 @@ import {
NOOP,
PatchFlags,
ShapeFlags,
+ def,
getGlobalThis,
invokeArrayFns,
isArray,
@@ -715,15 +716,10 @@ function baseCreateRenderer(
}
if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
- Object.defineProperty(el, '__vnode', {
- value: vnode,
- enumerable: false,
- })
- Object.defineProperty(el, '__vueParentComponent', {
- value: parentComponent,
- enumerable: false,
- })
+ def(el, '__vnode', vnode, true)
+ def(el, '__vueParentComponent', parentComponent, true)
}
+
if (dirs) {
invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount')
}
@@ -824,6 +820,9 @@ function baseCreateRenderer(
optimized: boolean,
) => {
const el = (n2.el = n1.el!)
+ if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
+ el.__vnode = n2
+ }
let { patchFlag, dynamicChildren, dirs } = n2
// #1426 take the old vnode's patch flag into account since user may clone a
// compiler-generated vnode, which de-opts to FULL_PROPS
@@ -2126,6 +2125,11 @@ function baseCreateRenderer(
dirs,
memoIndex,
} = vnode
+
+ if (patchFlag === PatchFlags.BAIL) {
+ optimized = false
+ }
+
// unset ref
if (ref != null) {
setRef(ref, null, parentSuspense, vnode, true)
@@ -2169,7 +2173,6 @@ function baseCreateRenderer(
vnode,
parentComponent,
parentSuspense,
- optimized,
internals,
doRemove,
)
diff --git a/packages/runtime-dom/__tests__/customElement.spec.ts b/packages/runtime-dom/__tests__/customElement.spec.ts
index d8aad9c0a..f503b2c02 100644
--- a/packages/runtime-dom/__tests__/customElement.spec.ts
+++ b/packages/runtime-dom/__tests__/customElement.spec.ts
@@ -9,6 +9,7 @@ import {
inject,
nextTick,
ref,
+ render,
renderSlot,
} from '../src'
@@ -141,6 +142,7 @@ describe('defineCustomElement', () => {
foo: [String, null],
bar: Object,
bazQux: null,
+ value: null,
},
render() {
return [
@@ -151,6 +153,12 @@ describe('defineCustomElement', () => {
})
customElements.define('my-el-props', E)
+ test('renders custom element w/ correct object prop value', () => {
+ render(h('my-el-props', { value: { x: 1 } }), container)
+ const el = container.children[0]
+ expect((el as any).value).toEqual({ x: 1 })
+ })
+
test('props via attribute', async () => {
// bazQux should map to `baz-qux` attribute
container.innerHTML = ``
diff --git a/packages/runtime-dom/__tests__/patchAttrs.spec.ts b/packages/runtime-dom/__tests__/patchAttrs.spec.ts
index 8436bbb4f..393b685b0 100644
--- a/packages/runtime-dom/__tests__/patchAttrs.spec.ts
+++ b/packages/runtime-dom/__tests__/patchAttrs.spec.ts
@@ -69,4 +69,23 @@ describe('runtime-dom: attrs patching', () => {
patchProp(el, 'value', null, symbol)
expect(el.value).toBe(symbol.toString())
})
+
+ // #11177
+ test('should allow setting value to object, leaving stringification to the element/browser', () => {
+ // normal behavior
+ const el = document.createElement('div')
+ const obj = { toString: () => 'foo' }
+ patchProp(el, 'data-test', null, obj)
+ expect(el.dataset.test).toBe('foo')
+
+ const el2 = document.createElement('div')
+ let testvalue: null | typeof obj = null
+ // simulating a web component that implements its own setAttribute handler
+ el2.setAttribute = (name, value) => {
+ testvalue = value
+ }
+ patchProp(el2, 'data-test', null, obj)
+ expect(el2.dataset.test).toBe(undefined)
+ expect(testvalue).toBe(obj)
+ })
})
diff --git a/packages/runtime-dom/src/modules/attrs.ts b/packages/runtime-dom/src/modules/attrs.ts
index 3cc3468a7..6e411f5b2 100644
--- a/packages/runtime-dom/src/modules/attrs.ts
+++ b/packages/runtime-dom/src/modules/attrs.ts
@@ -2,6 +2,7 @@ import {
NOOP,
includeBooleanAttr,
isSpecialBooleanAttr,
+ isSymbol,
makeMap,
} from '@vue/shared'
import {
@@ -37,7 +38,10 @@ export function patchAttr(
el.removeAttribute(key)
} else {
// attribute value is a string https://html.spec.whatwg.org/multipage/dom.html#attributes
- el.setAttribute(key, isBoolean ? '' : String(value))
+ el.setAttribute(
+ key,
+ isBoolean ? '' : isSymbol(value) ? String(value) : value,
+ )
}
}
}
diff --git a/packages/runtime-dom/src/patchProp.ts b/packages/runtime-dom/src/patchProp.ts
index 3af9be6b6..eff4dd75b 100644
--- a/packages/runtime-dom/src/patchProp.ts
+++ b/packages/runtime-dom/src/patchProp.ts
@@ -53,7 +53,11 @@ export const patchProp: DOMRendererOptions['patchProp'] = (
)
// #6007 also set form state as attributes so they work with
// or libs / extensions that expect attributes
- if (key === 'value' || key === 'checked' || key === 'selected') {
+ // #11163 custom elements may use value as an prop and set it as object
+ if (
+ !el.tagName.includes('-') &&
+ (key === 'value' || key === 'checked' || key === 'selected')
+ ) {
patchAttr(el, key, nextValue, isSVG, parentComponent, key !== 'value')
}
} else {
diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json
index bad9962d0..98f2a0012 100644
--- a/packages/sfc-playground/package.json
+++ b/packages/sfc-playground/package.json
@@ -10,7 +10,7 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.5",
- "vite": "^5.2.13"
+ "vite": "^5.3.1"
},
"dependencies": {
"@vue/repl": "^4.2.1",
diff --git a/packages/sfc-playground/src/download/template/package.json b/packages/sfc-playground/src/download/template/package.json
index 128ed6f1e..540a5087c 100644
--- a/packages/sfc-playground/src/download/template/package.json
+++ b/packages/sfc-playground/src/download/template/package.json
@@ -12,6 +12,6 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.5",
- "vite": "^5.2.13"
+ "vite": "^5.3.1"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c53c02b3f..7dd88e9f7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 7.24.7
'@codspeed/vitest-plugin':
specifier: ^3.1.0
- version: 3.1.0(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1))
+ version: 3.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1))
'@rollup/plugin-alias':
specifier: ^5.1.0
version: 5.1.0(rollup@4.18.0)
@@ -32,9 +32,9 @@ importers:
'@rollup/plugin-replace':
specifier: 5.0.4
version: 5.0.4(rollup@4.18.0)
- '@rollup/plugin-terser':
- specifier: ^0.4.4
- version: 0.4.4(rollup@4.18.0)
+ '@swc/core':
+ specifier: ^1.6.1
+ version: 1.6.5
'@types/hash-sum':
specifier: ^1.0.2
version: 1.0.2
@@ -48,11 +48,11 @@ importers:
specifier: ^7.5.8
version: 7.5.8
'@vitest/coverage-istanbul':
- specifier: ^1.5.2
- version: 1.5.2(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1))
+ specifier: ^1.6.0
+ version: 1.6.0(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1))
'@vitest/ui':
- specifier: ^1.5.2
- version: 1.6.0(vitest@1.5.2)
+ specifier: ^1.6.0
+ version: 1.6.0(vitest@1.6.0)
'@vue/consolidate':
specifier: 1.0.0
version: 1.0.0
@@ -69,14 +69,14 @@ importers:
specifier: ^0.3.0
version: 0.3.0(esbuild@0.21.5)
eslint:
- specifier: ^9.4.0
- version: 9.4.0
+ specifier: ^9.5.0
+ version: 9.5.0
eslint-plugin-import-x:
specifier: ^0.5.1
- version: 0.5.1(eslint@9.4.0)(typescript@5.4.5)
+ version: 0.5.1(eslint@9.5.0)(typescript@5.4.5)
eslint-plugin-vitest:
specifier: ^0.5.4
- version: 0.5.4(eslint@9.4.0)(typescript@5.4.5)(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1))
+ version: 0.5.4(eslint@9.5.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1))
estree-walker:
specifier: ^2.0.2
version: 2.0.2
@@ -84,11 +84,11 @@ importers:
specifier: ^9.2.0
version: 9.2.0
jsdom:
- specifier: ^24.0.0
- version: 24.0.0
+ specifier: ^24.1.0
+ version: 24.1.0
lint-staged:
- specifier: ^15.2.5
- version: 15.2.5
+ specifier: ^15.2.7
+ version: 15.2.7
lodash:
specifier: ^4.17.21
version: 4.17.21
@@ -111,8 +111,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1
prettier:
- specifier: ^3.3.1
- version: 3.3.1
+ specifier: ^3.3.2
+ version: 3.3.2
pretty-bytes:
specifier: ^6.1.1
version: 6.1.1
@@ -120,8 +120,8 @@ importers:
specifier: ^3.0.3
version: 3.0.3
puppeteer:
- specifier: ~22.7.1
- version: 22.7.1(typescript@5.4.5)
+ specifier: ~22.11.0
+ version: 22.11.2(typescript@5.4.5)
rimraf:
specifier: ^5.0.7
version: 5.0.7
@@ -156,20 +156,20 @@ importers:
specifier: ^2.6.3
version: 2.6.3
tsx:
- specifier: ^4.15.1
- version: 4.15.1
+ specifier: ^4.15.5
+ version: 4.15.7
typescript:
specifier: ~5.4.5
version: 5.4.5
typescript-eslint:
- specifier: ^7.12.0
- version: 7.12.0(eslint@9.4.0)(typescript@5.4.5)
+ specifier: ^7.13.0
+ version: 7.13.1(eslint@9.5.0)(typescript@5.4.5)
vite:
- specifier: ^5.2.13
- version: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ specifier: ^5.3.1
+ version: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
vitest:
- specifier: ^1.5.2
- version: 1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)
+ specifier: ^1.6.0
+ version: 1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)
packages/compiler-core:
dependencies:
@@ -263,8 +263,8 @@ importers:
specifier: ^3.0.3
version: 3.0.3
sass:
- specifier: ^1.77.4
- version: 1.77.4
+ specifier: ^1.77.5
+ version: 1.77.6
packages/compiler-ssr:
dependencies:
@@ -393,10 +393,10 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: ^5.0.5
- version: 5.0.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vue@packages+vue)
+ version: 5.0.5(vite@5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vue@packages+vue)
vite:
- specifier: ^5.2.13
- version: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ specifier: ^5.3.1
+ version: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
packages/shared: {}
@@ -471,16 +471,16 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: npm:@vue-vapor/vite-plugin-vue@0.0.0-alpha.4
- version: '@vue-vapor/vite-plugin-vue@0.0.0-alpha.4(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vue@packages+vue)'
+ version: '@vue-vapor/vite-plugin-vue@0.0.0-alpha.4(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vue@packages+vue)'
vite:
specifier: ^5.0.12
- version: 5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ version: 5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
vite-hyper-config:
specifier: ^0.2.1
- version: 0.2.1(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))
+ version: 0.2.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))
vite-plugin-inspect:
specifier: ^0.7.42
- version: 0.7.42(rollup@4.18.0)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))
+ version: 0.7.42(rollup@4.18.0)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))
packages:
@@ -881,20 +881,20 @@ packages:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.15.1':
- resolution: {integrity: sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==}
+ '@eslint/config-array@0.16.0':
+ resolution: {integrity: sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.1.0':
resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.4.0':
- resolution: {integrity: sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==}
+ '@eslint/js@9.5.0':
+ resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/object-schema@2.1.3':
- resolution: {integrity: sha512-HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==}
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@humanwhocodes/module-importer@1.0.1':
@@ -1023,15 +1023,6 @@ packages:
rollup:
optional: true
- '@rollup/plugin-terser@0.4.4':
- resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
'@rollup/pluginutils@5.1.0':
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
engines: {node: '>=14.0.0'}
@@ -1131,6 +1122,81 @@ packages:
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
+ '@swc/core-darwin-arm64@1.6.5':
+ resolution: {integrity: sha512-RGQhMdni2v1/ANQ/2K+F+QYdzaucekYBewZcX1ogqJ8G5sbPaBdYdDN1qQ4kHLCIkPtGP6qC7c71qPEqL2RidQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.6.5':
+ resolution: {integrity: sha512-/pSN0/Jtcbbb9+ovS9rKxR3qertpFAM3OEJr/+Dh/8yy7jK5G5EFPIrfsw/7Q5987ERPIJIH6BspK2CBB2tgcg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.6.5':
+ resolution: {integrity: sha512-B0g/dROCE747RRegs/jPHuKJgwXLracDhnqQa80kFdgWEMjlcb7OMCgs5OX86yJGRS4qcYbiMGD0Pp7Kbqn3yw==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.6.5':
+ resolution: {integrity: sha512-W8meapgXTq8AOtSvDG4yKR8ant2WWD++yOjgzAleB5VAC+oC+aa8YJROGxj8HepurU8kurqzcialwoMeq5SZZQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-arm64-musl@1.6.5':
+ resolution: {integrity: sha512-jyCKqoX50Fg8rJUQqh4u5PqnE7nqYKXHjVH2WcYr114/MU21zlsI+YL6aOQU1XP8bJQ2gPQ1rnlnGJdEHiKS/w==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-x64-gnu@1.6.5':
+ resolution: {integrity: sha512-G6HmUn/RRIlXC0YYFfBz2qh6OZkHS/KUPkhoG4X9ADcgWXXjOFh6JrefwsYj8VBAJEnr5iewzjNfj+nztwHaeA==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-linux-x64-musl@1.6.5':
+ resolution: {integrity: sha512-AQpBjBnelQDSbeTJA50AXdS6+CP66LsXIMNTwhPSgUfE7Bx1ggZV11Fsi4Q5SGcs6a8Qw1cuYKN57ZfZC5QOuA==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-win32-arm64-msvc@1.6.5':
+ resolution: {integrity: sha512-MZTWM8kUwS30pVrtbzSGEXtek46aXNb/mT9D6rsS7NvOuv2w+qZhjR1rzf4LNbbn5f8VnR4Nac1WIOYZmfC5ng==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.6.5':
+ resolution: {integrity: sha512-WZdu4gISAr3yOm1fVwKhhk6+MrP7kVX0KMP7+ZQFTN5zXQEiDSDunEJKVgjMVj3vlR+6mnAqa/L0V9Qa8+zKlQ==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.6.5':
+ resolution: {integrity: sha512-ezXgucnMTzlFIxQZw7ls/5r2hseFaRoDL04cuXUOs97E8r+nJSmFsRQm/ygH5jBeXNo59nyZCalrjJAjwfgACA==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.6.5':
+ resolution: {integrity: sha512-tyVvUK/HDOUUsK6/GmWvnqUtD9oDpPUA4f7f7JCOV8hXxtfjMtAZeBKf93yrB1XZet69TDR7EN0hFC6i4MF0Ig==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': '*'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/types@0.1.9':
+ resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==}
+
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
@@ -1164,8 +1230,8 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@7.12.0':
- resolution: {integrity: sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==}
+ '@typescript-eslint/eslint-plugin@7.13.1':
+ resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
@@ -1175,8 +1241,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@7.12.0':
- resolution: {integrity: sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==}
+ '@typescript-eslint/parser@7.13.1':
+ resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -1185,16 +1251,16 @@ packages:
typescript:
optional: true
- '@typescript-eslint/scope-manager@7.12.0':
- resolution: {integrity: sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==}
+ '@typescript-eslint/scope-manager@7.13.1':
+ resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/scope-manager@7.8.0':
resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/type-utils@7.12.0':
- resolution: {integrity: sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==}
+ '@typescript-eslint/type-utils@7.13.1':
+ resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -1203,16 +1269,16 @@ packages:
typescript:
optional: true
- '@typescript-eslint/types@7.12.0':
- resolution: {integrity: sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==}
+ '@typescript-eslint/types@7.13.1':
+ resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/types@7.8.0':
resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/typescript-estree@7.12.0':
- resolution: {integrity: sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==}
+ '@typescript-eslint/typescript-estree@7.13.1':
+ resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
@@ -1229,8 +1295,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/utils@7.12.0':
- resolution: {integrity: sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==}
+ '@typescript-eslint/utils@7.13.1':
+ resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -1241,8 +1307,8 @@ packages:
peerDependencies:
eslint: ^8.56.0
- '@typescript-eslint/visitor-keys@7.12.0':
- resolution: {integrity: sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==}
+ '@typescript-eslint/visitor-keys@7.13.1':
+ resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/visitor-keys@7.8.0':
@@ -1256,31 +1322,28 @@ packages:
vite: ^5.0.0
vue: ^3.2.25
- '@vitest/coverage-istanbul@1.5.2':
- resolution: {integrity: sha512-YGC+QSWOL8cQ2HQaTEFttmG9v3DGLy7lMZIGdqjtTgaW6omW17/uZPxuh6m2t69T0rFLqImduVthm5o/gYYWTQ==}
+ '@vitest/coverage-istanbul@1.6.0':
+ resolution: {integrity: sha512-h/BwpXehkkS0qsNCS00QxiupAqVkNi0WT19BR0dQvlge5oHghoSVLx63fABYFoKxVb7Ue7+k6V2KokmQ1zdMpg==}
peerDependencies:
- vitest: 1.5.2
+ vitest: 1.6.0
- '@vitest/expect@1.5.2':
- resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==}
+ '@vitest/expect@1.6.0':
+ resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
- '@vitest/runner@1.5.2':
- resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==}
+ '@vitest/runner@1.6.0':
+ resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==}
- '@vitest/snapshot@1.5.2':
- resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==}
+ '@vitest/snapshot@1.6.0':
+ resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==}
- '@vitest/spy@1.5.2':
- resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==}
+ '@vitest/spy@1.6.0':
+ resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==}
'@vitest/ui@1.6.0':
resolution: {integrity: sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==}
peerDependencies:
vitest: 1.6.0
- '@vitest/utils@1.5.2':
- resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==}
-
'@vitest/utils@1.6.0':
resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==}
@@ -1558,8 +1621,8 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chromium-bidi@0.5.19:
- resolution: {integrity: sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==}
+ chromium-bidi@0.5.23:
+ resolution: {integrity: sha512-1o/gLU9wDqbN5nL2MtfjykjOuighGXc3/hnWueO1haiEoFgX8h5vbvcA4tgdQfjw1mkZ1OEF4x/+HVeqEX6NoA==}
peerDependencies:
devtools-protocol: '*'
@@ -1769,6 +1832,15 @@ packages:
supports-color:
optional: true
+ debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
@@ -1811,8 +1883,8 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
- devtools-protocol@0.0.1273771:
- resolution: {integrity: sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==}
+ devtools-protocol@0.0.1299070:
+ resolution: {integrity: sha512-+qtL3eX50qsJ7c+qVyagqi7AWMoQCBGNfoyJZMwm/NSXVqLYbuitrWEEIzxfUmTNy7//Xe8yhMmQ+elj3uAqSg==}
diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
@@ -1946,8 +2018,8 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.4.0:
- resolution: {integrity: sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==}
+ eslint@9.5.0:
+ resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
@@ -2470,8 +2542,8 @@ packages:
jsbn@1.1.0:
resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
- jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
+ jsdom@24.1.0:
+ resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==}
engines: {node: '>=18'}
peerDependencies:
canvas: ^2.11.2
@@ -2548,8 +2620,8 @@ packages:
resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- lint-staged@15.2.5:
- resolution: {integrity: sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==}
+ lint-staged@15.2.7:
+ resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==}
engines: {node: '>=18.12.0'}
hasBin: true
@@ -2763,8 +2835,8 @@ packages:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- nwsapi@2.2.7:
- resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
+ nwsapi@2.2.10:
+ resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==}
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
@@ -2948,8 +3020,8 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.3.1:
- resolution: {integrity: sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==}
+ prettier@3.3.2:
+ resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
engines: {node: '>=14'}
hasBin: true
@@ -3034,12 +3106,12 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- puppeteer-core@22.7.1:
- resolution: {integrity: sha512-jD7T7yN7PWGuJmNT0TAEboA26s0VVnvbgCxqgQIF+eNQW2u71ENaV2JwzSJiCHO+e72H4Ue6AgKD9USQ8xAcOQ==}
+ puppeteer-core@22.11.2:
+ resolution: {integrity: sha512-vQo+YDuePyvj+92Z9cdtxi/HalKf+k/R4tE80nGtQqJRNqU81eHaHkbVfnLszdaLlvwFF5tipnnSCzqWlEddtw==}
engines: {node: '>=18'}
- puppeteer@22.7.1:
- resolution: {integrity: sha512-JBCBCwQ9+dyPp5haqeecgv0N0vgWFx44woUeKJaPeJT8CU3RXrd8F/tqJQbuAmcWlbMhYJSlTJkIFrwVAs6BNA==}
+ puppeteer@22.11.2:
+ resolution: {integrity: sha512-8fjdQSgW0sq7471ftca24J7sXK+jXZ7OW7Gx+NEBFNyXrcTiBfukEI46gNq6hiMhbLEDT30NeylK/1ZoPdlKSA==}
engines: {node: '>=18'}
hasBin: true
@@ -3052,9 +3124,6 @@ packages:
queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
- randombytes@2.1.0:
- resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
-
range-parser@1.2.0:
resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
engines: {node: '>= 0.6'}
@@ -3157,6 +3226,9 @@ packages:
rrweb-cssom@0.6.0:
resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
+ rrweb-cssom@0.7.1:
+ resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+
run-applescript@5.0.0:
resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==}
engines: {node: '>=12'}
@@ -3173,8 +3245,8 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- sass@1.77.4:
- resolution: {integrity: sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==}
+ sass@1.77.6:
+ resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -3196,9 +3268,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- serialize-javascript@6.0.2:
- resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
-
serve-handler@6.1.5:
resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==}
@@ -3263,9 +3332,6 @@ packages:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
- smob@1.5.0:
- resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
-
socks-proxy-agent@8.0.3:
resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==}
engines: {node: '>= 14'}
@@ -3448,8 +3514,8 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
- tough-cookie@4.1.3:
- resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
tr46@5.0.0:
@@ -3465,8 +3531,8 @@ packages:
tslib@2.6.3:
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
- tsx@4.15.1:
- resolution: {integrity: sha512-k/6h17jA1KfUR7SpcteOa880zGmF56s8gMIcSqUR5avyNFi9nlCEKpMiHLrzrqyARGr52A/JablmGey1DEWbCA==}
+ tsx@4.15.7:
+ resolution: {integrity: sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -3490,8 +3556,8 @@ packages:
resolution: {integrity: sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==}
engines: {node: '>=16'}
- typescript-eslint@7.12.0:
- resolution: {integrity: sha512-D6HKNbQcnNu3BaN4HkQCR16tgG8Q2AMUWPgvhrJksOXu+d6ys07yC06ONiV2kcsEfWC22voB6C3PvK2MqlBZ7w==}
+ typescript-eslint@7.13.1:
+ resolution: {integrity: sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -3570,8 +3636,8 @@ packages:
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
- vite-node@1.5.2:
- resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==}
+ vite-node@1.6.0:
+ resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -3585,62 +3651,6 @@ packages:
'@nuxt/kit':
optional: true
- vite@5.2.10:
- resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
- vite@5.2.13:
- resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
vite@5.2.9:
resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -3669,15 +3679,43 @@ packages:
terser:
optional: true
- vitest@1.5.2:
- resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==}
+ vite@5.3.1:
+ resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ vitest@1.6.0:
+ resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
- '@vitest/browser': 1.5.2
- '@vitest/ui': 1.5.2
+ '@vitest/browser': 1.6.0
+ '@vitest/ui': 1.6.0
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -3765,8 +3803,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@8.16.0:
- resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
+ ws@8.17.1:
+ resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -3822,8 +3860,8 @@ packages:
resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==}
engines: {node: '>=18'}
- zod@3.22.4:
- resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
+ zod@3.23.8:
+ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
snapshots:
@@ -3900,7 +3938,7 @@ snapshots:
'@babel/helper-module-imports': 7.24.3
'@babel/helper-simple-access': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.24.6
+ '@babel/helper-validator-identifier': 7.24.7
'@babel/helper-simple-access@7.22.5':
dependencies:
@@ -3973,11 +4011,11 @@ snapshots:
transitivePeerDependencies:
- debug
- '@codspeed/vitest-plugin@3.1.0(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1))':
+ '@codspeed/vitest-plugin@3.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@codspeed/core': 3.1.0
- vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
- vitest: 1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
+ vitest: 1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- debug
@@ -4119,16 +4157,16 @@ snapshots:
'@esbuild/win32-x64@0.21.5':
optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@9.4.0)':
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)':
dependencies:
- eslint: 9.4.0
+ eslint: 9.5.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.10.0': {}
- '@eslint/config-array@0.15.1':
+ '@eslint/config-array@0.16.0':
dependencies:
- '@eslint/object-schema': 2.1.3
+ '@eslint/object-schema': 2.1.4
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
@@ -4148,9 +4186,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.4.0': {}
+ '@eslint/js@9.5.0': {}
- '@eslint/object-schema@2.1.3': {}
+ '@eslint/object-schema@2.1.4': {}
'@humanwhocodes/module-importer@1.0.1': {}
@@ -4276,14 +4314,6 @@ snapshots:
optionalDependencies:
rollup: 4.18.0
- '@rollup/plugin-terser@0.4.4(rollup@4.18.0)':
- dependencies:
- serialize-javascript: 6.0.2
- smob: 1.5.0
- terser: 5.31.1
- optionalDependencies:
- rollup: 4.18.0
-
'@rollup/pluginutils@5.1.0(rollup@4.18.0)':
dependencies:
'@types/estree': 1.0.5
@@ -4346,6 +4376,58 @@ snapshots:
'@sindresorhus/merge-streams@4.0.0': {}
+ '@swc/core-darwin-arm64@1.6.5':
+ optional: true
+
+ '@swc/core-darwin-x64@1.6.5':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.6.5':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.6.5':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.6.5':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.6.5':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.6.5':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.6.5':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.6.5':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.6.5':
+ optional: true
+
+ '@swc/core@1.6.5':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.9
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.6.5
+ '@swc/core-darwin-x64': 1.6.5
+ '@swc/core-linux-arm-gnueabihf': 1.6.5
+ '@swc/core-linux-arm64-gnu': 1.6.5
+ '@swc/core-linux-arm64-musl': 1.6.5
+ '@swc/core-linux-x64-gnu': 1.6.5
+ '@swc/core-linux-x64-musl': 1.6.5
+ '@swc/core-win32-arm64-msvc': 1.6.5
+ '@swc/core-win32-ia32-msvc': 1.6.5
+ '@swc/core-win32-x64-msvc': 1.6.5
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/types@0.1.9':
+ dependencies:
+ '@swc/counter': 0.1.3
+
'@tootallnate/quickjs-emscripten@0.23.0': {}
'@types/estree@1.0.5': {}
@@ -4373,15 +4455,15 @@ snapshots:
'@types/node': 20.14.2
optional: true
- '@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
- '@typescript-eslint/scope-manager': 7.12.0
- '@typescript-eslint/type-utils': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
- '@typescript-eslint/utils': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.12.0
- eslint: 9.4.0
+ '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
+ '@typescript-eslint/scope-manager': 7.13.1
+ '@typescript-eslint/type-utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.13.1
+ eslint: 9.5.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@@ -4391,49 +4473,49 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.12.0(eslint@9.4.0)(typescript@5.4.5)':
+ '@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/scope-manager': 7.12.0
- '@typescript-eslint/types': 7.12.0
- '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.12.0
+ '@typescript-eslint/scope-manager': 7.13.1
+ '@typescript-eslint/types': 7.13.1
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.13.1
debug: 4.3.4
- eslint: 9.4.0
+ eslint: 9.5.0
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@7.12.0':
+ '@typescript-eslint/scope-manager@7.13.1':
dependencies:
- '@typescript-eslint/types': 7.12.0
- '@typescript-eslint/visitor-keys': 7.12.0
+ '@typescript-eslint/types': 7.13.1
+ '@typescript-eslint/visitor-keys': 7.13.1
'@typescript-eslint/scope-manager@7.8.0':
dependencies:
'@typescript-eslint/types': 7.8.0
'@typescript-eslint/visitor-keys': 7.8.0
- '@typescript-eslint/type-utils@7.12.0(eslint@9.4.0)(typescript@5.4.5)':
+ '@typescript-eslint/type-utils@7.13.1(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
- '@typescript-eslint/utils': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
debug: 4.3.4
- eslint: 9.4.0
+ eslint: 9.5.0
ts-api-utils: 1.3.0(typescript@5.4.5)
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@7.12.0': {}
+ '@typescript-eslint/types@7.13.1': {}
'@typescript-eslint/types@7.8.0': {}
- '@typescript-eslint/typescript-estree@7.12.0(typescript@5.4.5)':
+ '@typescript-eslint/typescript-estree@7.13.1(typescript@5.4.5)':
dependencies:
- '@typescript-eslint/types': 7.12.0
- '@typescript-eslint/visitor-keys': 7.12.0
+ '@typescript-eslint/types': 7.13.1
+ '@typescript-eslint/visitor-keys': 7.13.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@@ -4460,34 +4542,34 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.12.0(eslint@9.4.0)(typescript@5.4.5)':
+ '@typescript-eslint/utils@7.13.1(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
- '@typescript-eslint/scope-manager': 7.12.0
- '@typescript-eslint/types': 7.12.0
- '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
- eslint: 9.4.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
+ '@typescript-eslint/scope-manager': 7.13.1
+ '@typescript-eslint/types': 7.13.1
+ '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5)
+ eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.8.0(eslint@9.4.0)(typescript@5.4.5)':
+ '@typescript-eslint/utils@7.8.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/types': 7.8.0
'@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
- eslint: 9.4.0
+ eslint: 9.5.0
semver: 7.6.2
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/visitor-keys@7.12.0':
+ '@typescript-eslint/visitor-keys@7.13.1':
dependencies:
- '@typescript-eslint/types': 7.12.0
+ '@typescript-eslint/types': 7.13.1
eslint-visitor-keys: 3.4.3
'@typescript-eslint/visitor-keys@7.8.0':
@@ -4495,12 +4577,12 @@ snapshots:
'@typescript-eslint/types': 7.8.0
eslint-visitor-keys: 3.4.3
- '@vitejs/plugin-vue@5.0.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vue@packages+vue)':
+ '@vitejs/plugin-vue@5.0.5(vite@5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vue@packages+vue)':
dependencies:
- vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
vue: link:packages/vue
- '@vitest/coverage-istanbul@1.5.2(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1))':
+ '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1))':
dependencies:
debug: 4.3.4
istanbul-lib-coverage: 3.2.2
@@ -4511,33 +4593,33 @@ snapshots:
magicast: 0.3.4
picocolors: 1.0.1
test-exclude: 6.0.0
- vitest: 1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)
+ vitest: 1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@1.5.2':
+ '@vitest/expect@1.6.0':
dependencies:
- '@vitest/spy': 1.5.2
- '@vitest/utils': 1.5.2
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
chai: 4.4.1
- '@vitest/runner@1.5.2':
+ '@vitest/runner@1.6.0':
dependencies:
- '@vitest/utils': 1.5.2
+ '@vitest/utils': 1.6.0
p-limit: 5.0.0
pathe: 1.1.2
- '@vitest/snapshot@1.5.2':
+ '@vitest/snapshot@1.6.0':
dependencies:
magic-string: 0.30.10
pathe: 1.1.2
pretty-format: 29.7.0
- '@vitest/spy@1.5.2':
+ '@vitest/spy@1.6.0':
dependencies:
tinyspy: 2.2.1
- '@vitest/ui@1.6.0(vitest@1.5.2)':
+ '@vitest/ui@1.6.0(vitest@1.6.0)':
dependencies:
'@vitest/utils': 1.6.0
fast-glob: 3.3.2
@@ -4546,14 +4628,7 @@ snapshots:
pathe: 1.1.2
picocolors: 1.0.1
sirv: 2.0.4
- vitest: 1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)
-
- '@vitest/utils@1.5.2':
- dependencies:
- diff-sequences: 29.6.3
- estree-walker: 3.0.3
- loupe: 2.3.7
- pretty-format: 29.7.0
+ vitest: 1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)
'@vitest/utils@1.6.0':
dependencies:
@@ -4562,9 +4637,9 @@ snapshots:
loupe: 2.3.7
pretty-format: 29.7.0
- '@vue-vapor/vite-plugin-vue@0.0.0-alpha.4(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1))(vue@packages+vue)':
+ '@vue-vapor/vite-plugin-vue@0.0.0-alpha.4(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1))(vue@packages+vue)':
dependencies:
- vite: 5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
vue: link:packages/vue
'@vue/consolidate@1.0.0': {}
@@ -4844,12 +4919,12 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chromium-bidi@0.5.19(devtools-protocol@0.0.1273771):
+ chromium-bidi@0.5.23(devtools-protocol@0.0.1299070):
dependencies:
- devtools-protocol: 0.0.1273771
+ devtools-protocol: 0.0.1299070
mitt: 3.0.1
urlpattern-polyfill: 10.0.0
- zod: 3.22.4
+ zod: 3.23.8
cli-boxes@3.0.0: {}
@@ -5054,6 +5129,10 @@ snapshots:
dependencies:
ms: 2.1.2
+ debug@4.3.5:
+ dependencies:
+ ms: 2.1.2
+
decimal.js@10.4.3: {}
deep-eql@4.1.3:
@@ -5094,7 +5173,7 @@ snapshots:
delayed-stream@1.0.0: {}
- devtools-protocol@0.0.1273771: {}
+ devtools-protocol@0.0.1299070: {}
diff-sequences@29.6.3: {}
@@ -5229,12 +5308,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-import-x@0.5.1(eslint@9.4.0)(typescript@5.4.5):
+ eslint-plugin-import-x@0.5.1(eslint@9.5.0)(typescript@5.4.5):
dependencies:
- '@typescript-eslint/utils': 7.8.0(eslint@9.4.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.8.0(eslint@9.5.0)(typescript@5.4.5)
debug: 4.3.4
doctrine: 3.0.0
- eslint: 9.4.0
+ eslint: 9.5.0
eslint-import-resolver-node: 0.3.9
get-tsconfig: 4.7.5
is-glob: 4.0.3
@@ -5245,12 +5324,12 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-vitest@0.5.4(eslint@9.4.0)(typescript@5.4.5)(vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)):
+ eslint-plugin-vitest@0.5.4(eslint@9.5.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)):
dependencies:
- '@typescript-eslint/utils': 7.8.0(eslint@9.4.0)(typescript@5.4.5)
- eslint: 9.4.0
+ '@typescript-eslint/utils': 7.8.0(eslint@9.5.0)(typescript@5.4.5)
+ eslint: 9.5.0
optionalDependencies:
- vitest: 1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1)
+ vitest: 1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
- typescript
@@ -5264,13 +5343,13 @@ snapshots:
eslint-visitor-keys@4.0.0: {}
- eslint@9.4.0:
+ eslint@9.5.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@eslint-community/regexpp': 4.10.0
- '@eslint/config-array': 0.15.1
+ '@eslint/config-array': 0.16.0
'@eslint/eslintrc': 3.1.0
- '@eslint/js': 9.4.0
+ '@eslint/js': 9.5.0
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.3.0
'@nodelib/fs.walk': 1.2.8
@@ -5827,7 +5906,7 @@ snapshots:
jsbn@1.1.0: {}
- jsdom@24.0.0:
+ jsdom@24.1.0:
dependencies:
cssstyle: 4.0.1
data-urls: 5.0.0
@@ -5837,18 +5916,18 @@ snapshots:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.4
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.7
+ nwsapi: 2.2.10
parse5: 7.1.2
- rrweb-cssom: 0.6.0
+ rrweb-cssom: 0.7.1
saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.3
+ tough-cookie: 4.1.4
w3c-xmlserializer: 5.0.0
webidl-conversions: 7.0.0
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
whatwg-url: 14.0.0
- ws: 8.16.0
+ ws: 8.17.1
xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
@@ -5914,7 +5993,7 @@ snapshots:
lines-and-columns@2.0.4: {}
- lint-staged@15.2.5:
+ lint-staged@15.2.7:
dependencies:
chalk: 5.3.0
commander: 12.1.0
@@ -6114,7 +6193,7 @@ snapshots:
dependencies:
path-key: 4.0.0
- nwsapi@2.2.7: {}
+ nwsapi@2.2.10: {}
object-assign@4.1.1: {}
@@ -6302,7 +6381,7 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.3.1: {}
+ prettier@3.3.2: {}
pretty-bytes@6.1.1: {}
@@ -6419,24 +6498,24 @@ snapshots:
punycode@2.3.1: {}
- puppeteer-core@22.7.1:
+ puppeteer-core@22.11.2:
dependencies:
'@puppeteer/browsers': 2.2.3
- chromium-bidi: 0.5.19(devtools-protocol@0.0.1273771)
- debug: 4.3.4
- devtools-protocol: 0.0.1273771
- ws: 8.16.0
+ chromium-bidi: 0.5.23(devtools-protocol@0.0.1299070)
+ debug: 4.3.5
+ devtools-protocol: 0.0.1299070
+ ws: 8.17.1
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- puppeteer@22.7.1(typescript@5.4.5):
+ puppeteer@22.11.2(typescript@5.4.5):
dependencies:
'@puppeteer/browsers': 2.2.3
cosmiconfig: 9.0.0(typescript@5.4.5)
- devtools-protocol: 0.0.1273771
- puppeteer-core: 22.7.1
+ devtools-protocol: 0.0.1299070
+ puppeteer-core: 22.11.2
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -6449,10 +6528,6 @@ snapshots:
queue-tick@1.0.1: {}
- randombytes@2.1.0:
- dependencies:
- safe-buffer: 5.2.1
-
range-parser@1.2.0: {}
rc@1.2.8:
@@ -6582,6 +6657,8 @@ snapshots:
rrweb-cssom@0.6.0: {}
+ rrweb-cssom@0.7.1: {}
+
run-applescript@5.0.0:
dependencies:
execa: 5.1.1
@@ -6596,7 +6673,7 @@ snapshots:
safer-buffer@2.1.2: {}
- sass@1.77.4:
+ sass@1.77.6:
dependencies:
chokidar: 3.6.0
immutable: 4.3.5
@@ -6614,10 +6691,6 @@ snapshots:
semver@7.6.2: {}
- serialize-javascript@6.0.2:
- dependencies:
- randombytes: 2.1.0
-
serve-handler@6.1.5:
dependencies:
bytes: 3.0.0
@@ -6694,8 +6767,6 @@ snapshots:
smart-buffer@4.2.0: {}
- smob@1.5.0: {}
-
socks-proxy-agent@8.0.3:
dependencies:
agent-base: 7.1.1
@@ -6866,7 +6937,7 @@ snapshots:
totalist@3.0.1: {}
- tough-cookie@4.1.3:
+ tough-cookie@4.1.4:
dependencies:
psl: 1.9.0
punycode: 2.3.1
@@ -6883,7 +6954,7 @@ snapshots:
tslib@2.6.3: {}
- tsx@4.15.1:
+ tsx@4.15.7:
dependencies:
esbuild: 0.21.5
get-tsconfig: 4.7.5
@@ -6902,12 +6973,12 @@ snapshots:
type-fest@4.15.0: {}
- typescript-eslint@7.12.0(eslint@9.4.0)(typescript@5.4.5):
+ typescript-eslint@7.13.1(eslint@9.5.0)(typescript@5.4.5):
dependencies:
- '@typescript-eslint/eslint-plugin': 7.12.0(@typescript-eslint/parser@7.12.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)
- '@typescript-eslint/parser': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
- '@typescript-eslint/utils': 7.12.0(eslint@9.4.0)(typescript@5.4.5)
- eslint: 9.4.0
+ '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5)
+ eslint: 9.5.0
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
@@ -6964,12 +7035,12 @@ snapshots:
vary@1.1.2: {}
- vite-hyper-config@0.2.1(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)):
+ vite-hyper-config@0.2.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)):
dependencies:
cac: 6.7.14
picocolors: 1.0.1
- vite: 5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
- vite-node: 1.5.0(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
+ vite-node: 1.5.0(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -6980,13 +7051,13 @@ snapshots:
- supports-color
- terser
- vite-node@1.5.0(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1):
+ vite-node@1.5.0(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1):
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.1
- vite: 5.2.10(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -6997,13 +7068,13 @@ snapshots:
- supports-color
- terser
- vite-node@1.5.2(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1):
+ vite-node@1.6.0(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1):
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.1
- vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -7014,7 +7085,7 @@ snapshots:
- supports-color
- terser
- vite-plugin-inspect@0.7.42(rollup@4.18.0)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)):
+ vite-plugin-inspect@0.7.42(rollup@4.18.0)(vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)):
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -7024,12 +7095,12 @@ snapshots:
open: 9.1.0
picocolors: 1.0.1
sirv: 2.0.4
- vite: 5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- rollup
- supports-color
- vite@5.2.10(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1):
+ vite@5.2.9(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1):
dependencies:
esbuild: 0.20.2
postcss: 8.4.38
@@ -7037,38 +7108,27 @@ snapshots:
optionalDependencies:
'@types/node': 20.14.2
fsevents: 2.3.3
- sass: 1.77.4
+ sass: 1.77.6
terser: 5.31.1
- vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1):
+ vite@5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1):
dependencies:
- esbuild: 0.20.2
+ esbuild: 0.21.5
postcss: 8.4.38
rollup: 4.18.0
optionalDependencies:
'@types/node': 20.14.2
fsevents: 2.3.3
- sass: 1.77.4
+ sass: 1.77.6
terser: 5.31.1
- vite@5.2.9(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1):
+ vitest@1.6.0(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1):
dependencies:
- esbuild: 0.20.2
- postcss: 8.4.38
- rollup: 4.18.0
- optionalDependencies:
- '@types/node': 20.14.2
- fsevents: 2.3.3
- sass: 1.77.4
- terser: 5.31.1
-
- vitest@1.5.2(@types/node@20.14.2)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.4)(terser@5.31.1):
- dependencies:
- '@vitest/expect': 1.5.2
- '@vitest/runner': 1.5.2
- '@vitest/snapshot': 1.5.2
- '@vitest/spy': 1.5.2
- '@vitest/utils': 1.5.2
+ '@vitest/expect': 1.6.0
+ '@vitest/runner': 1.6.0
+ '@vitest/snapshot': 1.6.0
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
acorn-walk: 8.3.2
chai: 4.4.1
debug: 4.3.4
@@ -7081,13 +7141,13 @@ snapshots:
strip-literal: 2.1.0
tinybench: 2.7.0
tinypool: 0.8.4
- vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
- vite-node: 1.5.2(@types/node@20.14.2)(sass@1.77.4)(terser@5.31.1)
+ vite: 5.3.1(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
+ vite-node: 1.6.0(@types/node@20.14.2)(sass@1.77.6)(terser@5.31.1)
why-is-node-running: 2.2.2
optionalDependencies:
'@types/node': 20.14.2
- '@vitest/ui': 1.6.0(vitest@1.5.2)
- jsdom: 24.0.0
+ '@vitest/ui': 1.6.0(vitest@1.6.0)
+ jsdom: 24.1.0
transitivePeerDependencies:
- less
- lightningcss
@@ -7162,7 +7222,7 @@ snapshots:
wrappy@1.0.2: {}
- ws@8.16.0: {}
+ ws@8.17.1: {}
xml-name-validator@5.0.0: {}
@@ -7199,4 +7259,4 @@ snapshots:
yoctocolors@2.0.2: {}
- zod@3.22.4: {}
+ zod@3.23.8: {}
diff --git a/rollup.config.js b/rollup.config.js
index 34a2710c4..d32472b71 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -9,11 +9,11 @@ import pico from 'picocolors'
import commonJS from '@rollup/plugin-commonjs'
import polyfillNode from 'rollup-plugin-polyfill-node'
import { nodeResolve } from '@rollup/plugin-node-resolve'
-import terser from '@rollup/plugin-terser'
import esbuild from 'rollup-plugin-esbuild'
import alias from '@rollup/plugin-alias'
import { entries } from './scripts/aliases.js'
import { inlineEnums } from './scripts/inline-enums.js'
+import { minify as minifySwc } from '@swc/core'
/**
* @template T
@@ -366,14 +366,25 @@ function createMinifiedConfig(/** @type {PackageFormat} */ format) {
file: outputConfigs[format].file.replace(/\.js$/, '.prod.js'),
},
[
- terser({
- module: /^esm/.test(format),
- compress: {
- ecma: 2016,
- pure_getters: true,
+ {
+ name: 'swc-minify',
+
+ async renderChunk(
+ contents,
+ _,
+ { format, sourcemap, sourcemapExcludeSources },
+ ) {
+ const { code, map } = await minifySwc(contents, {
+ module: format === 'es',
+ compress: true,
+ mangle: true,
+ sourceMap: !!sourcemap,
+ inlineSourcesContent: !sourcemapExcludeSources,
+ })
+
+ return { code, map: map || null }
},
- safari10: true,
- }),
+ },
],
)
}
diff --git a/scripts/verify-treeshaking.js b/scripts/verify-treeshaking.js
index a93b8bbbd..f19fea92d 100644
--- a/scripts/verify-treeshaking.js
+++ b/scripts/verify-treeshaking.js
@@ -14,7 +14,7 @@ execa('pnpm', ['build', 'vue', '-f', 'global-runtime']).then(() => {
errors.push(
'dev build contains unexpected esbuild object spread helper.\n' +
'This means { ...obj } syntax is used in runtime code. This should be ' +
- 'refactoed to use the `extend` helper to avoid the extra code.',
+ 'refactored to use the `extend` helper to avoid the extra code.',
)
}