{"_id":"@bkeenke/shm-contract","_rev":"6-e5532cc0d94783d2484939cc26b8b4d2","name":"@bkeenke/shm-contract","dist-tags":{"latest":"1.9.0"},"versions":{"1.4.0":{"name":"@bkeenke/shm-contract","version":"1.4.0","author":{"name":"bkeenke"},"license":"MIT","_id":"@bkeenke/shm-contract@1.4.0","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"dist":{"shasum":"205cb4b2bc84f4e4e72ae92ec1ef9d9c2f597ebe","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.4.0.tgz","fileCount":210,"integrity":"sha512-3ccmlLM3ulaXPMVriUC5kLVZk/fpJeV4cdDwRoHHG8N6CDrczUFFmHklawG8Ez/0YFpUeOkpdfEGGI/iPJ6ILg==","signatures":[{"sig":"MEUCIE6PxBAKlv8ZipONU3kqTmPtEXdc0ZH7luc4ZEXJN6cvAiEAovd9io9A0Yp8K2pqExMvOV94xFH8VeSQB9Ibt+WvVwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266056},"main":"build/index.js","type":"module","types":"build/index.d.ts","gitHead":"6c459eb8a715fa40526f24b96f75f9123f8a7745","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"rm -rf build","prepublish":"npm run build"},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"_npmVersion":"11.6.2","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/shm-contract_1.4.0_1771717606765_0.14323310912665743","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bkeenke/shm-contract","version":"1.5.0","author":{"name":"bkeenke"},"license":"MIT","_id":"@bkeenke/shm-contract@1.5.0","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"dist":{"shasum":"f1c9ac7d7f9cb337cfa2bf9549650251c1a0fb06","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.5.0.tgz","fileCount":210,"integrity":"sha512-w2v9CbDM9VTtN8G1+rqhijlt7O7EfrYTX0D/ZeEnmPoUaenBKRW7S9KcZ3pfmCktEuR8O7dpXzlbQI3m9sB2Yg==","signatures":[{"sig":"MEQCIEm+0XcwAX8OkiE6QwvQJjrBHMLduxlGp0JCZIjFdN42AiA7MTPXO43uTKWMGuqdtMw8/prelIsnRvr5/QFgi5rVzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266056},"main":"build/index.js","type":"module","types":"build/index.d.ts","gitHead":"6c459eb8a715fa40526f24b96f75f9123f8a7745","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"rm -rf build","prepublish":"npm run build"},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"_npmVersion":"11.6.2","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/shm-contract_1.5.0_1771719191312_0.15298819251337603","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bkeenke/shm-contract","version":"1.6.0","author":{"name":"bkeenke"},"license":"MIT","_id":"@bkeenke/shm-contract@1.6.0","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"dist":{"shasum":"ffebf7947db5876084d51dbf1653daef0ffaf046","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.6.0.tgz","fileCount":214,"integrity":"sha512-pvQq6SCFxlLWgZHdXdc0v8QEulIcIzgqldk5phJUVRUdc9/2VsoTE06YekoVXgT5Z4uv0nfHNFSG6KmYvHWioQ==","signatures":[{"sig":"MEYCIQC2TaP0YJ5chj4+jtQ6JIU2XfSluxhTVrntXCFQpVXw7QIhAKL/wQl+f9xXvJxrNpOD7vaMBPZU9mKLTJ8Utq4OcZ/H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283804},"main":"build/index.js","type":"module","types":"build/index.d.ts","gitHead":"6c459eb8a715fa40526f24b96f75f9123f8a7745","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"rm -rf build","prepublish":"npm run build"},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"_npmVersion":"11.6.2","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/shm-contract_1.6.0_1771719533326_0.013629420570283157","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@bkeenke/shm-contract","version":"1.7.0","author":{"name":"bkeenke"},"license":"MIT","_id":"@bkeenke/shm-contract@1.7.0","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"dist":{"shasum":"4c02b5320c9ee82225b15143767d7355821166c6","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.7.0.tgz","fileCount":210,"integrity":"sha512-U/7WNZD4n0QbiB1BT65hbq8iNnbGmE6ilwH44M0Medx+suJ6Dx98rGNQLIe53++cqz3/9n4XXiREkjBesf30+Q==","signatures":[{"sig":"MEQCIDaVXm441qiUPev2T8wr69KuTytL8TfJawWTl72DeKT5AiAbzTpvJMh2pQqeygf2PJ0psPbvmMtp6KqqeTEm3Gh2Ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266461},"main":"build/index.js","type":"module","types":"build/index.d.ts","gitHead":"91ff6fce4d426ba4faaff42cff0a061bbfe981dc","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"rm -rf build","prepublish":"npm run build"},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"_npmVersion":"11.6.2","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/shm-contract_1.7.0_1771778297615_0.38861161216721074","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@bkeenke/shm-contract","version":"1.8.0","author":{"name":"bkeenke"},"license":"MIT","_id":"@bkeenke/shm-contract@1.8.0","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"dist":{"shasum":"d215a2ae8bd31e8c1f4a7a7924d5ca1f94f50133","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.8.0.tgz","fileCount":210,"integrity":"sha512-1MmnqVujAA24OOnEbiOA+9iczpz2yFCNAx4swjQEYZQPF4BDKzCxRMDNCkJ7xhO53zGWYSqVZ3htHLWljtfz1Q==","signatures":[{"sig":"MEQCIFy4HewZIgA2Ed41UVQ2mATPPKupuePI9OoFETH+jReCAiA5WHfu7eO10AY3/nZ7whS6U9QsniDJOsx0hPst8Txhcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266461},"main":"build/index.js","type":"module","types":"build/index.d.ts","gitHead":"91ff6fce4d426ba4faaff42cff0a061bbfe981dc","scripts":{"dev":"tsc --watch","build":"npm run clean && tsc","clean":"rm -rf build","prepublish":"npm run build"},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"_npmVersion":"11.6.2","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.23.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/shm-contract_1.8.0_1771973545362_0.8027031631450556","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@bkeenke/shm-contract","version":"1.9.0","license":"MIT","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","author":{"name":"bkeenke"},"type":"module","main":"build/index.js","types":"build/index.d.ts","scripts":{"clean":"rm -rf build","build":"npm run clean && tsc","dev":"tsc --watch","prepublish":"npm run build"},"dependencies":{"zod":"^3.23.8"},"devDependencies":{"typescript":"^5.4.5"},"gitHead":"f7d7fd3ec453c960261db749aa16d6680eb14a81","_id":"@bkeenke/shm-contract@1.9.0","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-iMXxBXiltVg9SR/sOBPSJXBpALAzq6DF4w7wMhcYj7mQkBm2e/N5+1wx6tVb2jhfs9gBPcYTEfHPP9oj/u27NQ==","shasum":"baf320ed67537c47ea477c4ac893badbe2a2247a","tarball":"https://registry.npmjs.org/@bkeenke/shm-contract/-/shm-contract-1.9.0.tgz","fileCount":214,"unpackedSize":270138,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGuogRNmv+2SaAYMJxzO0Ee0PtEpaQt6w3FykQJRjaawAiB6hW1897awkaDNR852gUqs+8gWaE8eP2yM9NzdTA1Ppw=="}]},"_npmUser":{"name":"bksv","email":"bakasovtynay@gmail.com"},"directories":{},"maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shm-contract_1.9.0_1772045082409_0.7618740904469663"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-21T23:46:46.646Z","modified":"2026-02-25T18:44:42.689Z","1.4.0":"2026-02-21T23:46:46.925Z","1.5.0":"2026-02-22T00:13:11.450Z","1.6.0":"2026-02-22T00:18:53.471Z","1.7.0":"2026-02-22T16:38:17.763Z","1.8.0":"2026-02-24T22:52:25.534Z","1.9.0":"2026-02-25T18:44:42.563Z"},"author":{"name":"bkeenke"},"license":"MIT","description":"API library for SHM (Service Hosting Manager). Can be used in backend and frontend.","maintainers":[{"name":"bksv","email":"bakasovtynay@gmail.com"}],"readme":"# @bkeenke/shm-contract\n\nTypeScript/Zod контракты для SHM API. Используется для типизации запросов и ответов API на фронтенде\n\n## Установка\n\n```bash\nnpm install @bkeenke/shm-contract\n# или\nyarn add @bkeenke/shm-contract\n```\n\n## Использование\n\n### Импорт типов и схем\n\n```typescript\nimport {\n  // Models (Zod schemas + types)\n  User,\n  UserSchema,\n  Service,\n  ServiceSchema,\n\n  // API routes\n  REST_API,\n\n  // Commands\n  AuthLoginCommand,\n  AdminGetUsersCommand,\n\n  // Constants\n  USER_SERVICE_STATUS,\n  SPOOL_STATUS,\n} from '@bkeenke/shm-contract';\n```\n\n### Пример использования с axios\n\n```typescript\nimport axios from 'axios';\nimport { AuthLoginCommand, REST_API } from '@bkeenke/shm-contract';\n\nasync function login(credentials: AuthLoginCommand.Request) {\n  // Валидация входных данных\n  const validated = AuthLoginCommand.RequestSchema.parse(credentials);\n\n  const response = await axios.post(AuthLoginCommand.url, validated);\n\n  // Валидация ответа\n  return AuthLoginCommand.ResponseSchema.parse(response.data);\n}\n```\n\n### Пример использования с TanStack Query\n\n```typescript\nimport { useQuery } from '@tanstack/react-query';\nimport { AdminGetUsersCommand } from '@bkeenke/shm-contract';\n\nfunction useUsers() {\n  return useQuery({\n    queryKey: ['users'],\n    queryFn: async () => {\n      const response = await fetch(AdminGetUsersCommand.url);\n      const data = await response.json();\n      return AdminGetUsersCommand.ResponseSchema.parse(data);\n    },\n  });\n}\n```\n\n## Структура пакета\n\n```\n@bkeenke/shm-contract/\n├── api/              # API routes и controllers\n│   ├── routes.ts     # Все API маршруты\n│   └── controllers.ts\n├── constants/        # Константы\n│   ├── user-service-status.constant.ts\n│   ├── spool-status.constant.ts\n│   └── http-method.constant.ts\n├── models/           # Zod схемы и типы\n│   ├── user.schema.ts\n│   ├── service.schema.ts\n│   ├── pay.schema.ts\n│   └── ...\n└── commands/         # API команды (контракты)\n    ├── auth/\n    ├── users/\n    ├── services/\n    ├── servers/\n    ├── spool/\n    ├── pay/\n    ├── templates/\n    ├── storage/\n    ├── config/\n    ├── promo/\n    └── telegram/\n```\n\n## API Routes\n\nВсе маршруты доступны через объект `REST_API`:\n\n```typescript\nimport { REST_API } from '@bkeenke/shm-contract';\n\n// User routes\nREST_API.USER.GET        // GET /shm/v1/user\nREST_API.USER.AUTH       // POST /shm/v1/user/auth\nREST_API.USER.SERVICE    // GET/DELETE /shm/v1/user/service\n\n// Admin routes\nREST_API.ADMIN.USER.ROOT       // CRUD /shm/v1/admin/user\nREST_API.ADMIN.SERVICE.ROOT    // CRUD /shm/v1/admin/service\nREST_API.ADMIN.SERVER.ROOT     // CRUD /shm/v1/admin/server\nREST_API.ADMIN.SPOOL.ROOT      // CRUD /shm/v1/admin/spool\nREST_API.ADMIN.TEMPLATE.ROOT   // CRUD /shm/v1/admin/template\nREST_API.ADMIN.CONFIG.ROOT     // CRUD /shm/v1/admin/config\nREST_API.ADMIN.PROMO.ROOT      // CRUD /shm/v1/admin/promo\n```\n\n## Commands (Контракты)\n\nКаждая команда содержит:\n- `url` - URL эндпоинта\n- `method` - HTTP метод\n- `RequestSchema` - Zod схема запроса\n- `ResponseSchema` - Zod схема ответа\n- `Request` - TypeScript тип запроса\n- `Response` - TypeScript тип ответа\n\n### Auth Commands\n- `AuthLoginCommand` - Авторизация\n- `AuthRegisterCommand` - Регистрация\n- `TelegramWebappAuthCommand` - Авторизация через Telegram WebApp\n- `PasskeyAuthCommand` - Авторизация через Passkey\n\n### User Commands\n- `GetCurrentUserCommand` - Получить текущего пользователя\n- `UpdateCurrentUserCommand` - Обновить профиль\n- `ChangePasswordCommand` - Сменить пароль\n\n### Admin Commands\n- `AdminGetUsersCommand` - Список пользователей\n- `AdminCreateUserCommand` - Создать пользователя\n- `AdminGetServicesCommand` - Список услуг\n- `AdminGetServersCommand` - Список серверов\n- `AdminGetSpoolCommand` - Список задач\n- и другие...\n\n## Разработка\n\n```bash\n# Установка зависимостей\nnpm install\n\n# Сборка\nnpm run build\n\n# Watch mode\nnpm run dev\n```\n\n## Лицензия\n\nMIT\n","readmeFilename":"README.md"}