@escapenavigator/types 2.1.17 → 2.1.19
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.
- package/dist/forms/widget/widget-client-form.dto.js +1 -2
- package/dist/integrations/admin-integration.ro.d.ts +14 -0
- package/dist/integrations/connect-integration.dto.d.ts +5 -0
- package/dist/integrations/connect-integration.dto.js +6 -0
- package/dist/integrations/crm-integration-status.ro.d.ts +12 -0
- package/dist/openapi/order-groups/openapi-batch-create-preorder.dto.d.ts +1 -1
- package/dist/openapi/order-groups/openapi-batch-create-preorder.dto.js +1 -1
- package/dist/openapi/orders/openapi-create-preorder.dto.d.ts +1 -1
- package/dist/openapi/widget/openapi-widget-info.ro.d.ts +4 -0
- package/dist/openapi/widget/openapi-widget-info.ro.js +4 -0
- package/dist/promocode/create-promocode.dto.js +6 -0
- package/dist/questroom/create-questroom.dto.js +2 -2
- package/dist/shared/weekday-indexes.d.ts +6 -0
- package/dist/shared/weekday-indexes.js +16 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -86,8 +86,7 @@ __decorate([
|
|
|
86
86
|
__metadata("design:type", String)
|
|
87
87
|
], WidgetClientFormDto.prototype, "companyName", void 0);
|
|
88
88
|
__decorate([
|
|
89
|
-
(0, class_validator_1.
|
|
90
|
-
(0, is_not_blank_1.IsNotBlank)(),
|
|
89
|
+
(0, class_validator_1.IsOptional)(),
|
|
91
90
|
(0, class_transformer_1.Expose)(),
|
|
92
91
|
__metadata("design:type", String)
|
|
93
92
|
], WidgetClientFormDto.prototype, "companyTaxId", void 0);
|
|
@@ -82,15 +82,29 @@ export type AdminIntegrationResourceRow = {
|
|
|
82
82
|
matchConfidence: number | null;
|
|
83
83
|
lastSeenAt: string | null;
|
|
84
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Поле доступа в карточке: значение целиком не отдаём.
|
|
87
|
+
* Для URL — хост и путь без query (там часто лежит ключ), для секрета — хвост.
|
|
88
|
+
*/
|
|
89
|
+
export type AdminCredentialPreview = {
|
|
90
|
+
key: string;
|
|
91
|
+
kind: 'url' | 'secret' | 'text';
|
|
92
|
+
preview: string;
|
|
93
|
+
};
|
|
85
94
|
/** Карточка подключения: всё, что нужно для разговора с квестом. */
|
|
86
95
|
export type AdminIntegrationConnection = AdminIntegrationConnectionRow & {
|
|
87
96
|
/** Какие поля доступа заполнены. Значения не отдаются никогда. */
|
|
88
97
|
credentialsFilled: string[];
|
|
98
|
+
/** Ссылки и прочие доступы в безопасном виде — чтобы видеть, что именно подключено. */
|
|
99
|
+
credentialPreviews: AdminCredentialPreview[];
|
|
89
100
|
settings: Record<string, unknown>;
|
|
90
101
|
createdAt: string;
|
|
91
102
|
lastSuccessAt: string | null;
|
|
92
103
|
lastVerifiedAt: string | null;
|
|
93
104
|
breakerOpenUntil: string | null;
|
|
105
|
+
verifyError: string | null;
|
|
106
|
+
adminComment: string | null;
|
|
107
|
+
selfServed: boolean;
|
|
94
108
|
resourceRows: AdminIntegrationResourceRow[];
|
|
95
109
|
incidents: AdminIntegrationIncidentRow[];
|
|
96
110
|
runs: AdminIntegrationRunRow[];
|
|
@@ -23,6 +23,11 @@ export declare class ConnectIntegrationDto {
|
|
|
23
23
|
* указания второй адрес затёр бы уже настроенную комнату.
|
|
24
24
|
*/
|
|
25
25
|
questroomId?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Существующее подключение при редактировании. Без него повторный ввод
|
|
28
|
+
* ищет «ту же систему» по провайдеру или комнате и может создать второе.
|
|
29
|
+
*/
|
|
30
|
+
connectionId?: number;
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
28
33
|
* Подтверждение соответствия комнаты. `questroomId: null` означает «такой
|
|
@@ -41,6 +41,12 @@ __decorate([
|
|
|
41
41
|
(0, class_validator_1.Min)(1),
|
|
42
42
|
__metadata("design:type", Number)
|
|
43
43
|
], ConnectIntegrationDto.prototype, "questroomId", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.IsInt)(),
|
|
47
|
+
(0, class_validator_1.Min)(1),
|
|
48
|
+
__metadata("design:type", Number)
|
|
49
|
+
], ConnectIntegrationDto.prototype, "connectionId", void 0);
|
|
44
50
|
/**
|
|
45
51
|
* Подтверждение соответствия комнаты. `questroomId: null` означает «такой
|
|
46
52
|
* комнаты у меня нет» — она перестаёт предлагаться и в каталог не идёт.
|
|
@@ -81,3 +81,15 @@ export type CrmIntegrationStatus = {
|
|
|
81
81
|
/** С какого момента проблема, если она есть. */
|
|
82
82
|
problemSince: string | null;
|
|
83
83
|
};
|
|
84
|
+
/**
|
|
85
|
+
* Данные для формы редактирования. Владелец видит свои же ссылки — иначе
|
|
86
|
+
* мастер открывается пустым, и кажется, что подключение стёрлось.
|
|
87
|
+
*/
|
|
88
|
+
export type CrmIntegrationConnectionEdit = {
|
|
89
|
+
connectionId: number;
|
|
90
|
+
providerCode: IntegrationProviderCodeEnum;
|
|
91
|
+
title: string;
|
|
92
|
+
questroomId: number | null;
|
|
93
|
+
credentials: Record<string, string>;
|
|
94
|
+
settings: Record<string, unknown>;
|
|
95
|
+
};
|
|
@@ -14,7 +14,7 @@ import { OpenapiCreatePreorderDto } from '../orders/openapi-create-preorder.dto'
|
|
|
14
14
|
* ни одного ордера не осталось.
|
|
15
15
|
*
|
|
16
16
|
* Ограничения:
|
|
17
|
-
* • `items.length` в [2,
|
|
17
|
+
* • `items.length` в [2, ORDER_GROUP_SIZE_LIMIT] — одиночный preorder идёт через
|
|
18
18
|
* POST /openapi/orders/preorder (там нет смысла создавать группу);
|
|
19
19
|
* верхний лимит — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
|
|
20
20
|
* • Все items должны иметь идентичные client-fields (name/phone/email/...).
|
|
@@ -28,7 +28,7 @@ const openapi_create_preorder_dto_1 = require("../orders/openapi-create-preorder
|
|
|
28
28
|
* ни одного ордера не осталось.
|
|
29
29
|
*
|
|
30
30
|
* Ограничения:
|
|
31
|
-
* • `items.length` в [2,
|
|
31
|
+
* • `items.length` в [2, ORDER_GROUP_SIZE_LIMIT] — одиночный preorder идёт через
|
|
32
32
|
* POST /openapi/orders/preorder (там нет смысла создавать группу);
|
|
33
33
|
* верхний лимит — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
|
|
34
34
|
* • Все items должны иметь идентичные client-fields (name/phone/email/...).
|
|
@@ -19,7 +19,7 @@ export declare class OpenapiCreatePreorderDto extends ClientFormDto {
|
|
|
19
19
|
* непустой массив, бэкенд создаёт OrderGroupEntity (если её ещё нет)
|
|
20
20
|
* и привязывает все указанные ордеры + только что созданный к группе.
|
|
21
21
|
* Используется для оплаты нескольких игр одной транзакцией. Лимит
|
|
22
|
-
* группы —
|
|
22
|
+
* группы — `OrderGroupService.ORDER_GROUP_SIZE_LIMIT`.
|
|
23
23
|
*/
|
|
24
24
|
attachToOrderTokens?: string[];
|
|
25
25
|
players: number;
|
|
@@ -50,6 +50,10 @@ declare class Profile {
|
|
|
50
50
|
availableLanguages: Languages[];
|
|
51
51
|
language: Languages;
|
|
52
52
|
widgetChatEnabled: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Moloni / InvoiceXpress настроены — виджет показывает «Fatura com NIF».
|
|
55
|
+
*/
|
|
56
|
+
fiscalReady?: boolean;
|
|
53
57
|
currency?: ProfileCurrencyEnum;
|
|
54
58
|
}
|
|
55
59
|
export declare class OpenapiWidgetInfoRO {
|
|
@@ -140,6 +140,10 @@ __decorate([
|
|
|
140
140
|
(0, class_transformer_1.Expose)(),
|
|
141
141
|
__metadata("design:type", Boolean)
|
|
142
142
|
], Profile.prototype, "widgetChatEnabled", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, class_transformer_1.Expose)(),
|
|
145
|
+
__metadata("design:type", Boolean)
|
|
146
|
+
], Profile.prototype, "fiscalReady", void 0);
|
|
143
147
|
__decorate([
|
|
144
148
|
(0, class_transformer_1.Expose)(),
|
|
145
149
|
(0, class_transformer_1.Transform)((data) => { var _a; return currency_by_country_1.currencyByCountry[(_a = data === null || data === void 0 ? void 0 : data.obj) === null || _a === void 0 ? void 0 : _a.country]; }),
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.CreatePromocodeDto = exports.PromocodeNominalRuleDto = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
|
+
const weekday_indexes_1 = require("../shared/weekday-indexes");
|
|
15
16
|
const promocode_certificate_mode_enum_1 = require("./emun/promocode-certificate-mode.enum");
|
|
16
17
|
const promocode_kind_enum_1 = require("./emun/promocode-kind.enum");
|
|
17
18
|
const promocode_type_enum_1 = require("./emun/promocode-type.enum");
|
|
@@ -172,6 +173,11 @@ __decorate([
|
|
|
172
173
|
], CreatePromocodeDto.prototype, "availableTo", void 0);
|
|
173
174
|
__decorate([
|
|
174
175
|
(0, class_validator_1.IsOptional)(),
|
|
176
|
+
(0, class_validator_1.IsArray)(),
|
|
177
|
+
(0, class_validator_1.IsInt)({ each: true }),
|
|
178
|
+
(0, class_validator_1.Min)(0, { each: true }),
|
|
179
|
+
(0, class_validator_1.Max)(6, { each: true }),
|
|
180
|
+
(0, class_transformer_1.Transform)(({ value }) => (value == null ? value : (0, weekday_indexes_1.toWeekdayIndexes)(value))),
|
|
175
181
|
(0, class_transformer_1.Expose)(),
|
|
176
182
|
__metadata("design:type", Array)
|
|
177
183
|
], CreatePromocodeDto.prototype, "availableDays", void 0);
|
|
@@ -45,7 +45,7 @@ __decorate([
|
|
|
45
45
|
__decorate([
|
|
46
46
|
(0, class_validator_1.IsOptional)(),
|
|
47
47
|
(0, class_transformer_1.Expose)(),
|
|
48
|
-
(0, class_validator_1.MaxLength)(
|
|
48
|
+
(0, class_validator_1.MaxLength)(3000),
|
|
49
49
|
__metadata("design:type", String)
|
|
50
50
|
], Locale.prototype, "importantInfo", void 0);
|
|
51
51
|
__decorate([
|
|
@@ -294,7 +294,7 @@ __decorate([
|
|
|
294
294
|
__decorate([
|
|
295
295
|
(0, class_validator_1.IsOptional)(),
|
|
296
296
|
(0, class_transformer_1.Expose)(),
|
|
297
|
-
(0, class_validator_1.MaxLength)(
|
|
297
|
+
(0, class_validator_1.MaxLength)(3000),
|
|
298
298
|
__metadata("design:type", String)
|
|
299
299
|
], CreateQuestroomDto.prototype, "importantInfo", void 0);
|
|
300
300
|
__decorate([
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0 — пн … 6 — вс. `DaysOfWeek` ещё умеет писать `holiday` / `eve`,
|
|
3
|
+
* но в integer[] (промокоды, пакеты, апселлы) эти ключи класть нельзя:
|
|
4
|
+
* Postgres падает с `invalid input syntax for type integer`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const toWeekdayIndexes: (value: unknown) => number[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toWeekdayIndexes = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* 0 — пн … 6 — вс. `DaysOfWeek` ещё умеет писать `holiday` / `eve`,
|
|
6
|
+
* но в integer[] (промокоды, пакеты, апселлы) эти ключи класть нельзя:
|
|
7
|
+
* Postgres падает с `invalid input syntax for type integer`.
|
|
8
|
+
*/
|
|
9
|
+
const toWeekdayIndexes = (value) => {
|
|
10
|
+
if (!Array.isArray(value))
|
|
11
|
+
return [];
|
|
12
|
+
return value
|
|
13
|
+
.map((day) => Number(day))
|
|
14
|
+
.filter((day) => Number.isInteger(day) && day >= 0 && day <= 6);
|
|
15
|
+
};
|
|
16
|
+
exports.toWeekdayIndexes = toWeekdayIndexes;
|