{"_id":"@abhivorn/validation-kit","_rev":"3-2740158383f15c9798764472f618f4b2","name":"@abhivorn/validation-kit","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@abhivorn/validation-kit","version":"1.0.0","_id":"@abhivorn/validation-kit@1.0.0","maintainers":[{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"}],"dist":{"shasum":"ce24b81ccdf36c5eb094eaf95afcb78cb1aa1085","tarball":"https://registry.npmjs.org/@abhivorn/validation-kit/-/validation-kit-1.0.0.tgz","fileCount":6,"integrity":"sha512-VtsMFGyjaYf2mkiltcX6pA3xJC1aSDyFLIWdKjKfHCJd0rZKTWuJnbAEXIqNDIlKx6IMF8hhqCVMqkM9aYyDTw==","signatures":[{"sig":"MEYCIQDAdEhzjF21WN7mz7622guSno6sDZgZM+QLdBVHUAIIvQIhAJVCsJrekaDnlsiAN5bRbLQVSDeBX8NBt19vEU2SPsxp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153063},"main":"./dist/validation-kit.cjs.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/validation-kit.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/validation-kit.es.js","require":"./dist/validation-kit.cjs.js"}},"scripts":{"test":"vitest run","build":"tsc && vite build"},"_npmUser":{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"},"_npmVersion":"11.12.1","description":"A comprehensive React Validation Library","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","jsdom":"^24.0.0","eslint":"^8.57.0","vitest":"^1.3.1","prettier":"^3.2.5","typescript":"^5.4.2","@types/react":"^18.2.64","@types/react-dom":"^18.2.21","@testing-library/react":"^14.2.1","@testing-library/jest-dom":"^6.4.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/validation-kit_1.0.0_1786082025553_0.9418657614385424","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abhivorn/validation-kit","version":"1.0.1","_id":"@abhivorn/validation-kit@1.0.1","maintainers":[{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"}],"dist":{"shasum":"0977f3163a4ae5596c7a847b4e31cc39bfb2cdd0","tarball":"https://registry.npmjs.org/@abhivorn/validation-kit/-/validation-kit-1.0.1.tgz","fileCount":6,"integrity":"sha512-G4RHB4Q+81kT2CfMjY0p//1IM/VXC4iCWyvHvgPinSzRmMGo4Zyan+ykozbNJa5o0c943eVICb4jfkvGotsmCQ==","signatures":[{"sig":"MEYCIQCkky11gEHmn12rrs8Z5EJ79ho3ib9GKLUQ5VKQTuSDMgIhAIMYvrKV136M9m472iYF8bP6gW9w5HjsjIrAd0hgFK/k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98766},"main":"./dist/validation-kit.cjs.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/validation-kit.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/validation-kit.es.js","require":"./dist/validation-kit.cjs.js"}},"gitHead":"401770a3cbcdf26c1797542c0d11894393b0100f","scripts":{"test":"vitest run","build":"tsc && vite build"},"_npmUser":{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"},"_npmVersion":"11.12.1","description":"A comprehensive React Validation Library","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","jsdom":"^24.0.0","eslint":"^8.57.0","vitest":"^1.3.1","prettier":"^3.2.5","typescript":"^5.4.2","@types/react":"^18.2.64","@types/react-dom":"^18.2.21","@testing-library/react":"^14.2.1","@testing-library/jest-dom":"^6.4.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/validation-kit_1.0.1_1786083416025_0.3689119125753335","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@abhivorn/validation-kit","version":"2.0.0","description":"A comprehensive React Validation Library","publishConfig":{"access":"public"},"type":"module","main":"./dist/validation-kit.cjs.js","module":"./dist/validation-kit.es.js","types":"./dist/types/index.d.ts","exports":{".":{"import":"./dist/validation-kit.es.js","require":"./dist/validation-kit.cjs.js","types":"./dist/types/index.d.ts"}},"scripts":{"build":"tsc && vite build","test":"vitest run"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"devDependencies":{"@testing-library/jest-dom":"^6.4.2","@testing-library/react":"^14.2.1","@types/react":"^18.2.64","@types/react-dom":"^18.2.21","eslint":"^8.57.0","jsdom":"^24.0.0","prettier":"^3.2.5","typescript":"^5.4.2","vite":"^5.1.5","vitest":"^1.3.1"},"gitHead":"6e019fdbb7a207478c929bb8fae312e7c1a84516","_id":"@abhivorn/validation-kit@2.0.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-0QzKg0M/Dry9JQN7fkV1gymZo5a2YFdSY8z+3FbMLmKWGozlYa6pjV+5jcqJclWQ7rKqwl1R0ke96J37JO3XBA==","shasum":"42bf04de61e03dd3de53dd070b35acb20dc1b54a","tarball":"https://registry.npmjs.org/@abhivorn/validation-kit/-/validation-kit-2.0.0.tgz","fileCount":6,"unpackedSize":75015,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEIVGJtB/R/0i2A7nJVjVXQGWlDvFN5HjKmXZU28pnmxAiEAm5SxExa5pfH4/QSTMzf8FSS8I0I5e6G9JLjByZmhCL4="}]},"_npmUser":{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"},"directories":{},"maintainers":[{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validation-kit_2.0.0_1786085108969_0.08455616344320016"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T05:53:45.385Z","modified":"2026-08-07T06:45:09.264Z","1.0.0":"2026-08-07T05:53:45.690Z","1.0.1":"2026-08-07T06:16:56.156Z","2.0.0":"2026-08-07T06:45:09.114Z"},"description":"A comprehensive React Validation Library","maintainers":[{"name":"abhivorn","email":"sadikmohammad@abhivorn.com"}],"readme":"# @abhivorn/validation-kit\n\nA lightweight, pure-logic React validation library. **No UI components, zero dependencies.**\n\nThis library provides an extensive suite of pure validation functions that can be attached directly to native HTML inputs (like `onBlur` or `onChange`) or used in any custom validation logic.\n\n## Features\n\n- **Pure Logic**: Focuses exclusively on validation rules. No UI components or CSS included.\n- **Event-Aware**: Validators can take raw strings OR native React events (`React.FocusEvent`, `React.ChangeEvent`), making them plug-and-play for HTML inputs.\n- **Structured Results**: Every validator returns `{ isValid: boolean, error: string, value: string }`.\n- **Extensive Suite**: 40+ built-in validators for emails, passwords, regional documents (PAN, Aadhaar), payments (Credit Card, CVV), networks (IP, MAC), and files.\n- **i18n Support**: Completely customizable error messages.\n\n## Installation\n\n```bash\nnpm install @abhivorn/validation-kit\n```\n\n## Quick Start\n\nYou can pass our validators directly to native React event handlers. The library automatically extracts `event.target.value`.\n\n```jsx\nimport { useState } from 'react';\nimport { validate } from '@abhivorn/validation-kit';\n\nfunction App() {\n  const [emailError, setEmailError] = useState('');\n\n  const handleEmailBlur = (e) => {\n    const result = validate.email(e);\n    if (!result.isValid) {\n      setEmailError(result.error);\n    } else {\n      setEmailError('');\n    }\n  };\n\n  return (\n    <form>\n      <div>\n        <label>Email Address</label>\n        <input \n          type=\"email\" \n          onBlur={handleEmailBlur} \n        />\n        {emailError && <span style={{ color: 'red' }}>{emailError}</span>}\n      </div>\n\n      <div>\n        <label>Phone Number</label>\n        {/* Or validate inline */}\n        <input \n          type=\"tel\" \n          onBlur={(e) => {\n            const { isValid, error } = validate.phone(e);\n            console.log(isValid ? 'Valid!' : error);\n          }} \n        />\n      </div>\n    </form>\n  );\n}\n```\n\n## Available Validators\n\n### Basic & String\n`validate.email` | `validate.name` | `validate.username` | `validate.password` | `validate.phone` | `validate.url` | `validate.domain` | `validate.slug`\n\n### Regional & Identity (India)\n`validate.pan` | `validate.aadhaar` | `validate.gstin` | `validate.passport` | `validate.drivingLicense` | `validate.upiId` | `validate.ifsc` | `validate.swiftBic` | `validate.pinZip`\n\n### Network & Payment\n`validate.ipAddress` | `validate.macAddress` | `validate.creditCard` | `validate.cvv` | `validate.expiryDate` | `validate.bankAccount`\n\n### Developer & Files\n`validate.hexColor` | `validate.rgb` | `validate.json` | `validate.xml` | `validate.latitudeLongitude` | `validate.coordinates` | `validate.uuid` | `validate.otp` | `validate.address`\n\n### Higher-Order Validators (Require Config)\n```javascript\nvalidate.regex(/^[A-Z]+$/, 'Must be uppercase')(value)\nvalidate.custom((val) => val > 10, 'Must be greater than 10')(value)\n\n// File Validators\nvalidate.file({ maxSizeMB: 5, allowedTypes: ['image/png'] })(fileEvent)\nvalidate.image(5)(fileEvent) // 5MB max\nvalidate.pdfDocument(10)(fileEvent) // 10MB max\n```\n\n## Localization (i18n)\n\nYou can easily override the default error messages globally:\n\n```javascript\nimport { i18n } from '@abhivorn/validation-kit';\n\ni18n.registerMessages('en', {\n  invalid_email: 'Please provide a valid corporate email.',\n  invalid_password: 'Your password is too weak.',\n});\n```\n","readmeFilename":"README.md"}