@cabstar/protocol (0.1.5)

Published 2026-06-06 16:27:05 +03:00 by anton

Installation

@cabstar:registry=
npm install @cabstar/protocol@0.1.5
"@cabstar/protocol": "0.1.5"

About this package

@cabstar/protocol

Общие DTO и типы для общения клиентов с Cabstar API.

Используется в cabstar-api, cabstar-web и будущих клиентах (mobile, ws).

Установка

Из монорепозитория (локально):

npm install file:../cabstar-protocol

Из registry:

npm install @cabstar/protocol

Сборка

npm run build

Публикация в npm registry

Пакет публикуется в packages.

Перед первым пушем авторизуйся:

npm login --registry=https://git.serverbox.dev/api/packages/anton/npm/

Или скопируй .npmrc.example.npmrc и укажи токен.

Публикация:

npm run npm:push

Структура

src/
├── auth/           # LoginRequest, LoginResponse, UserDto
├── assets/         # AssetDto, VehicleTypesResponse (v0.1)
├── car-types/      # CarTypeDto, CreateCarTypeRequest
├── tenants/        # TenantDto — вид бизнеса (taxi, yacht_rental, car_rental)
├── service-modes/  # ServiceModeDto — способ оказания (trip, stroll, rental)
├── service-levels/      # ServiceLevelDto — уровень сервиса (economy, premium, vip)
├── operator-memberships/ # OperatorMembershipDto — участие user в tenant (driver/captain)
├── rental-assets/  # RentalAssetDto — физический флот (авто/яхта)
├── rental-rates/   # RentalRateDto — тарифы аренды за период
├── app/            # AppInfoResponse
├── health/         # HealthResponse
├── locales/        # LocalesResponse
└── common/         # SupportedLocale, ApiErrorResponse

tenant определяет бизнес-линию сервиса. Конфигурация (assets) — полная комбинация из пяти измерений: tenant + service mode + service level + car type + seats. Tenant-specific правила валидации — отдельная задача.

operator-memberships связывает пользователя с тенантом как водитель (driver) или капитан (captain). Один пользователь может участвовать в нескольких тенантах. Поле operatorMemberships в UserDto — для профиля (/auth/me).

rental-assets — конкретные автомобили и яхты в аренде (kind: car | yacht). rental-rates — несколько тарифов на единицу (сумма + unit: hour/day/week/month). Отдельно от assets (абстрактные конфигурации такси).

Пример

import type {
  LoginRequest,
  LoginResponse,
  VehicleTypesResponse,
} from '@cabstar/protocol';

const credentials: LoginRequest = {
  email: 'admin@cabstar.local',
  password: 'admin123',
};

const assets: VehicleTypesResponse = await fetch('/api/v0.1/assets').then(
  (response) => response.json(),
);

Версионирование

Константы базового пути:

import { API_VERSION, API_BASE_PATH } from '@cabstar/protocol';

// API_VERSION === '0.1'
// API_BASE_PATH === 'api/v0.1'

Все клиенты должны обращаться к http://<host>/${API_BASE_PATH}/....

Dependencies

Development dependencies

ID Version
typescript ^5.7.3
Details
npm
2026-06-06 16:27:05 +03:00
1
UNLICENSED
10 KiB
Assets (1)
Versions (8) View all
0.3.2 2026-06-06
0.3.1 2026-06-06
0.3.0 2026-06-06
0.2.0 2026-06-06
0.1.6 2026-06-06