{"_id":"@deadcow-enterprises/vue-forms","_rev":"7-dd0774ec6a3d6e45b28a8fc563462e36","name":"@deadcow-enterprises/vue-forms","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"@deadcow-enterprises/vue-forms","version":"0.1.0","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.1.0","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"e7b830ca7f90b086a697064b71ebf11389b084df","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.1.0.tgz","fileCount":8,"integrity":"sha512-41KoZ7/ms+M295iRyktRXWjckfWJ4aG7wz1htYxU4//wl4jp9eDmy/3iEezZ+9ktxB3bNtgLh1l8ZODVQNNuxw==","signatures":[{"sig":"MEUCIQCE9TYq70j3IG24HDlIujz84rkI1AWBHa5Lc7hJJQNffAIgetE2sqaVCySHRNtQ1sVU6/sFnwSOaHC1DiM5cWuz7d8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7066},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/498c5c0bc703aec6cd1020e6817257cf/deadcow-enterprises-vue-forms-0.1.0.tgz","_integrity":"sha512-41KoZ7/ms+M295iRyktRXWjckfWJ4aG7wz1htYxU4//wl4jp9eDmy/3iEezZ+9ktxB3bNtgLh1l8ZODVQNNuxw==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.2.3","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"@deadcow-enterprises/forms-core":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.1.0_1714062689143_0.24231353773551878","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@deadcow-enterprises/vue-forms","version":"0.2.0","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.2.0","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"6798936ac3460e3b445580fbd2abc666ee68c93c","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.2.0.tgz","fileCount":8,"integrity":"sha512-1jg4kX0Mfqea+la0zunMXegckShK9uP4eWsBoGwaVaAEbobSBRhnKR9DzrwwUNi7YvJ6sIHhS16DcLeOpYazJQ==","signatures":[{"sig":"MEUCIGuzW96n0JLshZRJv/nylS78gpCUCN+WpyWHoVTytEEgAiEAjiWihS4qtxBmxhGkgNXNy5TLBXm2uZ6OvRFnKqwu1vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7334},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/a24fce7dcb034e665710e5c83bafc493/deadcow-enterprises-vue-forms-0.2.0.tgz","_integrity":"sha512-1jg4kX0Mfqea+la0zunMXegckShK9uP4eWsBoGwaVaAEbobSBRhnKR9DzrwwUNi7YvJ6sIHhS16DcLeOpYazJQ==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.9.2","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@deadcow-enterprises/forms-core":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.2.0_1748507401266_0.8921066474359824","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@deadcow-enterprises/vue-forms","version":"0.2.1","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.2.1","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"40dec93bcc453fb8982108b4c69c0c81dbdc9761","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.2.1.tgz","fileCount":8,"integrity":"sha512-YSa6dH22IM7Jf1a6hBo9PjJS7nNQ9BRApICcwn9Ej6itMVw4JkLP9G2SeikO85xiGVKOeMVu1MMyJf6RZuKwCg==","signatures":[{"sig":"MEUCIQDqt3ImmtDXDU3fp0FlLKfgBHDf5RgP7hA8RW41jwnQawIgEw0RYhp1NoFUr0LHslz7xt/+h/XZktvSHT08mJq8oY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7473},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/712669a2111453c84953ac59e35a4edd/deadcow-enterprises-vue-forms-0.2.1.tgz","_integrity":"sha512-YSa6dH22IM7Jf1a6hBo9PjJS7nNQ9BRApICcwn9Ej6itMVw4JkLP9G2SeikO85xiGVKOeMVu1MMyJf6RZuKwCg==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.9.2","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@deadcow-enterprises/forms-core":"0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.2.1_1748513877907_0.4336737085587583","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@deadcow-enterprises/vue-forms","version":"0.3.0","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.3.0","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"92daa3b5ad6cb2967ee6d297cb573c80993a845e","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.3.0.tgz","fileCount":8,"integrity":"sha512-Lk98cpyps/y1VZpB/ToAOqRBOpeLWqbDw449fcZAt/hz30xEvcZMJkrA/OV/rGsNFwmGxDNjAcD1th2UKk8+NQ==","signatures":[{"sig":"MEYCIQC+U9nOXP9AZYF2OlFG8APEVB2SNxKIksI4TxybvMJICgIhANOimeWNdg3sZhBlEOFWk8djM/s0+eF7NcxUJ/rCmEWT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7671},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/148911da9234b30ee7dc339e168d984f/deadcow-enterprises-vue-forms-0.3.0.tgz","_integrity":"sha512-Lk98cpyps/y1VZpB/ToAOqRBOpeLWqbDw449fcZAt/hz30xEvcZMJkrA/OV/rGsNFwmGxDNjAcD1th2UKk8+NQ==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.9.2","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@deadcow-enterprises/forms-core":"0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.3.0_1749192172215_0.182186037672448","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@deadcow-enterprises/vue-forms","version":"0.4.0","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.4.0","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"0dd7f83bb8e97cd8c41084597bc9e0967f37ed8d","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.4.0.tgz","fileCount":8,"integrity":"sha512-OwZcjunZrzWX1+RsVE3YgS8xXGBgZeot30FGB0kIGsuD7tDehZhSS/0tQVH+2s6Loe8g1Drw0EFBFVrnyJ6LVw==","signatures":[{"sig":"MEUCIEVZ1N/8XbgdLi225iJwhc7P+Mz2bs1nmnM+ZFdWK0pPAiEA2eBLdSfyUZn0v9MBViCIxSoJeHAtyb77DueiMW4hmIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7830},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","actor":{"name":"deadcow-enterprises","type":"user","email":"diogoviana@deadcow.enterprises"},"email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/2efe857beb570ef0b88de6df862a6d5e/deadcow-enterprises-vue-forms-0.4.0.tgz","_integrity":"sha512-OwZcjunZrzWX1+RsVE3YgS8xXGBgZeot30FGB0kIGsuD7tDehZhSS/0tQVH+2s6Loe8g1Drw0EFBFVrnyJ6LVw==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.9.2","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@deadcow-enterprises/forms-core":"0.4.0"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.4.0_1751361129238_0.11853788163536927","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@deadcow-enterprises/vue-forms","version":"0.5.0","keywords":["form","zod","typescript","vue"],"author":{"name":"Deadcow.enterprises"},"license":"MIT","_id":"@deadcow-enterprises/vue-forms@0.5.0","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"homepage":"https://github.com/DeadCowDev/forms","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"dist":{"shasum":"50e1f07eb78e6fbdabd40d4753b9c576dad9631b","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.5.0.tgz","fileCount":8,"integrity":"sha512-OEHagDYeKXh4FXjfc8FasMaUSkyQQOXx7ma4C+v6owYXcvv7BBxMNltB3H7NHtnSfirw/28pu8SYtPSX8SrCTA==","signatures":[{"sig":"MEUCIQCI/V0yvTT5Eo/0eXT/CE8n0sUiH12dTDakVeLzIGv9pQIgCRdI9VRBAlC/YScmO73w6z8O7uqQn0LALz1a7OgcVy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8006},"main":"./dist/index.js","_from":"file:deadcow-enterprises-vue-forms-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","private":false,"scripts":{"ci":"pnpm run lint && pnpm run test && pnpm run build","dev":"vitest watch --ui","lint":"tsc","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --minify --clean"},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"_resolved":"/tmp/249e45fdb013914da7629388e118ea81/deadcow-enterprises-vue-forms-0.5.0.tgz","_integrity":"sha512-OEHagDYeKXh4FXjfc8FasMaUSkyQQOXx7ma4C+v6owYXcvv7BBxMNltB3H7NHtnSfirw/28pu8SYtPSX8SrCTA==","repository":{"url":"git+https://github.com/DeadCowDev/forms.git","type":"git"},"_npmVersion":"10.9.2","description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@deadcow-enterprises/forms-core":"0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"@testing-library/vue":"^8.0.3"},"peerDependencies":{"vue":"^3.4.25","zod":"^3.22.4"},"_npmOperationalInternal":{"tmp":"tmp/vue-forms_0.5.0_1758889279708_0.9215595384220363","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@deadcow-enterprises/vue-forms","author":{"name":"Deadcow.enterprises"},"license":"MIT","version":"0.6.0","private":false,"description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/DeadCowDev/forms.git"},"homepage":"https://github.com/DeadCowDev/forms","keywords":["form","zod","typescript","vue"],"devDependencies":{"@testing-library/vue":"^8.0.3"},"dependencies":{"@deadcow-enterprises/forms-core":"0.6.0"},"peerDependencies":{"vue":"^3.4.25","zod":"^4.1.12"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --minify --clean","dev":"vitest watch --ui","test":"vitest run","lint":"tsc","ci":"pnpm run lint && pnpm run test && pnpm run build"},"_id":"@deadcow-enterprises/vue-forms@0.6.0","bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"_integrity":"sha512-aiZbRiyMGk5W3hE4X1bp9ucdzb+wyoFMTxzLyGJBVnKB3P5Mng8gj1hdtdpJedZuc3FhmAa2wHcgk35d4lNBrQ==","_resolved":"/tmp/82946185a7683b9f3046643f7b06711d/deadcow-enterprises-vue-forms-0.6.0.tgz","_from":"file:deadcow-enterprises-vue-forms-0.6.0.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-aiZbRiyMGk5W3hE4X1bp9ucdzb+wyoFMTxzLyGJBVnKB3P5Mng8gj1hdtdpJedZuc3FhmAa2wHcgk35d4lNBrQ==","shasum":"1d81586948361b9e02a00e345299cfb09dacf1eb","tarball":"https://registry.npmjs.org/@deadcow-enterprises/vue-forms/-/vue-forms-0.6.0.tgz","fileCount":8,"unpackedSize":8190,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCacxnGFU17vVTGIRAMbFxgoOTb+Ecq5I835+tCBKQQSgIhAKp9wrpOBN76JL2KdmVeeVPZCi9E0KSsjj3OC+tcrFHc"}]},"_npmUser":{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"},"directories":{},"maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-forms_0.6.0_1760119169686_0.8079518368294842"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-25T16:31:29.035Z","modified":"2025-10-10T17:59:30.077Z","0.1.0":"2024-04-25T16:31:29.388Z","0.2.0":"2025-05-29T08:30:01.487Z","0.2.1":"2025-05-29T10:17:58.187Z","0.3.0":"2025-06-06T06:42:52.392Z","0.4.0":"2025-07-01T09:12:09.397Z","0.5.0":"2025-09-26T12:21:19.915Z","0.6.0":"2025-10-10T17:59:29.895Z"},"bugs":{"url":"https://github.com/DeadCowDev/forms/issues"},"author":{"name":"Deadcow.enterprises"},"license":"MIT","homepage":"https://github.com/DeadCowDev/forms","keywords":["form","zod","typescript","vue"],"repository":{"type":"git","url":"git+https://github.com/DeadCowDev/forms.git"},"description":"Agnostic model-driven simple and typesafe approach to forms in Vue.","maintainers":[{"name":"deadcow-enterprises","email":"diogoviana@deadcow.enterprises"}],"readme":"# Vue-forms\n\n## Introduction\n\nThis package provides a powerful and flexible solution for creating model-driven forms in Vue applications. By utilizing this package, developers can easily build complex forms with dynamic validation and conditional logic, all driven by a central model.\n\n## Features\n\n- **Type Safety**: Leverage TypeScript to ensure that your forms are type-safe, reducing runtime errors and improving developer experience.\n- **Model-Driven Forms**: Define your forms structure through models, making form creation more intuitive and less error-prone.\n- **Zod Validations**: Utilize Zod's comprehensive validation capabilities to enforce a wide array of constraints and custom validations.\n\n## Installation and usage\n\nFirst install vue-forms:\n\n```bash\nnpm i @deadcow-enterprises/vue-forms\nyarn add @deadcow-enterprises/vue-forms\npnpm add @deadcow-enterprises/vue-forms\n```\n\n## Usage\n\n```javascript\n<template>\n  <form @submit=\"form.handleSubmit(login)($event)\">\n    <label for=\"username\">\n      <input\n        type=\"text\"\n        name=\"username\"\n        id=\"username\"\n        :value=\"form.value.username\"\n        @input=\"\n          form.setValue(\n            'username',\n            typedTarget<HTMLInputElement>($event.target)?.value ?? ''\n          )\n        \"\n      />\n      <template v-if=\"form.errors.username\">\n        <span\n          className=\"error\"\n          v-for=\"(err, index) in form.errors.username\"\n          :key=\"index\"\n        >\n          {{ err }}\n        </span>\n      </template>\n    </label>\n\n    <label for=\"password\">\n      <input\n        type=\"text\"\n        name=\"password\"\n        id=\"password\"\n        :value=\"form.value.password\"\n        @input=\"\n          form.setValue(\n            'password',\n            typedTarget<HTMLInputElement>($event.target)?.value ?? ''\n          )\n        \"\n      />\n      <template v-if=\"form.errors.password\">\n        <span\n          className=\"error\"\n          v-for=\"(err, index) in form.errors.password\"\n          :key=\"index\"\n        >\n          {{ err }}\n        </span>\n      </template>\n    </label>\n    <button>Submit</button>\n  </form>\n</template>\n<script setup lang=\"ts\">\nimport { typedTarget, useForm } from \"@deadcow-enterprises/vue-forms\";\nimport { z } from \"zod\";\ntype LoginModel = {\n  username: string;\n  password: string;\n};\n\nconst form = useForm<LoginModel>({\n  username: {\n    value: \"\",\n    validator: z.string().min(1, \"Username is required\"),\n  },\n  password: {\n    value: \"\",\n    validator: z.string().min(1, \"Password is required\"),\n  },\n});\n\nconst login = (formValue: LoginModel) => {\n  // do something with formValue here like send it to the server\n  console.log(formValue);\n};\n</script>\n<style>...</style>\n```\n","readmeFilename":"README.md"}