{"_id":"@denis112345/zod-shared-chat","name":"@denis112345/zod-shared-chat","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@denis112345/zod-shared-chat","version":"1.0.0","description":"Shared Zod schemas for chat server and client","main":"bin/index.js","module":"bin/index.js","types":"bin/index.d.ts","exports":{".":{"import":"./bin/index.js","require":"./bin/index.js","types":"./bin/index.d.ts"}},"scripts":{"build":"tsc","dev":"tsc --watch"},"keywords":["zod","schemas","validation","typescript","frontend","backend"],"author":{"name":"pksep"},"license":"MIT","peerDependencies":{"zod":"^3.22.0"},"devDependencies":{"typescript":"^5.0.0","zod":"^3.22.0"},"publishConfig":{"access":"public"},"gitHead":"dec4bb044047edc540891e79a4be07c30a2227aa","_id":"@denis112345/zod-shared-chat@1.0.0","_nodeVersion":"24.8.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-ZubOrm9cvQdi/TD0LbPWjqgDl3XpVne06AB+3NUejZxm9rPtk3BSYv6ej+Tf/tGQtTUV8yqEL2qzHmMmTDPj1Q==","shasum":"497ffc4af398cfebc026cf8038a2bd0654cc550c","tarball":"https://registry.npmjs.org/@denis112345/zod-shared-chat/-/zod-shared-chat-1.0.0.tgz","fileCount":32,"unpackedSize":29524,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEYKk3EF0Ueg6elwb0yvSVjogsT6TnI9yMp7yRFBI8Y+AiEAvDgxRepSUdQL5PgQQe553zF+vdlgSMpSSPsQbD7AVEw="}]},"_npmUser":{"name":"denis112345","email":"piplison2122@gmail.com"},"directories":{},"maintainers":[{"name":"denis112345","email":"piplison2122@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zod-shared-chat_1.0.0_1768379141285_0.7482619606493655"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-14T08:25:41.147Z","1.0.0":"2026-01-14T08:25:41.438Z","modified":"2026-01-14T08:25:41.687Z"},"maintainers":[{"name":"denis112345","email":"piplison2122@gmail.com"}],"description":"Shared Zod schemas for chat server and client","keywords":["zod","schemas","validation","typescript","frontend","backend"],"author":{"name":"pksep"},"license":"MIT","readme":"# @denis112345/zod-shared-chat\n\nShared Zod schemas for the chat server project. Works with both backend (NestJS) and frontend (React, Vue, etc.).\n\n## Installation\n\n```bash\nnpm install @denis112345/zod-shared-chat\n# or\nyarn add @denis112345/zod-shared-chat\n# or\npnpm add @denis112345/zod-shared-chat\n```\n\n## Usage\n\n### Backend (NestJS)\n\n```typescript\nimport { UserSchema, CreateUserSchema, type User, type CreateUser } from '@denis112345/zod-shared-chat';\n\n// Validate data\nconst userData = UserSchema.parse({ id: '...', initials: '...' });\n\n// Type inference\nconst newUser: CreateUser = {\n  initials: 'Иванов И.И.',\n  nickname: 'user123'\n};\n```\n\n### Frontend (React)\n\n```typescript\nimport { CreateUserSchema, type CreateUser } from '@denis112345/zod-shared-chat';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\n\nconst CreateUserForm = () => {\n  const { register, handleSubmit } = useForm<CreateUser>({\n    resolver: zodResolver(CreateUserSchema)\n  });\n\n  return (\n    <form onSubmit={handleSubmit(data => console.log(data))}>\n      <input {...register('initials')} placeholder=\"ФИО\" />\n      <input {...register('nickname')} placeholder=\"Никнейм\" />\n      <button type=\"submit\">Create</button>\n    </form>\n  );\n};\n```\n\n## Available Schemas\n\n### User\n- `UserSchema` - Complete user model\n- `CreateUserSchema` - User creation validation\n- `UpdateUserSchema` - User update validation\n- `GetUsersSchema` - User query parameters\n\n### Group\n- `GroupSchema` - Complete group model\n- `CreateGroupSchema` - Group creation validation\n- `UpdateGroupSchema` - Group update validation\n- `AddMembersSchema` - Add members validation\n- `GroupMemberRoleSchema` - Group member role model\n\n### Topic\n- `TopicSchema` - Complete topic model\n- `CreateTopicSchema` - Topic creation validation\n- `GetTopicsSchema` - Topic query parameters\n\n### Message\n- `MessageSchema` - Complete message model\n\n### WebSocket\n- `WsCreateMessageSchema` - Create message via WebSocket\n- `WsUpdateMessageSchema` - Update message via WebSocket\n- `WsReactionSchema` - Reaction via WebSocket\n- `WsReadMessageSchema` - Mark messages as read\n\n### Auth\n- `AuthUserSchema` - Authentication user data\n\n### Other\n- `ReactionSchema` - Complete reaction model\n- `MediaSchema` - Complete media model\n- `TopicSettingSchema` - Complete topic setting model\n\n## Frontend Features\n\n- ✅ **Type Safety**: Full TypeScript support\n- ✅ **Form Validation**: Works with React Hook Form, Formik\n- ✅ **API Validation**: Validate responses from backend\n- ✅ **WebSocket Support**: Validate WebSocket messages\n- ✅ **Tree Shaking**: Only import what you need\n- ✅ **Zero Dependencies**: Only Zod as peer dependency\n\n## Development\n\n```bash\n# Build the package\nnpm run build\n\n# Watch for changes\nnpm run dev\n```\n\n## Frontend Usage Examples\n\nSee [FRONTEND_USAGE.md](./FRONTEND_USAGE.md) for detailed frontend examples including:\n- React Hook Form integration\n- API client implementation\n- WebSocket message handling\n- Form validation patterns\n","readmeFilename":"README.md","_rev":"1-f105fa3d07c6cca5707580112625df00"}