@escapenavigator/types 1.10.168 → 2.0.2
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/dashboard-calendar/dashboard-calendar-markers.dto.d.ts +10 -0
- package/dist/dashboard-calendar/dashboard-calendar-markers.dto.js +37 -0
- package/dist/dashboard-calendar/dashboard-calendar-markers.ro.d.ts +16 -0
- package/dist/dashboard-calendar/dashboard-calendar-markers.ro.js +2 -0
- package/dist/dashboard-calendar/dashboard-calendar.enum.d.ts +18 -0
- package/dist/dashboard-calendar/dashboard-calendar.enum.js +23 -0
- package/dist/questroom/questroom-ai-context.d.ts +1 -0
- package/dist/shared/success.ro.d.ts +2 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/widget-chat/widget-chat-conversation.ro.d.ts +1 -0
- package/dist/widget-chat/widget-chat-identify.dto.d.ts +1 -0
- package/dist/widget-chat/widget-chat-identify.dto.js +6 -0
- package/dist/widget-funnel/widget-funnel-dimension.d.ts +44 -0
- package/dist/widget-funnel/widget-funnel-dimension.js +113 -0
- package/dist/widget-funnel/widget-funnel-step.enum.d.ts +12 -0
- package/dist/widget-funnel/widget-funnel-step.enum.js +16 -1
- package/dist/widget-funnel/widget-funnel.ro.d.ts +86 -1
- package/package.json +2 -2
|
@@ -31,3 +31,9 @@ __decorate([
|
|
|
31
31
|
(0, class_transformer_1.Expose)(),
|
|
32
32
|
__metadata("design:type", String)
|
|
33
33
|
], WidgetChatIdentifyDto.prototype, "email", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.IsString)(),
|
|
36
|
+
(0, class_validator_1.IsOptional)(),
|
|
37
|
+
(0, class_transformer_1.Expose)(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], WidgetChatIdentifyDto.prototype, "phone", void 0);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { WidgetFunnelKindEnum } from './widget-funnel-kind.enum';
|
|
2
|
+
import { WidgetFunnelStepEnum } from './widget-funnel-step.enum';
|
|
3
|
+
/**
|
|
4
|
+
* Реестр «измерений» (dimensions) воронки — параметров шага, по которым
|
|
5
|
+
* мы режем конверсию (например: сколько доп.услуг предложено на шаге
|
|
6
|
+
* выбора игроков). ЕДИНЫЙ источник правды:
|
|
7
|
+
* • бэк (`rollupDay`) использует `bucketize`, чтобы сгруппировать сырое
|
|
8
|
+
* значение `meta[metaKey]` в низко-кардинальный бакет;
|
|
9
|
+
* • фронт админки использует `label` / `buckets[].label` для отрисовки.
|
|
10
|
+
*
|
|
11
|
+
* Значение измерения кладётся виджетом в `meta` события того шага, где
|
|
12
|
+
* параметр уже известен (см. funnelTracker.track(kind, step, meta)).
|
|
13
|
+
* Бакетирование делаем на бэке, чтобы менять границы без передеплоя
|
|
14
|
+
* embed-виджета.
|
|
15
|
+
*/
|
|
16
|
+
export type WidgetFunnelDimensionBucket = {
|
|
17
|
+
/** Канонический ключ бакета (хранится в БД, стабилен). */
|
|
18
|
+
value: string;
|
|
19
|
+
/** Подпись для админ-UI. */
|
|
20
|
+
label: string;
|
|
21
|
+
};
|
|
22
|
+
export type WidgetFunnelDimensionDef = {
|
|
23
|
+
/** Стабильный id измерения (ключ в dim-кэше). */
|
|
24
|
+
id: string;
|
|
25
|
+
kind: WidgetFunnelKindEnum;
|
|
26
|
+
/** Шаг, на котором параметр известен и берётся из meta. */
|
|
27
|
+
step: WidgetFunnelStepEnum;
|
|
28
|
+
/** Ключ в объекте meta события этого шага. */
|
|
29
|
+
metaKey: string;
|
|
30
|
+
/** Заголовок измерения для UI. */
|
|
31
|
+
label: string;
|
|
32
|
+
/** Упорядоченный список бакетов (порядок = порядок отрисовки). */
|
|
33
|
+
buckets: WidgetFunnelDimensionBucket[];
|
|
34
|
+
/** Сырое значение meta → ключ бакета (или null = пропустить сессию). */
|
|
35
|
+
bucketize: (raw: unknown) => string | null;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Все измерения. Сейчас покрыта booking-воронка (три шага из примеров +
|
|
39
|
+
* близкие параметры оплаты). Сертификатная воронка добавляется сюда же
|
|
40
|
+
* по мере появления эмиссии meta на её шагах.
|
|
41
|
+
*/
|
|
42
|
+
export declare const WIDGET_FUNNEL_DIMENSIONS: WidgetFunnelDimensionDef[];
|
|
43
|
+
/** Измерения, привязанные к конкретному виду воронки. */
|
|
44
|
+
export declare const getDimensionsForKind: (kind: WidgetFunnelKindEnum) => WidgetFunnelDimensionDef[];
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDimensionsForKind = exports.WIDGET_FUNNEL_DIMENSIONS = void 0;
|
|
4
|
+
const widget_funnel_kind_enum_1 = require("./widget-funnel-kind.enum");
|
|
5
|
+
const widget_funnel_step_enum_1 = require("./widget-funnel-step.enum");
|
|
6
|
+
/** Бакетер чисел по списку правил «первое подходящее». */
|
|
7
|
+
const numberBucketizer = (rules) => (raw) => {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const n = typeof raw === 'number' ? raw : Number(raw);
|
|
10
|
+
if (!Number.isFinite(n))
|
|
11
|
+
return null;
|
|
12
|
+
return (_b = (_a = rules.find((r) => r.test(n))) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
13
|
+
};
|
|
14
|
+
/** Бакетер булева флага (принимает boolean ИЛИ 'true'/'false'). */
|
|
15
|
+
const boolBucketizer = (raw) => {
|
|
16
|
+
if (typeof raw === 'boolean')
|
|
17
|
+
return raw ? 'yes' : 'no';
|
|
18
|
+
if (raw === 'true' || raw === 'false')
|
|
19
|
+
return raw === 'true' ? 'yes' : 'no';
|
|
20
|
+
return null;
|
|
21
|
+
};
|
|
22
|
+
const YES_NO_BUCKETS = [
|
|
23
|
+
{ value: 'yes', label: 'Есть' },
|
|
24
|
+
{ value: 'no', label: 'Нет' },
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Все измерения. Сейчас покрыта booking-воронка (три шага из примеров +
|
|
28
|
+
* близкие параметры оплаты). Сертификатная воронка добавляется сюда же
|
|
29
|
+
* по мере появления эмиссии meta на её шагах.
|
|
30
|
+
*/
|
|
31
|
+
exports.WIDGET_FUNNEL_DIMENSIONS = [
|
|
32
|
+
{
|
|
33
|
+
id: 'upsellsOffered',
|
|
34
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
35
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.PLAYERS_STEP,
|
|
36
|
+
metaKey: 'upsellsOffered',
|
|
37
|
+
label: 'Доп. услуги предложено',
|
|
38
|
+
buckets: [
|
|
39
|
+
{ value: 'none', label: 'Нет доп. услуг' },
|
|
40
|
+
{ value: '1-3', label: '1–3 услуги' },
|
|
41
|
+
{ value: '3+', label: 'Больше трёх' },
|
|
42
|
+
],
|
|
43
|
+
bucketize: numberBucketizer([
|
|
44
|
+
{ test: (n) => n <= 0, value: 'none' },
|
|
45
|
+
{ test: (n) => n <= 3, value: '1-3' },
|
|
46
|
+
{ test: () => true, value: '3+' },
|
|
47
|
+
]),
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 'seatsUrgency',
|
|
51
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
52
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.PLAYERS_STEP,
|
|
53
|
+
metaKey: 'seatsUrgency',
|
|
54
|
+
label: 'Показана срочность («осталось N мест»)',
|
|
55
|
+
buckets: YES_NO_BUCKETS,
|
|
56
|
+
bucketize: boolBucketizer,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'clientFieldsCount',
|
|
60
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
61
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.CLIENT_STEP,
|
|
62
|
+
metaKey: 'clientFieldsCount',
|
|
63
|
+
label: 'Полей в форме контактов',
|
|
64
|
+
buckets: [
|
|
65
|
+
{ value: '0-3', label: '≤ 3 поля' },
|
|
66
|
+
{ value: '4-6', label: '4–6 полей' },
|
|
67
|
+
{ value: '6+', label: '> 6 полей' },
|
|
68
|
+
],
|
|
69
|
+
bucketize: numberBucketizer([
|
|
70
|
+
{ test: (n) => n <= 3, value: '0-3' },
|
|
71
|
+
{ test: (n) => n <= 6, value: '4-6' },
|
|
72
|
+
{ test: () => true, value: '6+' },
|
|
73
|
+
]),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'payWithoutPayment',
|
|
77
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
78
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.PAYMENT_STEP,
|
|
79
|
+
metaKey: 'payWithoutPayment',
|
|
80
|
+
label: 'Доступно «записаться без оплаты»',
|
|
81
|
+
buckets: YES_NO_BUCKETS,
|
|
82
|
+
bucketize: boolBucketizer,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: 'paymentMethodsCount',
|
|
86
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
87
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.PAYMENT_STEP,
|
|
88
|
+
metaKey: 'paymentMethodsCount',
|
|
89
|
+
label: 'Способов оплаты',
|
|
90
|
+
buckets: [
|
|
91
|
+
{ value: '1', label: '1 способ' },
|
|
92
|
+
{ value: '2', label: '2 способа' },
|
|
93
|
+
{ value: '3+', label: '3 и более' },
|
|
94
|
+
],
|
|
95
|
+
bucketize: numberBucketizer([
|
|
96
|
+
{ test: (n) => n <= 1, value: '1' },
|
|
97
|
+
{ test: (n) => n === 2, value: '2' },
|
|
98
|
+
{ test: () => true, value: '3+' },
|
|
99
|
+
]),
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'prepaymentAvailable',
|
|
103
|
+
kind: widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING,
|
|
104
|
+
step: widget_funnel_step_enum_1.WidgetFunnelStepEnum.PAYMENT_STEP,
|
|
105
|
+
metaKey: 'prepaymentAvailable',
|
|
106
|
+
label: 'Доступна предоплата (half)',
|
|
107
|
+
buckets: YES_NO_BUCKETS,
|
|
108
|
+
bucketize: boolBucketizer,
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
/** Измерения, привязанные к конкретному виду воронки. */
|
|
112
|
+
const getDimensionsForKind = (kind) => exports.WIDGET_FUNNEL_DIMENSIONS.filter((d) => d.kind === kind);
|
|
113
|
+
exports.getDimensionsForKind = getDimensionsForKind;
|
|
@@ -41,5 +41,17 @@ export declare enum WidgetFunnelStepEnum {
|
|
|
41
41
|
* воронки сверху вниз). ЕДИНЫЙ источник правды о порядке.
|
|
42
42
|
*/
|
|
43
43
|
export declare const WIDGET_FUNNEL_STEP_ORDER: Record<WidgetFunnelKindEnum, WidgetFunnelStepEnum[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Шаг, с которого считается сквозная конверсия воронки (`overallConversion`).
|
|
46
|
+
* НЕ обязательно первый шаг: для booking расписание (`SCHEDULE_VIEW`) висит
|
|
47
|
+
* на сайтах и рендерится при каждом заходе на страницу, поэтому считать
|
|
48
|
+
* конверсию от показа — значит делить на «весь трафик сайта», а не на тех,
|
|
49
|
+
* кто реально вошёл в воронку. За точку входа берём первый осознанный шаг —
|
|
50
|
+
* клик по слоту. Показ при этом остаётся в воронке как awareness-ступень.
|
|
51
|
+
*
|
|
52
|
+
* Для certificate каталог открывается по действию пользователя, поэтому
|
|
53
|
+
* точка входа = первый шаг.
|
|
54
|
+
*/
|
|
55
|
+
export declare const WIDGET_FUNNEL_ENTRY_STEP: Record<WidgetFunnelKindEnum, WidgetFunnelStepEnum>;
|
|
44
56
|
/** Человекочитаемые подписи шагов для админ-UI. */
|
|
45
57
|
export declare const WIDGET_FUNNEL_STEP_LABELS: Record<WidgetFunnelStepEnum, string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WIDGET_FUNNEL_STEP_LABELS = exports.WIDGET_FUNNEL_STEP_ORDER = exports.WidgetFunnelStepEnum = void 0;
|
|
3
|
+
exports.WIDGET_FUNNEL_STEP_LABELS = exports.WIDGET_FUNNEL_ENTRY_STEP = exports.WIDGET_FUNNEL_STEP_ORDER = exports.WidgetFunnelStepEnum = void 0;
|
|
4
4
|
const widget_funnel_kind_enum_1 = require("./widget-funnel-kind.enum");
|
|
5
5
|
/**
|
|
6
6
|
* Канонические шаги воронок виджета. Один общий enum на обе воронки —
|
|
@@ -65,6 +65,21 @@ exports.WIDGET_FUNNEL_STEP_ORDER = {
|
|
|
65
65
|
WidgetFunnelStepEnum.CERT_PURCHASE,
|
|
66
66
|
],
|
|
67
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* Шаг, с которого считается сквозная конверсия воронки (`overallConversion`).
|
|
70
|
+
* НЕ обязательно первый шаг: для booking расписание (`SCHEDULE_VIEW`) висит
|
|
71
|
+
* на сайтах и рендерится при каждом заходе на страницу, поэтому считать
|
|
72
|
+
* конверсию от показа — значит делить на «весь трафик сайта», а не на тех,
|
|
73
|
+
* кто реально вошёл в воронку. За точку входа берём первый осознанный шаг —
|
|
74
|
+
* клик по слоту. Показ при этом остаётся в воронке как awareness-ступень.
|
|
75
|
+
*
|
|
76
|
+
* Для certificate каталог открывается по действию пользователя, поэтому
|
|
77
|
+
* точка входа = первый шаг.
|
|
78
|
+
*/
|
|
79
|
+
exports.WIDGET_FUNNEL_ENTRY_STEP = {
|
|
80
|
+
[widget_funnel_kind_enum_1.WidgetFunnelKindEnum.BOOKING]: WidgetFunnelStepEnum.SLOT_CLICK,
|
|
81
|
+
[widget_funnel_kind_enum_1.WidgetFunnelKindEnum.CERTIFICATE]: WidgetFunnelStepEnum.CERT_CATALOG_VIEW,
|
|
82
|
+
};
|
|
68
83
|
/** Человекочитаемые подписи шагов для админ-UI. */
|
|
69
84
|
exports.WIDGET_FUNNEL_STEP_LABELS = {
|
|
70
85
|
[WidgetFunnelStepEnum.SCHEDULE_VIEW]: 'Показ расписания',
|
|
@@ -14,6 +14,37 @@ export type WidgetFunnelStepRO = {
|
|
|
14
14
|
/** P90 stepConversion по компаниям — только в cross-company. */
|
|
15
15
|
benchmarkP90?: number | null;
|
|
16
16
|
};
|
|
17
|
+
/** Один бакет измерения с локальной и сквозной конверсией. */
|
|
18
|
+
export type WidgetFunnelDimensionBucketRO = {
|
|
19
|
+
/** Канонический ключ бакета (см. реестр измерений). */
|
|
20
|
+
value: string;
|
|
21
|
+
/** Подпись бакета для UI. */
|
|
22
|
+
label: string;
|
|
23
|
+
/** Сессий на шаге измерения с этим значением. */
|
|
24
|
+
sessions: number;
|
|
25
|
+
/** Из них дошли до следующего шага. */
|
|
26
|
+
nextStepSessions: number;
|
|
27
|
+
/** Из них дошли до покупки (последний шаг воронки). */
|
|
28
|
+
purchasedSessions: number;
|
|
29
|
+
/** Локальная конверсия: nextStepSessions / sessions (0..1). */
|
|
30
|
+
stepConversion: number | null;
|
|
31
|
+
/** Сквозная конверсия: purchasedSessions / sessions (0..1). */
|
|
32
|
+
overallConversion: number | null;
|
|
33
|
+
};
|
|
34
|
+
/** Разрез одного шага воронки по значениям параметра. */
|
|
35
|
+
export type WidgetFunnelDimensionRO = {
|
|
36
|
+
/** id измерения из реестра. */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Шаг, к которому привязано измерение. */
|
|
39
|
+
step: WidgetFunnelStepEnum;
|
|
40
|
+
/** Заголовок измерения. */
|
|
41
|
+
label: string;
|
|
42
|
+
/** Базовая (по всем бакетам) локальная конверсия шага — для дельт. */
|
|
43
|
+
baselineStepConversion: number | null;
|
|
44
|
+
/** Базовая сквозная конверсия шага → покупка. */
|
|
45
|
+
baselineOverallConversion: number | null;
|
|
46
|
+
buckets: WidgetFunnelDimensionBucketRO[];
|
|
47
|
+
};
|
|
17
48
|
/** Воронка одной компании (или платформы) за период. */
|
|
18
49
|
export type WidgetFunnelRO = {
|
|
19
50
|
profileId: number;
|
|
@@ -22,12 +53,18 @@ export type WidgetFunnelRO = {
|
|
|
22
53
|
/** '' = агрегат по всем виджетам профиля. */
|
|
23
54
|
widgetUid: string;
|
|
24
55
|
steps: WidgetFunnelStepRO[];
|
|
25
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Сессий на шаге-входе воронки (см. `WIDGET_FUNNEL_ENTRY_STEP`). Для
|
|
58
|
+
* booking это клик по слоту, а не показ расписания — знаменатель сквозной
|
|
59
|
+
* конверсии, чтобы не делить на весь трафик сайта.
|
|
60
|
+
*/
|
|
26
61
|
entries: number;
|
|
27
62
|
/** Сессий на последнем шаге (покупка). */
|
|
28
63
|
conversions: number;
|
|
29
64
|
/** conversions / entries (0..1). */
|
|
30
65
|
overallConversion: number | null;
|
|
66
|
+
/** Разрезы шагов по параметрам (если запрошены/доступны). */
|
|
67
|
+
dimensions?: WidgetFunnelDimensionRO[];
|
|
31
68
|
};
|
|
32
69
|
/** Строка кросс-компанийной таблицы: одна компания + где она «течёт». */
|
|
33
70
|
export type WidgetFunnelCompanyRO = {
|
|
@@ -50,3 +87,51 @@ export type WidgetFunnelCrossCompanyRO = {
|
|
|
50
87
|
/** Список компаний, отсортированный по overallConversion. */
|
|
51
88
|
companies: WidgetFunnelCompanyRO[];
|
|
52
89
|
};
|
|
90
|
+
/** Период сравнения: границы + воронка за этот период. */
|
|
91
|
+
export type WidgetFunnelComparePeriodRO = {
|
|
92
|
+
/** YYYY-MM-DD (UTC). */
|
|
93
|
+
from: string;
|
|
94
|
+
/** YYYY-MM-DD (UTC). */
|
|
95
|
+
to: string;
|
|
96
|
+
funnel: WidgetFunnelRO;
|
|
97
|
+
};
|
|
98
|
+
/** Дельта конверсии одного шага между текущим и базовым периодами. */
|
|
99
|
+
export type WidgetFunnelStepDeltaRO = {
|
|
100
|
+
step: WidgetFunnelStepEnum;
|
|
101
|
+
/** Локальная конверсия шага в текущем периоде. */
|
|
102
|
+
current: number | null;
|
|
103
|
+
/** Локальная конверсия шага в базовом периоде. */
|
|
104
|
+
previous: number | null;
|
|
105
|
+
/** current - previous в долях (умножить на 100 для п.п.). */
|
|
106
|
+
delta: number | null;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Сравнение двух периодов (по умолчанию текущая неделя vs прошлая) —
|
|
110
|
+
* чтобы оценивать эффект апдейтов. Платформа (profileId=0) или компания.
|
|
111
|
+
*/
|
|
112
|
+
export type WidgetFunnelCompareRO = {
|
|
113
|
+
kind: WidgetFunnelKindEnum;
|
|
114
|
+
profileId: number;
|
|
115
|
+
current: WidgetFunnelComparePeriodRO;
|
|
116
|
+
previous: WidgetFunnelComparePeriodRO;
|
|
117
|
+
stepDeltas: WidgetFunnelStepDeltaRO[];
|
|
118
|
+
/** Δ общей конверсии (current - previous) в долях. */
|
|
119
|
+
overallDelta: number | null;
|
|
120
|
+
};
|
|
121
|
+
/** Точка недельного тренда. */
|
|
122
|
+
export type WidgetFunnelTrendPointRO = {
|
|
123
|
+
/** Понедельник недели, YYYY-MM-DD (UTC). */
|
|
124
|
+
weekStart: string;
|
|
125
|
+
/** Сессий-входов (шаг-вход воронки, см. `WIDGET_FUNNEL_ENTRY_STEP`). */
|
|
126
|
+
entries: number;
|
|
127
|
+
/** Сессий-покупок (последний шаг). */
|
|
128
|
+
conversions: number;
|
|
129
|
+
/** conversions / entries (0..1). */
|
|
130
|
+
overallConversion: number | null;
|
|
131
|
+
};
|
|
132
|
+
/** Недельный тренд конверсии за N недель. */
|
|
133
|
+
export type WidgetFunnelTrendRO = {
|
|
134
|
+
kind: WidgetFunnelKindEnum;
|
|
135
|
+
profileId: number;
|
|
136
|
+
points: WidgetFunnelTrendPointRO[];
|
|
137
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@escapenavigator/types",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"reflect-metadata": "^0.1.13",
|
|
24
24
|
"rxjs": "^7.5.5"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "fd5d63cf01b4dcde8e8938233e741e6113ed7865",
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/validator": "13.0.0",
|
|
29
29
|
"typescript": "^5.6"
|