@snabcentr/client-core 3.20.0 → 3.21.0-profstroy
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/catalog/dto/sc-product.d.ts +7 -0
- package/catalog/services/sc-catalog-redirect.service.d.ts +1 -1
- package/config/sc-i-update-interval.d.ts +12 -0
- package/esm2022/auth/services/sc-auth.service.mjs +3 -2
- package/esm2022/catalog/classes/sc-catalog-item.mjs +2 -2
- package/esm2022/catalog/dto/sc-product.mjs +13 -1
- package/esm2022/catalog/services/sc-catalog-redirect.service.mjs +3 -3
- package/esm2022/config/sc-i-update-interval.mjs +1 -1
- package/esm2022/helpers/index.mjs +2 -1
- package/esm2022/helpers/sc-date-helper.mjs +23 -0
- package/esm2022/helpers/sc-units-helper.mjs +3 -2
- package/esm2022/order/classes/index.mjs +3 -1
- package/esm2022/order/classes/sc-order-draft-actualization.mjs +46 -0
- package/esm2022/order/classes/sc-order-draft-short.mjs +7 -2
- package/esm2022/order/classes/sc-order-draft.mjs +15 -3
- package/esm2022/order/classes/sc-order-item.mjs +23 -1
- package/esm2022/order/classes/sc-order-short.mjs +3 -1
- package/esm2022/order/classes/sc-profstroy-order-item.mjs +88 -0
- package/esm2022/order/enums/index.mjs +2 -1
- package/esm2022/order/enums/sc-order-draft-actualization-status.mjs +24 -0
- package/esm2022/order/internal/index.mjs +6 -1
- package/esm2022/order/internal/sc-i-new-profstroy-order-draft-request.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-actualization.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-file.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-short.mjs +1 -1
- package/esm2022/order/internal/sc-i-order-draft.mjs +1 -1
- package/esm2022/order/internal/sc-i-order-short.mjs +1 -1
- package/esm2022/order/internal/sc-i-profstroy-order-item.mjs +2 -0
- package/esm2022/order/internal/sc-i-profstroy-product-stub.mjs +2 -0
- package/esm2022/order/services/sc-order-drafts.service.mjs +122 -11
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/ssr-cache/classes/index.mjs +2 -0
- package/esm2022/ssr-cache/classes/sc-ssr-response-cache.mjs +100 -0
- package/esm2022/ssr-cache/index.mjs +6 -0
- package/esm2022/ssr-cache/interfaces/index.mjs +3 -0
- package/esm2022/ssr-cache/interfaces/sc-i-ssr-response-cache-settings.mjs +2 -0
- package/esm2022/ssr-cache/interfaces/sc-i-ssr-response-cache-stats.mjs +2 -0
- package/esm2022/ssr-cache/internal/is-ssr-response-cacheable.mjs +25 -0
- package/esm2022/ssr-cache/internal/sc-i-ssr-cached-response.mjs +2 -0
- package/esm2022/ssr-cache/sc-ssr-response-cache.backend.mjs +71 -0
- package/esm2022/ssr-cache/sc-ssr-response-cache.providers.mjs +12 -0
- package/esm2022/ssr-cache/tokens/index.mjs +3 -0
- package/esm2022/ssr-cache/tokens/sc-ssr-response-cache-settings.mjs +8 -0
- package/esm2022/ssr-cache/tokens/sc-ssr-response-cache.mjs +13 -0
- package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +19 -1
- package/fesm2022/snabcentr-client-core.mjs +625 -57
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/helpers/index.d.ts +1 -0
- package/helpers/sc-date-helper.d.ts +12 -0
- package/helpers/sc-units-helper.d.ts +1 -1
- package/order/classes/index.d.ts +2 -0
- package/order/classes/sc-order-draft-actualization.d.ts +47 -0
- package/order/classes/sc-order-draft-short.d.ts +16 -2
- package/order/classes/sc-order-draft.d.ts +16 -2
- package/order/classes/sc-order-item.d.ts +12 -0
- package/order/classes/sc-order-short.d.ts +4 -0
- package/order/classes/sc-profstroy-order-item.d.ts +73 -0
- package/order/enums/index.d.ts +1 -0
- package/order/enums/sc-order-draft-actualization-status.d.ts +21 -0
- package/order/internal/index.d.ts +5 -0
- package/order/internal/sc-i-new-profstroy-order-draft-request.d.ts +14 -0
- package/order/internal/sc-i-order-draft-actualization.d.ts +22 -0
- package/order/internal/sc-i-order-draft-file.d.ts +13 -0
- package/order/internal/sc-i-order-draft-short.d.ts +15 -0
- package/order/internal/sc-i-order-draft.d.ts +2 -1
- package/order/internal/sc-i-order-short.d.ts +4 -0
- package/order/internal/sc-i-profstroy-order-item.d.ts +28 -0
- package/order/internal/sc-i-profstroy-product-stub.d.ts +13 -0
- package/order/services/sc-order-drafts.service.d.ts +63 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/release_notes.tmp +2 -4
- package/ssr-cache/classes/index.d.ts +1 -0
- package/ssr-cache/classes/sc-ssr-response-cache.d.ts +59 -0
- package/ssr-cache/index.d.ts +5 -0
- package/ssr-cache/interfaces/index.d.ts +2 -0
- package/ssr-cache/interfaces/sc-i-ssr-response-cache-settings.d.ts +17 -0
- package/ssr-cache/interfaces/sc-i-ssr-response-cache-stats.d.ts +17 -0
- package/ssr-cache/internal/is-ssr-response-cacheable.d.ts +14 -0
- package/ssr-cache/internal/sc-i-ssr-cached-response.d.ts +16 -0
- package/ssr-cache/sc-ssr-response-cache.backend.d.ts +42 -0
- package/ssr-cache/sc-ssr-response-cache.providers.d.ts +6 -0
- package/ssr-cache/tokens/index.d.ts +2 -0
- package/ssr-cache/tokens/sc-ssr-response-cache-settings.d.ts +6 -0
- package/ssr-cache/tokens/sc-ssr-response-cache.d.ts +6 -0
- package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +18 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Настройки кэша ответов API, общего для всех SSR-рендеров.
|
|
3
|
+
*/
|
|
4
|
+
export interface ScISsrResponseCacheSettings {
|
|
5
|
+
/**
|
|
6
|
+
* Адреса API относительно `apiUrl`, ответы на которые кэшируются: точное совпадение (`/news`) или префикс с `*` (`/references/*`).
|
|
7
|
+
*/
|
|
8
|
+
readonly endpoints: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Время жизни закэшированного ответа (мс). При значении `0` кэш выключен.
|
|
11
|
+
*/
|
|
12
|
+
readonly lifeTime: number;
|
|
13
|
+
/**
|
|
14
|
+
* Время ожидания ответа API (мс), чтобы зависший запрос не блокировал адрес для всех рендеров. `0`: без ограничения.
|
|
15
|
+
*/
|
|
16
|
+
readonly loadTimeout: number;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Статистика работы кэша ответов API между SSR-рендерами.
|
|
3
|
+
*/
|
|
4
|
+
export interface ScISsrResponseCacheStats {
|
|
5
|
+
/**
|
|
6
|
+
* Количество записей в кэше.
|
|
7
|
+
*/
|
|
8
|
+
readonly size: number;
|
|
9
|
+
/**
|
|
10
|
+
* Количество запросов, отданных без обращения к API: из кэша или из уже выполняющегося запроса.
|
|
11
|
+
*/
|
|
12
|
+
readonly hits: number;
|
|
13
|
+
/**
|
|
14
|
+
* Количество запросов, выполненных к API.
|
|
15
|
+
*/
|
|
16
|
+
readonly misses: number;
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { ScIApiKeys } from '../../config/sc-i-api-keys';
|
|
3
|
+
import { ScISsrResponseCacheSettings } from '../interfaces/sc-i-ssr-response-cache-settings';
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает признак, что ответ можно кэшировать между SSR-рендерами: GET за JSON без ключей доступа по адресам из настроек.
|
|
6
|
+
*
|
|
7
|
+
* @param request Данные запроса.
|
|
8
|
+
* @param settings Настройки кэша.
|
|
9
|
+
* @param apiUrl Адрес API.
|
|
10
|
+
* @param apiKeys Названия заголовков ключей доступа к API.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function isSsrResponseCacheable(request: HttpRequest<unknown>, settings: ScISsrResponseCacheSettings, apiUrl: string, apiKeys: ScIApiKeys): boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HttpResponse } from '@angular/common/http';
|
|
2
|
+
/**
|
|
3
|
+
* Ответ API, закэшированный между SSR-рендерами.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export interface ScISsrCachedResponse {
|
|
8
|
+
/**
|
|
9
|
+
* Момент времени (мс), после которого ответ считается устаревшим.
|
|
10
|
+
*/
|
|
11
|
+
readonly expiresAt: number;
|
|
12
|
+
/**
|
|
13
|
+
* Закэшированный ответ на запрос.
|
|
14
|
+
*/
|
|
15
|
+
readonly response: HttpResponse<unknown>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HttpBackend, HttpEvent, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Обработчик запросов с кэшем ответов API между SSR-рендерами.
|
|
6
|
+
*
|
|
7
|
+
* Стоит на уровне {@link HttpBackend}, ниже перехватчиков: ответ из кэша проходит через перенос в браузер,
|
|
8
|
+
* а проверка ключей доступа видит итоговые заголовки. Отдаёт только итоговый {@link HttpResponse};
|
|
9
|
+
* запрос не отменяется при отписке рендера, а ограничен `loadTimeout` из настроек.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ScSsrResponseCacheBackend implements HttpBackend {
|
|
12
|
+
/**
|
|
13
|
+
* Штатный обработчик, выполняющий запросы к API.
|
|
14
|
+
*/
|
|
15
|
+
private readonly backend;
|
|
16
|
+
/**
|
|
17
|
+
* Кэш ответов API.
|
|
18
|
+
*/
|
|
19
|
+
private readonly cache;
|
|
20
|
+
/**
|
|
21
|
+
* Настройки кэша.
|
|
22
|
+
*/
|
|
23
|
+
private readonly settings;
|
|
24
|
+
/**
|
|
25
|
+
* Адрес API.
|
|
26
|
+
*/
|
|
27
|
+
private readonly apiUrl;
|
|
28
|
+
/**
|
|
29
|
+
* Названия заголовков ключей доступа к API.
|
|
30
|
+
*/
|
|
31
|
+
private readonly apiKeys;
|
|
32
|
+
/** @inheritDoc */
|
|
33
|
+
handle(request: HttpRequest<unknown>): Observable<HttpEvent<unknown>>;
|
|
34
|
+
/**
|
|
35
|
+
* Выполняет запрос к API и возвращает его ответ.
|
|
36
|
+
*
|
|
37
|
+
* @param request Данные запроса.
|
|
38
|
+
*/
|
|
39
|
+
private load;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScSsrResponseCacheBackend, never>;
|
|
41
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ScSsrResponseCacheBackend>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EnvironmentProviders } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Возвращает провайдеры кэша ответов API между SSR-рендерами.
|
|
4
|
+
* Подключать только в серверной конфигурации после `provideHttpClient()`: подменяют {@link HttpBackend}.
|
|
5
|
+
*/
|
|
6
|
+
export declare function provideSsrResponseCache(): EnvironmentProviders;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { ScISsrResponseCacheSettings } from '../interfaces/sc-i-ssr-response-cache-settings';
|
|
3
|
+
/**
|
|
4
|
+
* Токен настроек кэша ответов API между SSR-рендерами. По умолчанию кэш выключен.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SC_SSR_RESPONSE_CACHE_SETTINGS: InjectionToken<ScISsrResponseCacheSettings>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { ScSsrResponseCache } from '../classes/sc-ssr-response-cache';
|
|
3
|
+
/**
|
|
4
|
+
* Токен кэша ответов API между SSR-рендерами. По умолчанию один экземпляр на процесс, можно переопределить провайдером.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SC_SSR_RESPONSE_CACHE: InjectionToken<ScSsrResponseCache>;
|
|
@@ -151,6 +151,24 @@ export declare enum ScUserMetrikaGoalsEnum {
|
|
|
151
151
|
* В качестве параметра должен быть указан идентификатор КП/черновика (параметр "offer_id").
|
|
152
152
|
*/
|
|
153
153
|
orderDraftDeleted = "ORDER_DRAFT_DELETED",
|
|
154
|
+
/**
|
|
155
|
+
* Черновик заказа создан из файла программы «Профстрой».
|
|
156
|
+
*
|
|
157
|
+
* В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
|
|
158
|
+
*/
|
|
159
|
+
orderDraftProfstroyCreated = "ORDER_DRAFT_PROFSTROY_CREATED",
|
|
160
|
+
/**
|
|
161
|
+
* Запущена актуализация черновика Профстрой.
|
|
162
|
+
*
|
|
163
|
+
* В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
|
|
164
|
+
*/
|
|
165
|
+
orderDraftProfstroyActualized = "ORDER_DRAFT_PROFSTROY_ACTUALIZED",
|
|
166
|
+
/**
|
|
167
|
+
* Запущена пересборка черновика Профстрой из файла.
|
|
168
|
+
*
|
|
169
|
+
* В качестве параметра должен быть указан идентификатор черновика (параметр "offer_id").
|
|
170
|
+
*/
|
|
171
|
+
orderDraftProfstroyReloaded = "ORDER_DRAFT_PROFSTROY_RELOADED",
|
|
154
172
|
/**
|
|
155
173
|
* Открыто диалоговое окно/страница конфигуратора товара.
|
|
156
174
|
*
|