@snabcentr/client-core 3.20.1 → 3.21.0
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/esm2022/auth/services/sc-auth.service.mjs +3 -2
- 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/fesm2022/snabcentr-client-core.mjs +220 -5
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/release_notes.tmp +3 -3
- 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
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i1 from 'rxjs';
|
|
2
|
-
import { of, startWith as startWith$1, Subject, ReplaySubject, partition, combineLatest, map as map$1, debounceTime, switchMap, tap, filter, shareReplay, distinctUntilChanged, BehaviorSubject, materialize, dematerialize, merge, distinctUntilKeyChanged, skip, first, catchError as catchError$1, throwError, expand, takeWhile, toArray, EMPTY, take, defaultIfEmpty, concatMap, finalize, takeUntil, interval, share, scan } from 'rxjs';
|
|
2
|
+
import { of, startWith as startWith$1, Subject, ReplaySubject, partition, combineLatest, map as map$1, debounceTime, switchMap, tap, filter, shareReplay, distinctUntilChanged, BehaviorSubject, materialize, dematerialize, merge, distinctUntilKeyChanged, skip, first, catchError as catchError$1, throwError, expand, takeWhile, toArray, EMPTY, take, defaultIfEmpty, concatMap, finalize, takeUntil, interval, share, scan, defer, from, lastValueFrom, timeout, TimeoutError } from 'rxjs';
|
|
3
3
|
import { map, startWith, catchError } from 'rxjs/operators';
|
|
4
4
|
import { parseISO, parse, isValid, format } from 'date-fns';
|
|
5
5
|
import { isString, isNil, isMatch, isArray, omit, get } from 'lodash-es';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, DestroyRef, LOCALE_ID, Pipe, assertInInjectionContext, RendererFactory2 } from '@angular/core';
|
|
7
|
+
import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, DestroyRef, LOCALE_ID, Pipe, assertInInjectionContext, RendererFactory2, makeEnvironmentProviders } from '@angular/core';
|
|
8
8
|
import { WA_LOCAL_STORAGE, WA_USER_AGENT, WA_WINDOW } from '@ng-web-apis/common';
|
|
9
9
|
import { filterByKey, toValue, WA_STORAGE_EVENT, StorageService } from '@ng-web-apis/storage';
|
|
10
10
|
import { isPlatformBrowser, isPlatformServer, DOCUMENT, formatDate } from '@angular/common';
|
|
11
11
|
import * as i1$1 from '@angular/common/http';
|
|
12
|
-
import { HttpContextToken, HttpContext, HttpHeaders, HttpClient, HttpParams, HttpErrorResponse, HttpResponse } from '@angular/common/http';
|
|
12
|
+
import { HttpContextToken, HttpContext, HttpHeaders, HttpClient, HttpParams, HttpErrorResponse, HttpResponse, FetchBackend, HttpXhrBackend, HttpStatusCode, HttpBackend } from '@angular/common/http';
|
|
13
13
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
14
14
|
import { tuiIsPresent, TuiDay, tuiPure, TUI_TRUE_HANDLER } from '@taiga-ui/cdk';
|
|
15
15
|
import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
|
|
@@ -1079,7 +1079,8 @@ class ScAuthService {
|
|
|
1079
1079
|
this.tokenService.removeGuestToken();
|
|
1080
1080
|
return of(null);
|
|
1081
1081
|
}
|
|
1082
|
-
|
|
1082
|
+
// На сервере ключ Гостя некуда сохранить, поэтому запрос не выполняется.
|
|
1083
|
+
return this.isServer ? of(null) : this.getGuestToken$();
|
|
1083
1084
|
}), takeUntilDestroyed(this.destroyRef))
|
|
1084
1085
|
.subscribe();
|
|
1085
1086
|
if (this.isServer) {
|
|
@@ -8714,6 +8715,220 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8714
8715
|
}]
|
|
8715
8716
|
}] });
|
|
8716
8717
|
|
|
8718
|
+
/**
|
|
8719
|
+
* Кэш ответов API, один на процесс: переживает пересоздание инжектора между SSR-рендерами.
|
|
8720
|
+
* Одинаковые одновременные запросы склеиваются, при переполнении вытесняется самая давняя запись.
|
|
8721
|
+
*/
|
|
8722
|
+
class ScSsrResponseCache {
|
|
8723
|
+
/**
|
|
8724
|
+
* Инициализирует экземпляр класса {@link ScSsrResponseCache}.
|
|
8725
|
+
*
|
|
8726
|
+
* @param maxEntries Максимальное количество записей в кэше.
|
|
8727
|
+
*/
|
|
8728
|
+
constructor(maxEntries = 100) {
|
|
8729
|
+
/**
|
|
8730
|
+
* Закэшированные ответы по ключу запроса.
|
|
8731
|
+
*/
|
|
8732
|
+
this.entries = new Map();
|
|
8733
|
+
/**
|
|
8734
|
+
* Выполняемые запросы по ключу запроса.
|
|
8735
|
+
*/
|
|
8736
|
+
this.pending = new Map();
|
|
8737
|
+
/**
|
|
8738
|
+
* Количество запросов, отданных без обращения к API.
|
|
8739
|
+
*/
|
|
8740
|
+
this.hits = 0;
|
|
8741
|
+
/**
|
|
8742
|
+
* Количество запросов, выполненных к API.
|
|
8743
|
+
*/
|
|
8744
|
+
this.misses = 0;
|
|
8745
|
+
this.maxEntries = Number.isFinite(maxEntries) ? Math.max(1, maxEntries) : 100;
|
|
8746
|
+
}
|
|
8747
|
+
/**
|
|
8748
|
+
* Возвращает ответ из кэша, при отсутствии или устаревании загружает и кэширует. Ошибка загрузки не кэшируется.
|
|
8749
|
+
*
|
|
8750
|
+
* @param key Ключ запроса.
|
|
8751
|
+
* @param lifeTime Время жизни ответа (мс).
|
|
8752
|
+
* @param loader Функция загрузки ответа.
|
|
8753
|
+
*/
|
|
8754
|
+
getOrLoad(key, lifeTime, loader) {
|
|
8755
|
+
const cached = this.get(key);
|
|
8756
|
+
if (cached) {
|
|
8757
|
+
this.hits += 1;
|
|
8758
|
+
return Promise.resolve(cached.response);
|
|
8759
|
+
}
|
|
8760
|
+
const pending = this.pending.get(key);
|
|
8761
|
+
if (pending) {
|
|
8762
|
+
this.hits += 1;
|
|
8763
|
+
return pending;
|
|
8764
|
+
}
|
|
8765
|
+
this.misses += 1;
|
|
8766
|
+
const loading = loader()
|
|
8767
|
+
.then((response) => {
|
|
8768
|
+
this.set(key, { response, expiresAt: Date.now() + lifeTime });
|
|
8769
|
+
return response;
|
|
8770
|
+
})
|
|
8771
|
+
.finally(() => {
|
|
8772
|
+
this.pending.delete(key);
|
|
8773
|
+
});
|
|
8774
|
+
this.pending.set(key, loading);
|
|
8775
|
+
return loading;
|
|
8776
|
+
}
|
|
8777
|
+
/**
|
|
8778
|
+
* Возвращает статистику работы кэша.
|
|
8779
|
+
*/
|
|
8780
|
+
getStats() {
|
|
8781
|
+
return { size: this.entries.size, hits: this.hits, misses: this.misses };
|
|
8782
|
+
}
|
|
8783
|
+
/**
|
|
8784
|
+
* Возвращает актуальную запись или `null`.
|
|
8785
|
+
*
|
|
8786
|
+
* @param key Ключ запроса.
|
|
8787
|
+
*/
|
|
8788
|
+
get(key) {
|
|
8789
|
+
const entry = this.entries.get(key);
|
|
8790
|
+
if (!entry) {
|
|
8791
|
+
return null;
|
|
8792
|
+
}
|
|
8793
|
+
if (entry.expiresAt <= Date.now()) {
|
|
8794
|
+
this.entries.delete(key);
|
|
8795
|
+
return null;
|
|
8796
|
+
}
|
|
8797
|
+
// Перестановка в конец помечает запись как недавно использованную.
|
|
8798
|
+
this.entries.delete(key);
|
|
8799
|
+
this.entries.set(key, entry);
|
|
8800
|
+
return entry;
|
|
8801
|
+
}
|
|
8802
|
+
/**
|
|
8803
|
+
* Сохраняет запись, при переполнении вытесняя самую давнюю.
|
|
8804
|
+
*
|
|
8805
|
+
* @param key Ключ запроса.
|
|
8806
|
+
* @param entry Запись кэша.
|
|
8807
|
+
*/
|
|
8808
|
+
set(key, entry) {
|
|
8809
|
+
this.entries.delete(key);
|
|
8810
|
+
if (this.entries.size >= this.maxEntries) {
|
|
8811
|
+
const [oldestKey] = this.entries.keys();
|
|
8812
|
+
this.entries.delete(oldestKey);
|
|
8813
|
+
}
|
|
8814
|
+
this.entries.set(key, entry);
|
|
8815
|
+
}
|
|
8816
|
+
}
|
|
8817
|
+
|
|
8818
|
+
/**
|
|
8819
|
+
* Кэш по умолчанию, один на процесс.
|
|
8820
|
+
*/
|
|
8821
|
+
const defaultSsrResponseCache = new ScSsrResponseCache();
|
|
8822
|
+
/**
|
|
8823
|
+
* Токен кэша ответов API между SSR-рендерами. По умолчанию один экземпляр на процесс, можно переопределить провайдером.
|
|
8824
|
+
*/
|
|
8825
|
+
const SC_SSR_RESPONSE_CACHE = new InjectionToken('SC_SSR_RESPONSE_CACHE', {
|
|
8826
|
+
factory: () => defaultSsrResponseCache,
|
|
8827
|
+
});
|
|
8828
|
+
|
|
8829
|
+
/**
|
|
8830
|
+
* Токен настроек кэша ответов API между SSR-рендерами. По умолчанию кэш выключен.
|
|
8831
|
+
*/
|
|
8832
|
+
const SC_SSR_RESPONSE_CACHE_SETTINGS = new InjectionToken('SC_SSR_RESPONSE_CACHE_SETTINGS', {
|
|
8833
|
+
factory: () => ({ endpoints: [], lifeTime: 0, loadTimeout: 0 }),
|
|
8834
|
+
});
|
|
8835
|
+
|
|
8836
|
+
/**
|
|
8837
|
+
* Возвращает признак, что ответ можно кэшировать между SSR-рендерами: GET за JSON без ключей доступа по адресам из настроек.
|
|
8838
|
+
*
|
|
8839
|
+
* @param request Данные запроса.
|
|
8840
|
+
* @param settings Настройки кэша.
|
|
8841
|
+
* @param apiUrl Адрес API.
|
|
8842
|
+
* @param apiKeys Названия заголовков ключей доступа к API.
|
|
8843
|
+
*
|
|
8844
|
+
* @internal
|
|
8845
|
+
*/
|
|
8846
|
+
function isSsrResponseCacheable(request, settings, apiUrl, apiKeys) {
|
|
8847
|
+
if (!Number.isFinite(settings.lifeTime) || settings.lifeTime <= 0 || request.method !== 'GET' || request.responseType !== 'json') {
|
|
8848
|
+
return false;
|
|
8849
|
+
}
|
|
8850
|
+
if (request.headers.has(apiKeys.keyName) || request.headers.has(apiKeys.guestKeyName)) {
|
|
8851
|
+
return false;
|
|
8852
|
+
}
|
|
8853
|
+
const [url] = request.url.split('?');
|
|
8854
|
+
if (!url.startsWith(apiUrl)) {
|
|
8855
|
+
return false;
|
|
8856
|
+
}
|
|
8857
|
+
const path = url.slice(apiUrl.length);
|
|
8858
|
+
return settings.endpoints.some((endpoint) => (endpoint.endsWith('*') ? path.startsWith(endpoint.slice(0, -1)) : path === endpoint));
|
|
8859
|
+
}
|
|
8860
|
+
|
|
8861
|
+
/**
|
|
8862
|
+
* Обработчик запросов с кэшем ответов API между SSR-рендерами.
|
|
8863
|
+
*
|
|
8864
|
+
* Стоит на уровне {@link HttpBackend}, ниже перехватчиков: ответ из кэша проходит через перенос в браузер,
|
|
8865
|
+
* а проверка ключей доступа видит итоговые заголовки. Отдаёт только итоговый {@link HttpResponse};
|
|
8866
|
+
* запрос не отменяется при отписке рендера, а ограничен `loadTimeout` из настроек.
|
|
8867
|
+
*/
|
|
8868
|
+
class ScSsrResponseCacheBackend {
|
|
8869
|
+
constructor() {
|
|
8870
|
+
/**
|
|
8871
|
+
* Штатный обработчик, выполняющий запросы к API.
|
|
8872
|
+
*/
|
|
8873
|
+
// TODO: Angular 21: проверить, какой backend регистрирует provideHttpClient.
|
|
8874
|
+
this.backend = inject(FetchBackend, { optional: true }) ?? inject(HttpXhrBackend);
|
|
8875
|
+
/**
|
|
8876
|
+
* Кэш ответов API.
|
|
8877
|
+
*/
|
|
8878
|
+
this.cache = inject(SC_SSR_RESPONSE_CACHE);
|
|
8879
|
+
/**
|
|
8880
|
+
* Настройки кэша.
|
|
8881
|
+
*/
|
|
8882
|
+
this.settings = inject(SC_SSR_RESPONSE_CACHE_SETTINGS);
|
|
8883
|
+
/**
|
|
8884
|
+
* Адрес API.
|
|
8885
|
+
*/
|
|
8886
|
+
this.apiUrl = inject(SC_URLS).apiUrl;
|
|
8887
|
+
/**
|
|
8888
|
+
* Названия заголовков ключей доступа к API.
|
|
8889
|
+
*/
|
|
8890
|
+
this.apiKeys = inject(SC_API_KEYS);
|
|
8891
|
+
}
|
|
8892
|
+
/** @inheritDoc */
|
|
8893
|
+
handle(request) {
|
|
8894
|
+
if (!isSsrResponseCacheable(request, this.settings, this.apiUrl, this.apiKeys)) {
|
|
8895
|
+
return this.backend.handle(request);
|
|
8896
|
+
}
|
|
8897
|
+
return defer(() => from(this.cache.getOrLoad(request.urlWithParams, this.settings.lifeTime, () => this.load(request)))).pipe(
|
|
8898
|
+
// Копия тела на каждый рендер, чтобы изменения не утекали между рендерами.
|
|
8899
|
+
map$1((response) => response.clone({ body: structuredClone(response.body) })));
|
|
8900
|
+
}
|
|
8901
|
+
/**
|
|
8902
|
+
* Выполняет запрос к API и возвращает его ответ.
|
|
8903
|
+
*
|
|
8904
|
+
* @param request Данные запроса.
|
|
8905
|
+
*/
|
|
8906
|
+
load(request) {
|
|
8907
|
+
const response$ = this.backend.handle(request).pipe(filter((event) => event instanceof HttpResponse));
|
|
8908
|
+
if (this.settings.loadTimeout <= 0) {
|
|
8909
|
+
return lastValueFrom(response$);
|
|
8910
|
+
}
|
|
8911
|
+
// По таймауту запрос отменяется, ошибка отдаётся как HttpErrorResponse, как и остальные ошибки запросов.
|
|
8912
|
+
return lastValueFrom(response$.pipe(timeout(this.settings.loadTimeout), catchError$1((error) => throwError(() => error instanceof TimeoutError
|
|
8913
|
+
? new HttpErrorResponse({ status: HttpStatusCode.GatewayTimeout, statusText: 'Gateway Timeout', url: request.url, error })
|
|
8914
|
+
: error))));
|
|
8915
|
+
}
|
|
8916
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSsrResponseCacheBackend, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8917
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSsrResponseCacheBackend }); }
|
|
8918
|
+
}
|
|
8919
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSsrResponseCacheBackend, decorators: [{
|
|
8920
|
+
type: Injectable
|
|
8921
|
+
}] });
|
|
8922
|
+
|
|
8923
|
+
/**
|
|
8924
|
+
* Возвращает провайдеры кэша ответов API между SSR-рендерами.
|
|
8925
|
+
* Подключать только в серверной конфигурации после `provideHttpClient()`: подменяют {@link HttpBackend}.
|
|
8926
|
+
*/
|
|
8927
|
+
// TODO: Angular 21: проверить, что подмена HttpBackend остаётся последней после provideServerRendering(withRoutes()).
|
|
8928
|
+
function provideSsrResponseCache() {
|
|
8929
|
+
return makeEnvironmentProviders([{ provide: HttpBackend, useClass: ScSsrResponseCacheBackend }]);
|
|
8930
|
+
}
|
|
8931
|
+
|
|
8717
8932
|
/**
|
|
8718
8933
|
* Перечисление типов подсказок запросов.
|
|
8719
8934
|
*/
|
|
@@ -9093,5 +9308,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9093
9308
|
* Generated bundle index. Do not edit.
|
|
9094
9309
|
*/
|
|
9095
9310
|
|
|
9096
|
-
export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CANONICAL_REDIRECT_ENABLED, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PAGE_QUERY_PARAM, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationPageQueryParamService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScRedirectStatusEnum, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scGetPageQueryParamChanges, scOrderIsLoaded, scParsePageQueryParam, searchTermFactory };
|
|
9311
|
+
export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CANONICAL_REDIRECT_ENABLED, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PAGE_QUERY_PARAM, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_SSR_RESPONSE_CACHE, SC_SSR_RESPONSE_CACHE_SETTINGS, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationPageQueryParamService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScRedirectStatusEnum, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSsrResponseCache, ScSsrResponseCacheBackend, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, provideSsrResponseCache, runningOnTerminalFactory, scGetCurrentRoute, scGetPageQueryParamChanges, scOrderIsLoaded, scParsePageQueryParam, searchTermFactory };
|
|
9097
9312
|
//# sourceMappingURL=snabcentr-client-core.mjs.map
|