@esolve/ng-esolve-connect 0.129.0 → 0.130.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/fesm2022/esolve-ng-esolve-connect.mjs +128 -15
- package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/account/esolve-account.service.d.ts +8 -8
- package/lib/auth/interceptors/esolve-unauthorized-error.interceptor.d.ts +2 -0
- package/lib/auth/interceptors/index.d.ts +1 -0
- package/lib/auth/services/esolve-auth.service.d.ts +6 -1
- package/lib/session/esolve-session.service.d.ts +3 -1
- package/lib/session/interfaces/esolve-session-update-options.interface.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { isPlatformBrowser, CommonModule, IMAGE_LOADER, DOCUMENT } from '@angular/common';
|
|
2
|
-
import { HttpErrorResponse, HttpClient, HttpParams, HttpHeaders, provideHttpClient, withInterceptors, withInterceptorsFromDi } from '@angular/common/http';
|
|
2
|
+
import { HttpErrorResponse, HttpClient, HttpStatusCode, HttpParams, HttpHeaders, provideHttpClient, withInterceptors, withInterceptorsFromDi } from '@angular/common/http';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, inject, Injectable, PLATFORM_ID, signal, computed, provideAppInitializer, NgModule, ElementRef, HostListener, Input, Directive } from '@angular/core';
|
|
4
|
+
import { InjectionToken, inject, Injectable, PLATFORM_ID, ApplicationRef, signal, computed, provideAppInitializer, NgModule, ElementRef, HostListener, Input, Directive } from '@angular/core';
|
|
5
5
|
import { SsrCookieService } from 'ngx-cookie-service-ssr';
|
|
6
|
-
import { throwError, Subject, switchMap, timer, takeUntil, filter, distinctUntilChanged, catchError as catchError$1, of, tap, firstValueFrom, map as map$1, BehaviorSubject, iif } from 'rxjs';
|
|
7
6
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
8
|
-
import {
|
|
7
|
+
import { throwError, Subject, filter, take, shareReplay, switchMap, timer, takeUntil, merge, distinctUntilChanged, firstValueFrom, from, catchError as catchError$1, of, tap, map as map$1, BehaviorSubject, iif } from 'rxjs';
|
|
8
|
+
import { fromUnixTime, isAfter, parseISO } from 'date-fns';
|
|
9
9
|
import { map, catchError, switchMap as switchMap$1 } from 'rxjs/operators';
|
|
10
10
|
import { Title, Meta } from '@angular/platform-browser';
|
|
11
11
|
|
|
@@ -522,6 +522,7 @@ class EsolveSessionService {
|
|
|
522
522
|
this.config = inject(EsolveConfigService);
|
|
523
523
|
this.cookieService = inject(EsolveCookieService);
|
|
524
524
|
this.storage_key = this.setStorageKey();
|
|
525
|
+
this.appRef = inject(ApplicationRef);
|
|
525
526
|
this.token = signal('');
|
|
526
527
|
this.user_id = signal(0);
|
|
527
528
|
this.access_level = signal(0);
|
|
@@ -554,8 +555,11 @@ class EsolveSessionService {
|
|
|
554
555
|
this.timer_stop = new Subject();
|
|
555
556
|
this.expire = new Subject();
|
|
556
557
|
this.session_end = new Subject();
|
|
558
|
+
this.app_stable_init$ = this.appRef.isStable.pipe(filter(Boolean), take(1), shareReplay(1));
|
|
557
559
|
this.timer_start
|
|
558
|
-
.pipe(switchMap((time) =>
|
|
560
|
+
.pipe(switchMap((time) => {
|
|
561
|
+
return timer(time).pipe(takeUntil(merge(this.timer_stop, this.timer_start)));
|
|
562
|
+
}))
|
|
559
563
|
.subscribe(() => {
|
|
560
564
|
// Stored time expired. Check if session is valid
|
|
561
565
|
this.session_end.next();
|
|
@@ -652,7 +656,8 @@ class EsolveSessionService {
|
|
|
652
656
|
stopTimer() {
|
|
653
657
|
this.timer_stop.next();
|
|
654
658
|
}
|
|
655
|
-
startTimer(time) {
|
|
659
|
+
async startTimer(time) {
|
|
660
|
+
await firstValueFrom(this.app_stable_init$);
|
|
656
661
|
this.timer_start.next(time);
|
|
657
662
|
}
|
|
658
663
|
getCachedSession() {
|
|
@@ -660,11 +665,14 @@ class EsolveSessionService {
|
|
|
660
665
|
}
|
|
661
666
|
reset() {
|
|
662
667
|
this.removeCache();
|
|
663
|
-
this.
|
|
668
|
+
this.stopTimer();
|
|
664
669
|
}
|
|
665
670
|
handleSession(session, expiry_date_unix, grace_unix) {
|
|
666
671
|
const expiry_date = fromUnixTime(expiry_date_unix);
|
|
667
672
|
const grace_expiry_date = fromUnixTime(expiry_date_unix + grace_unix);
|
|
673
|
+
if (!isAfter(grace_expiry_date, Date.now())) {
|
|
674
|
+
throw new Error('Invalid session expiry');
|
|
675
|
+
}
|
|
668
676
|
this.setCache(session.token, grace_expiry_date);
|
|
669
677
|
this.updateUserId(session.user_id);
|
|
670
678
|
this.updateAccessLevel(session.access_level);
|
|
@@ -696,6 +704,10 @@ class EsolveSessionService {
|
|
|
696
704
|
}
|
|
697
705
|
if (typeof options.token !== 'undefined' &&
|
|
698
706
|
options.token.trim() !== '') {
|
|
707
|
+
const expiry_date_unix = options.expiry_date_unix ?? 0;
|
|
708
|
+
const grace_unix = options.grace_unix ?? 0;
|
|
709
|
+
const grace_expiry_date = fromUnixTime(expiry_date_unix + grace_unix);
|
|
710
|
+
this.setCache(options.token, grace_expiry_date);
|
|
699
711
|
this.updateToken(options.token);
|
|
700
712
|
}
|
|
701
713
|
}
|
|
@@ -813,14 +825,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
813
825
|
}] });
|
|
814
826
|
|
|
815
827
|
class EsolveAuthService {
|
|
828
|
+
#validating_session;
|
|
829
|
+
get validating_session() {
|
|
830
|
+
return this.#validating_session.asReadonly();
|
|
831
|
+
}
|
|
816
832
|
constructor() {
|
|
817
833
|
this.config = inject(EsolveConfigService);
|
|
818
834
|
this.http = inject(HttpClient);
|
|
819
835
|
this.session = inject(EsolveSessionService);
|
|
820
836
|
this.errorHandler = inject(EsolveErrorHandlerService);
|
|
837
|
+
this.#validating_session = signal(false);
|
|
838
|
+
this.validating_session$ = toObservable(this.#validating_session);
|
|
821
839
|
this.session
|
|
822
840
|
.onSessionEnd()
|
|
823
|
-
.pipe(switchMap(() =>
|
|
841
|
+
.pipe(switchMap(() => {
|
|
842
|
+
return from(this.checkAccessToken()).pipe(catchError$1((error) => {
|
|
843
|
+
if (error instanceof HttpErrorResponse &&
|
|
844
|
+
error.status === HttpStatusCode.Unauthorized) {
|
|
845
|
+
// Token is invalid or expired
|
|
846
|
+
return of(null);
|
|
847
|
+
}
|
|
848
|
+
throw error;
|
|
849
|
+
}));
|
|
850
|
+
}))
|
|
824
851
|
.subscribe((result) => {
|
|
825
852
|
if (result) {
|
|
826
853
|
this.handleAuthentication(result);
|
|
@@ -934,7 +961,10 @@ class EsolveAuthService {
|
|
|
934
961
|
}));
|
|
935
962
|
}
|
|
936
963
|
async logout() {
|
|
937
|
-
this.session.
|
|
964
|
+
if (this.session.getToken() === '') {
|
|
965
|
+
this.resetLocalSession();
|
|
966
|
+
return false;
|
|
967
|
+
}
|
|
938
968
|
const response = await firstValueFrom(this.http
|
|
939
969
|
.post(`${this.config.api_url}/set-logout.php`, {}, {
|
|
940
970
|
headers: {
|
|
@@ -997,14 +1027,46 @@ class EsolveAuthService {
|
|
|
997
1027
|
}
|
|
998
1028
|
catch (error) {
|
|
999
1029
|
console.error(error);
|
|
1030
|
+
this.session.updateToken('');
|
|
1000
1031
|
this.session.reset();
|
|
1001
1032
|
}
|
|
1002
1033
|
return valid;
|
|
1003
1034
|
}
|
|
1035
|
+
async validateSessionAndRefresh() {
|
|
1036
|
+
if (this.#validating_session()) {
|
|
1037
|
+
return firstValueFrom(this.onSessionValidationEnd());
|
|
1038
|
+
}
|
|
1039
|
+
this.#validating_session.set(true);
|
|
1040
|
+
let token = '';
|
|
1041
|
+
try {
|
|
1042
|
+
const session = this.session.getCachedSession();
|
|
1043
|
+
if (!session) {
|
|
1044
|
+
throw new Error('Invalid session');
|
|
1045
|
+
}
|
|
1046
|
+
const result = await this.checkAccessToken(session);
|
|
1047
|
+
if (!result.key) {
|
|
1048
|
+
throw new Error('Invalid key');
|
|
1049
|
+
}
|
|
1050
|
+
this.handleAuthentication(result);
|
|
1051
|
+
token = result.key;
|
|
1052
|
+
}
|
|
1053
|
+
catch (error) {
|
|
1054
|
+
console.error(error);
|
|
1055
|
+
this.session.updateToken('');
|
|
1056
|
+
const response = await firstValueFrom(this.getAnonymousSession());
|
|
1057
|
+
const result = response.additional_data;
|
|
1058
|
+
token = result.key;
|
|
1059
|
+
}
|
|
1060
|
+
finally {
|
|
1061
|
+
this.#validating_session.set(false);
|
|
1062
|
+
}
|
|
1063
|
+
return token;
|
|
1064
|
+
}
|
|
1004
1065
|
/**
|
|
1005
1066
|
* Use when logout fails to forcibly reset the local session
|
|
1006
1067
|
*/
|
|
1007
1068
|
async resetLocalSession() {
|
|
1069
|
+
this.session.updateToken('');
|
|
1008
1070
|
this.session.reset();
|
|
1009
1071
|
await firstValueFrom(this.getAnonymousSession());
|
|
1010
1072
|
}
|
|
@@ -1053,6 +1115,7 @@ class EsolveAuthService {
|
|
|
1053
1115
|
}
|
|
1054
1116
|
catch (error) {
|
|
1055
1117
|
console.error(error);
|
|
1118
|
+
this.session.updateToken('');
|
|
1056
1119
|
this.session.reset();
|
|
1057
1120
|
}
|
|
1058
1121
|
return null;
|
|
@@ -1091,6 +1154,9 @@ class EsolveAuthService {
|
|
|
1091
1154
|
}
|
|
1092
1155
|
return throwError(() => error);
|
|
1093
1156
|
}
|
|
1157
|
+
onSessionValidationEnd() {
|
|
1158
|
+
return this.validating_session$.pipe(filter((busy) => !busy), switchMap(() => this.session.onTokenUpdate()), take(1));
|
|
1159
|
+
}
|
|
1094
1160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsolveAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1095
1161
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsolveAuthService, providedIn: 'root' }); }
|
|
1096
1162
|
}
|
|
@@ -1238,6 +1304,43 @@ const esolveAuthInterceptor = (req, next) => {
|
|
|
1238
1304
|
return next(req);
|
|
1239
1305
|
};
|
|
1240
1306
|
|
|
1307
|
+
const esolveUnauthorizedErrorInterceptor = (req, next) => {
|
|
1308
|
+
const config = inject(EsolveConfigService);
|
|
1309
|
+
const session = inject(EsolveSessionService);
|
|
1310
|
+
const auth = inject(EsolveAuthService);
|
|
1311
|
+
if (req.url.startsWith(`${config.api_url}/`)) {
|
|
1312
|
+
const service_identifier = req.url.replace(`${config.api_url}/`, '');
|
|
1313
|
+
// Skip the following services
|
|
1314
|
+
const excluded_services = ['get-access-token.php', 'set-logout.php'];
|
|
1315
|
+
if (excluded_services.includes(service_identifier)) {
|
|
1316
|
+
return next(req);
|
|
1317
|
+
}
|
|
1318
|
+
return next(req).pipe(catchError$1((error) => {
|
|
1319
|
+
if (error.status === HttpStatusCode.Unauthorized) {
|
|
1320
|
+
const validation_end_stream$ = from(auth.validateSessionAndRefresh());
|
|
1321
|
+
// Wait for valid session and retry
|
|
1322
|
+
return validation_end_stream$.pipe(switchMap((token) => {
|
|
1323
|
+
if (req.method !== 'GET') {
|
|
1324
|
+
throw new Error('Invalid session. Please try again');
|
|
1325
|
+
}
|
|
1326
|
+
// Retry request with new token
|
|
1327
|
+
let headers = req.headers;
|
|
1328
|
+
const state_hash = session.getStateHash();
|
|
1329
|
+
headers = headers.set('X-Esolve-State-Hash', state_hash);
|
|
1330
|
+
// Retry request with new header
|
|
1331
|
+
headers = headers.set('Authorization', `Bearer ${token}`);
|
|
1332
|
+
const retry_req = req.clone({
|
|
1333
|
+
headers,
|
|
1334
|
+
});
|
|
1335
|
+
return next(retry_req);
|
|
1336
|
+
}));
|
|
1337
|
+
}
|
|
1338
|
+
throw error;
|
|
1339
|
+
}));
|
|
1340
|
+
}
|
|
1341
|
+
return next(req);
|
|
1342
|
+
};
|
|
1343
|
+
|
|
1241
1344
|
const ESOLVE_EURUS_AUTO_LOGIN = provideAppInitializer(() => {
|
|
1242
1345
|
const initializerFn = ((auth) => async () => {
|
|
1243
1346
|
await auth.autoLogin();
|
|
@@ -1253,7 +1356,10 @@ function provideNgEsolveConnect(config, auto_login = false) {
|
|
|
1253
1356
|
provide: ESOLVE_CONNECT_CONFIG,
|
|
1254
1357
|
useValue: config,
|
|
1255
1358
|
},
|
|
1256
|
-
provideHttpClient(withInterceptors([
|
|
1359
|
+
provideHttpClient(withInterceptors([
|
|
1360
|
+
esolveAuthInterceptor,
|
|
1361
|
+
esolveUnauthorizedErrorInterceptor,
|
|
1362
|
+
])),
|
|
1257
1363
|
];
|
|
1258
1364
|
if (auto_login) {
|
|
1259
1365
|
providers.push(ESOLVE_EURUS_AUTO_LOGIN);
|
|
@@ -5988,23 +6094,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
5988
6094
|
}]
|
|
5989
6095
|
}], ctorParameters: () => [] });
|
|
5990
6096
|
|
|
5991
|
-
class
|
|
6097
|
+
class EsolveSessionClientUpdateResult extends EsolveResponseResult {
|
|
5992
6098
|
constructor(response) {
|
|
5993
6099
|
super(response);
|
|
5994
6100
|
if (typeof response.esolve_id === 'string') {
|
|
5995
6101
|
throw new Error('Invalid response id.');
|
|
5996
6102
|
}
|
|
5997
|
-
this.
|
|
6103
|
+
this.client_updated = response.esolve_id > 0;
|
|
5998
6104
|
}
|
|
5999
6105
|
}
|
|
6000
6106
|
|
|
6001
|
-
class
|
|
6107
|
+
class EsolveSessionShippingUpdateResult extends EsolveResponseResult {
|
|
6002
6108
|
constructor(response) {
|
|
6003
6109
|
super(response);
|
|
6004
6110
|
if (typeof response.esolve_id === 'string') {
|
|
6005
6111
|
throw new Error('Invalid response id.');
|
|
6006
6112
|
}
|
|
6007
|
-
this.
|
|
6113
|
+
this.shipping_updated = response.esolve_id > 0;
|
|
6008
6114
|
}
|
|
6009
6115
|
}
|
|
6010
6116
|
|
|
@@ -6163,8 +6269,13 @@ class EsolveAccountService {
|
|
|
6163
6269
|
if (response.auto_login) {
|
|
6164
6270
|
const session_data = response.session_data;
|
|
6165
6271
|
let token = '';
|
|
6272
|
+
let expiry_date_unix = undefined;
|
|
6273
|
+
let grace_unix = undefined;
|
|
6166
6274
|
if (!Array.isArray(additional_data)) {
|
|
6167
6275
|
token = additional_data.key;
|
|
6276
|
+
expiry_date_unix =
|
|
6277
|
+
+additional_data.expiry_time;
|
|
6278
|
+
grace_unix = +additional_data.grace_period;
|
|
6168
6279
|
}
|
|
6169
6280
|
this.sessionService.handleUpdateSession({
|
|
6170
6281
|
user_id: +response.esolve_id,
|
|
@@ -6173,6 +6284,8 @@ class EsolveAccountService {
|
|
|
6173
6284
|
shipping_id: +session_data.shipping_id,
|
|
6174
6285
|
clients_id: +session_data.clients_id,
|
|
6175
6286
|
token,
|
|
6287
|
+
expiry_date_unix,
|
|
6288
|
+
grace_unix,
|
|
6176
6289
|
});
|
|
6177
6290
|
}
|
|
6178
6291
|
return new EsolveRegistrationResult(response);
|
|
@@ -9740,5 +9853,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
9740
9853
|
* Generated bundle index. Do not edit.
|
|
9741
9854
|
*/
|
|
9742
9855
|
|
|
9743
|
-
export { ESOLVE_CONNECT_CONFIG, ESOLVE_EURUS_AUTO_LOGIN, EsolveAccountConfirmationResult, EsolveAccountPayment, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAffiliate, EsolveAffiliateCheckResult, EsolveAffiliateLinkResult, EsolveAffiliateService, EsolveAlbum, EsolveAlbumImage, EsolveAlbumImageList, EsolveAlbumList, EsolveAlbumsService, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCaptcha, EsolveCaptchaService, EsolveCartAlternative, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCdnSrcDirective, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveClientAsset, EsolveClientAssetList, EsolveColour, EsolveCompetition, EsolveCompetitionDates, EsolveCompetitionEntryResult, EsolveCompetitionWinner, EsolveCompetitionsService, EsolveConfigService, EsolveCookieService, EsolveCountry, EsolveCountryService, EsolveCoupon, EsolveCouponsService, EsolveDeliveriesService, EsolveDelivery, EsolveDeliveryCategoryTotals, EsolveDeliveryList, EsolveDeliveryStatus, EsolveDependantItem, EsolveDeviceService, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErpDocumentRequest, EsolveErpDocumentsRequestResult, EsolveErrorHandlerService, EsolveFilterFactory, EsolveGenericFilter, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationList, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolveNewsletterResult, EsolveOtp, EsolveOtpService, EsolveOtpValidation, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveReview, EsolveReviewList, EsolveReviewResult, EsolveReviewsService, EsolveSeoInfo, EsolveSeoService, EsolveSessionAddressUpdateResult, EsolveSessionClientUpdateResult, EsolveSessionMetadataService, EsolveSessionService, EsolveSessionShippingUpdateResult, EsolveSetDeviceResult, EsolveSetNotifyResult, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockItemLocationLevel, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockReviewsReport, EsolveStockService, EsolveStockTransactionSales, EsolveSuggestedStockItem, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionApprovalResult, EsolveTransactionClient, EsolveTransactionDelivery, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionPick, EsolveTransactionShippingMethod, EsolveTransactionTimeSlot, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveUserDevice, EsolveVaultItem, EsolveVaultItemResult, EsolveVoucher, EsolveVouchersService, EsolveWalletBalances, EsolveWalletService, EsolveWalletTransaction, EsolveWalletTransactionsList, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveAuthInterceptor, esolveHexHash, isEsolveCdnPath, isFtgCdnPath, isLegacyEsolveCdnPath, processEsolveImageSrc, provideEsolveImageLoader, provideNgEsolveConnect };
|
|
9856
|
+
export { ESOLVE_CONNECT_CONFIG, ESOLVE_EURUS_AUTO_LOGIN, EsolveAccountConfirmationResult, EsolveAccountPayment, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAffiliate, EsolveAffiliateCheckResult, EsolveAffiliateLinkResult, EsolveAffiliateService, EsolveAlbum, EsolveAlbumImage, EsolveAlbumImageList, EsolveAlbumList, EsolveAlbumsService, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCaptcha, EsolveCaptchaService, EsolveCartAlternative, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCdnSrcDirective, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveClientAsset, EsolveClientAssetList, EsolveColour, EsolveCompetition, EsolveCompetitionDates, EsolveCompetitionEntryResult, EsolveCompetitionWinner, EsolveCompetitionsService, EsolveConfigService, EsolveCookieService, EsolveCountry, EsolveCountryService, EsolveCoupon, EsolveCouponsService, EsolveDeliveriesService, EsolveDelivery, EsolveDeliveryCategoryTotals, EsolveDeliveryList, EsolveDeliveryStatus, EsolveDependantItem, EsolveDeviceService, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErpDocumentRequest, EsolveErpDocumentsRequestResult, EsolveErrorHandlerService, EsolveFilterFactory, EsolveGenericFilter, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationList, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolveNewsletterResult, EsolveOtp, EsolveOtpService, EsolveOtpValidation, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveReview, EsolveReviewList, EsolveReviewResult, EsolveReviewsService, EsolveSeoInfo, EsolveSeoService, EsolveSessionAddressUpdateResult, EsolveSessionClientUpdateResult, EsolveSessionMetadataService, EsolveSessionService, EsolveSessionShippingUpdateResult, EsolveSetDeviceResult, EsolveSetNotifyResult, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockItemLocationLevel, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockReviewsReport, EsolveStockService, EsolveStockTransactionSales, EsolveSuggestedStockItem, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionApprovalResult, EsolveTransactionClient, EsolveTransactionDelivery, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionPick, EsolveTransactionShippingMethod, EsolveTransactionTimeSlot, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveUserDevice, EsolveVaultItem, EsolveVaultItemResult, EsolveVoucher, EsolveVouchersService, EsolveWalletBalances, EsolveWalletService, EsolveWalletTransaction, EsolveWalletTransactionsList, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveAuthInterceptor, esolveHexHash, esolveUnauthorizedErrorInterceptor, isEsolveCdnPath, isFtgCdnPath, isLegacyEsolveCdnPath, processEsolveImageSrc, provideEsolveImageLoader, provideNgEsolveConnect };
|
|
9744
9857
|
//# sourceMappingURL=esolve-ng-esolve-connect.mjs.map
|