{"_id":"@abeyjs/validation","_rev":"2-f5211a3bf19000f3ffead27007d910db","name":"@abeyjs/validation","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@abeyjs/validation","version":"0.1.0","license":"MIT","_id":"@abeyjs/validation@0.1.0","maintainers":[{"name":"abeyjs","email":"abeyjs98@gmail.com"}],"dist":{"shasum":"436aa61a229bf528f23e845fe9c2df4cb8a9b82b","tarball":"https://registry.npmjs.org/@abeyjs/validation/-/validation-0.1.0.tgz","fileCount":6,"integrity":"sha512-vpvRGyy9pfdhSetmwBjawuurtc8SvU632v3dLBjAhfts2dqfU6TMm1kQKwIZwszkcpQ7mwsvxWAYy6qJ4YuQXw==","signatures":[{"sig":"MEUCIQCYx1GFvdv01eMVxQdpq+SIoOjCVxxMyRhQWuNUy6zvSQIgef1VCZoJ57ME3i44exDtPlT5xv+/mLD9hnEXDNQEOCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7527},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"24fe5ea792f5be4e8facf7c820025f89265c1467","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"abeyjs","email":"abeyjs98@gmail.com"},"_npmVersion":"10.8.2","description":"Thin **Zod** facade for AbeyJs: re-exports **`z`** plus **`safeParseWithErrors`** and helpers that turn **`ZodIssue`** lists into **`Record<string, string>`** maps for forms (`@abeyjs/uikit`), OpenAPI-derived schemas, or any caller that prefers a **`succe","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.0"},"peerDependencies":{"zod":"^3.24.0"},"_npmOperationalInternal":{"tmp":"tmp/validation_0.1.0_1777684702021_0.4377655454662366","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abeyjs/validation","version":"0.1.1","license":"MIT","publishConfig":{"access":"public"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json"},"peerDependencies":{"zod":"^3.24.0"},"devDependencies":{"zod":"^3.24.0"},"_id":"@abeyjs/validation@0.1.1","gitHead":"8e89473e70d292931fe54ab9e184c613a03528d3","description":"Thin **Zod** facade for AbeyJs: re-exports **`z`** plus **`safeParseWithErrors`** and helpers that turn **`ZodIssue`** lists into **`Record<string, string>`** maps for forms (`@abeyjs/uikit`), OpenAPI-derived schemas, or any caller that prefers a **`succe","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-j96PIdM6XtPSqVMkLYTa14cxWmSI+LW1tOSIZOZyzzXR5hq4CZNA2D0FzBNlB4erKut0WTbn7gdhn354oXt2og==","shasum":"8e4f5d620aa6d14452b229c98f29257eb303f06a","tarball":"https://registry.npmjs.org/@abeyjs/validation/-/validation-0.1.1.tgz","fileCount":4,"unpackedSize":5117,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD5u2Q6a8TK/+6Ml3t19VMxhsqkM5h7rHto9X37CCU3JwIhALsWcbHezrOGxUMyHT1knObksfb8BkHP+PMtnz3H/aU1"}]},"_npmUser":{"name":"abeyjs","email":"abeyjs98@gmail.com"},"directories":{},"maintainers":[{"name":"abeyjs","email":"abeyjs98@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validation_0.1.1_1777736001268_0.28448906025372467"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-02T01:18:21.934Z","modified":"2026-05-02T15:33:21.527Z","0.1.0":"2026-05-02T01:18:22.163Z","0.1.1":"2026-05-02T15:33:21.417Z"},"license":"MIT","description":"Thin **Zod** facade for AbeyJs: re-exports **`z`** plus **`safeParseWithErrors`** and helpers that turn **`ZodIssue`** lists into **`Record<string, string>`** maps for forms (`@abeyjs/uikit`), OpenAPI-derived schemas, or any caller that prefers a **`succe","maintainers":[{"name":"abeyjs","email":"abeyjs98@gmail.com"}],"readme":"# `@abeyjs/validation`\r\n\r\nThin **Zod** facade for AbeyJs: re-exports **`z`** plus **`safeParseWithErrors`** and helpers that turn **`ZodIssue`** lists into **`Record<string, string>`** maps for forms (`@abeyjs/uikit`), OpenAPI-derived schemas, or any caller that prefers a **`success | fields`** discriminant instead of raw **`ZodError`**.\r\n\r\n---\r\n\r\n## Dependencies\r\n\r\n **`zod`** is a **peer dependency** (^3.24). Consumers must install **`zod`** in the app/package that imports **`@abeyjs/validation`**.\r\n\r\n---\r\n\r\n## API\r\n\r\n| Export | Role |\r\n|--------|------|\r\n| **`z`**, **`ZodType`**, **`ZodSchema`** | Same **`zod`** surface (shared rules between UI and optional server validation). |\r\n| **`FieldError`** | `{ path, message }` — stable intermediary before UI maps. |\r\n| **`safeParseWithErrors`** | **`schema.safeParse`**, branching to **`fields: FieldError[]`** when invalid. |\r\n| **`fieldErrorsToMap`** | First path segment only → flat **`{ [field]: message }`** (first issue wins per top-level key). |\r\n| **`fieldErrorsToDottedMap`** | Full path joined with **`.`** (e.g. **`client.email`**) for nested payloads. |\r\n\r\n**Note:** **`fieldErrorsToMap`** ignores deeper path segments after the first — use **`fieldErrorsToDottedMap`** when **`ViewField.name`** matches dotted keys or nested object shapes.\r\n\r\n---\r\n\r\n## Typical use\r\n\r\n```ts\r\nimport { z, safeParseWithErrors, fieldErrorsToMap } from \"@abeyjs/validation\";\r\n\r\nconst User = z.object({ name: z.string().min(1), age: z.coerce.number() });\r\n\r\nconst r = safeParseWithErrors(User, { name: \"\", age: \"x\" });\r\nif (!r.success) {\r\n  const byField = fieldErrorsToMap(r.fields); // { name: '...', age: '...' }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Build\r\n\r\n```bash\r\nnpm run build -w @abeyjs/validation\r\n```\r\n","readmeFilename":"README.md"}