hh-contracts 0.0.98 → 0.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ResolveTenantContract = void 0;
37
+ const z = __importStar(require("zod"));
4
38
  const common_1 = require("../../common");
5
39
  const tenants_api_1 = require("../tenants.api");
6
40
  const tenant_model_1 = require("../tenant.model");
@@ -13,10 +47,10 @@ const ResolveTenantResponseSchema = tenant_model_1.TenantPersistedSchema.omit({
13
47
  }).extend({
14
48
  ...hotels_1.HotelPersistedSchema.pick({
15
49
  slug: true,
16
- hasServices: true,
17
50
  defaultLang: true,
18
51
  availableLangs: true,
19
52
  }).shape,
53
+ hasServices: z.boolean(),
20
54
  canonical: tenant_model_1.CanonicalSchema.nullable().optional(),
21
55
  });
22
56
  var ResolveTenantContract;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hh-contracts",
3
- "version": "0.0.98",
3
+ "version": "0.0.100",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -12,10 +12,10 @@ const ResolveTenantResponseSchema = TenantPersistedSchema.omit({
12
12
  }).extend({
13
13
  ...HotelPersistedSchema.pick({
14
14
  slug: true,
15
- hasServices: true,
16
15
  defaultLang: true,
17
16
  availableLangs: true,
18
17
  }).shape,
18
+ hasServices: z.boolean(),
19
19
  canonical: CanonicalSchema.nullable().optional(),
20
20
  });
21
21
 
package/AGENTS.md DELETED
@@ -1,71 +0,0 @@
1
- AGENTS.md — инструкции для Codex/LLM-агентов
2
-
3
- ## 1. Контекст проекта
4
-
5
- `hh-contracts` — типизированное ядро контрактов для всей платформы управления отелями. Репозиторий публикуется как npm‑пакет и содержит только исходные типы/схемы (`*.ts`) и скомпилированный артефакт в `build/`. Любые изменения в доменных сервисах должны начинаться здесь.
6
-
7
- ### Основные каталоги
8
-
9
- - `common/` — общие константы, вспомогательные схемы и утилиты. Использовать их при любой возможности вместо дублирования.
10
- - `*/contracts/` — файловая зона для REST/gRPC/WebSocket контрактов конкретного домена (roles, permissions, tenants и т. д.).
11
- - `*/index.ts` — публичные реэкспорты. Добавляя новый файл, обязательно обновляйте соответствующий `index.ts`.
12
- - `build/` — артефакты TypeScript‑компиляции. **Не редактировать вручную.**
13
-
14
- ## 2. Роли агентов
15
-
16
- - **Contracts Agent** — отвечает за модели и схемы. Любая доработка (добавление сущности, изменение поля, экспорт типов) выполняется через него.
17
- - Если создаётся новый тип агента, описать его в этом файле и зафиксировать правила в разделе 5.
18
-
19
- ## 3. Правила разработки
20
-
21
- 1. **Single Source of Truth**. Типы, перечисления, схемы валидируются и объявляются здесь. Копирование структур из других сервисов запрещено.
22
- 2. **Zod v4.** Использовать только `zod@^4`. Схемы пишем декларативно, избегая `any`. Для произвольных словарей применять `z.record` с ограничениями.
23
- 3. **Строгая типизация.** `tsconfig.json` находится в strict‑режиме. Новые файлы не должны снижать строгие настройки.
24
- 4. **Именование:**
25
- - Файлы схем — `*.schema.ts` или `*.contract.ts` в зависимости от назначения.
26
- - Типы, полученные из схем, объявлять через `export type TSome = z.infer<typeof SomeSchema>;`.
27
- - Enum‑образные наборы значений хранить в `common/constants`, экспортировать через `as const` и соответствующий `z.enum`.
28
- 5. **Повторное использование:** сначала ищите подходящую схему в `common/models` и `common/constants`. При необходимости расширяйте через `.extend(...)` или `.merge(...)`.
29
- 6. **Версионирование:** после любых изменений обновляйте `package.json` вручную только по согласованию. Как минимум фиксируйте запись в Changelog (см. раздел 6).
30
- 7. **Документация контрактов:** не нужно составлять документацию контрактов.
31
- 8. **Переводы:** схемы переводов для сущностей хранятся рядом со схемами сущностей. `translate/` — эндпоинт для переводов. умеет работать как с отдельными строками, так и с полными наборами переводов для сущности. в случшае добавления сущности с переводами нужно обновить TranslateObjectContract - `translate/contracts/translate-object.contract.ts`
32
- 9. **Не оставляйте TODO** без описания задачи. Используйте формат `// TODO(#issue-id): описание`.
33
-
34
- ## 4. Рабочий процесс для задач
35
-
36
- 1. **Анализ**
37
- - Изучите существующие схемы домена.
38
- - Определите, какие общие константы/типажи можно переиспользовать.
39
- 2. **Дизайн**
40
- - При сложных задачах сначала предложите структуру (таблица полей, связи, вариативность).
41
- - Согласуйте новые enum/константы и ключи переводов.
42
- 3. **Реализация**
43
- - Создайте/обновите схемы, типы, константы и индексы.
44
- - Проверьте, что экспорты доступны из корня пакета (`index.ts`).
45
- 4. **Проверка**
46
- - Выполните `npm run build` перед коммитом.
47
- - Убедитесь, что сгенерированный `build/` совпадает с ожиданиями (git diff должен показывать изменения только при добавлении новых файлов/типов).
48
- 5. **Ответ**
49
- - В финальном сообщении используйте структуру Summary + Testing.
50
- - Каждое тестовое действие сопровождайте командой и результатом.
51
-
52
- ## 5. Требования к коду
53
-
54
- - Отсутствие магических строк: используйте константы.
55
- - Для дат и меток времени используйте `TimestampSchema`.
56
- - Обязательные поля явно помечать `z.string()` и т. п.; опциональные — через `.optional()` или `z.nullable()`.
57
- - Для массивов всегда задавайте схему элементов (`z.array(SomeSchema)`).
58
- - Если поле может принимать несколько форматов, используйте `z.union` с понятными вариантами.
59
- - Обязательный минимум тестового покрытия — пример использования схемы в виде объектной литералы или демо‑валидации в комментарии.
60
-
61
- ## 6. Чек-лист перед PR
62
-
63
- - [ ] Все новые сущности экспортируются из соответствующего `index.ts`.
64
- - [ ] Нет изменений в `build/` (если только намеренно не обновляли после `npm run build`).
65
- - [ ] Запущен `npm run build` без ошибок.
66
- - [ ] Changelog дополнен.
67
-
68
- ## 7. Changelog
69
-
70
- - 1.1 — актуализированы инструкции, добавлены требования к структуре ответов и чек-лист перед PR.
71
- - 1.0 — первоначальная версия каркаса.
package/CHANGELOG.md DELETED
@@ -1,5 +0,0 @@
1
- # Changelog
2
-
3
- ## Unreleased
4
- - Расширены модели интеграций отелей: добавлены схемы маршрутизации, состояния подключений и статусы учётных данных для поддержки брокерного обмена.
5
- - Контракт поиска интеграций переименован в `findAll`, запрос теперь поддерживает только фильтр по `alias` без пагинации.
package/TODO.md DELETED
@@ -1 +0,0 @@
1
- Вернуться в схему бд для permission и понять что лучше jsom или jsonb