diff --git a/.nvmrc b/.nvmrc index 10fef25..35d2d08 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.18 +22.12 diff --git a/package-lock.json b/package-lock.json index c9e9384..503817c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,12 +19,14 @@ "eslint": "^9.17.0", "eslint-plugin-vue": "^9.32.0", "rollup-plugin-visualizer": "^5.12.0", + "type-fest": "^4.30.2", "typescript": "^5.6.3", "vite": "^6.0.3", "vite-plugin-checker": "^0.8.0", "vite-plugin-dts": "^4.3.0", "vitepress": "^1.5.0", "vitest": "^2.1.8", + "vue-component-type-helpers": "^2.1.10", "vue-tsc": "^2.1.10" }, "peerDependencies": { @@ -3804,6 +3806,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-vue/node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -6411,12 +6426,13 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.30.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", + "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11459,6 +11475,12 @@ "type-fest": "^0.20.2" } }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -13295,9 +13317,9 @@ } }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.30.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", + "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", "dev": true }, "typescript": { diff --git a/package.json b/package.json index 21b0a9e..b6e4da2 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,14 @@ "eslint": "^9.17.0", "eslint-plugin-vue": "^9.32.0", "rollup-plugin-visualizer": "^5.12.0", + "type-fest": "^4.30.2", "typescript": "^5.6.3", "vite": "^6.0.3", "vite-plugin-checker": "^0.8.0", "vite-plugin-dts": "^4.3.0", "vitepress": "^1.5.0", "vitest": "^2.1.8", + "vue-component-type-helpers": "^2.1.10", "vue-tsc": "^2.1.10" }, "peerDependencies": { diff --git a/src/App.vue b/src/App.vue index 928f9f2..8647338 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,7 +6,7 @@ 'my-input': [{ message: 'outer error' }], 'my.nested.value': [{ message: 'qwe' }] }" - :resolver="$options.resolver" + :resolver="resolver" @submit="onSubmit" > @@ -32,7 +32,7 @@ @@ -51,7 +51,7 @@ @@ -60,7 +60,7 @@ @@ -69,14 +69,14 @@ @@ -153,82 +153,72 @@ - diff --git a/src/components/ValidationField.vue b/src/components/ValidationField.vue index db535a2..78276ca 100644 --- a/src/components/ValidationField.vue +++ b/src/components/ValidationField.vue @@ -14,7 +14,7 @@