@esolve/ng-esolve-connect 0.32.0 → 0.33.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/esm2020/index.mjs +2 -1
- package/esm2020/lib/auth/esolve-auth-interceptor.service.mjs +3 -1
- package/esm2020/lib/menu/esolve-menu-item.model.mjs +2 -2
- package/esm2020/lib/session/esolve-session.model.mjs +16 -7
- package/esm2020/lib/shared/esolve-hex-hash.function.mjs +26 -0
- package/esm2020/lib/stock/classes/esolve-stock-item-base.model.mjs +16 -1
- package/esm2020/lib/stock/interfaces/esolve-stock-base-record.interface.mjs +1 -1
- package/fesm2015/esolve-ng-esolve-connect.mjs +92 -41
- package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
- package/fesm2020/esolve-ng-esolve-connect.mjs +59 -8
- package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/session/esolve-session.model.d.ts +2 -0
- package/lib/shared/esolve-hex-hash.function.d.ts +13 -0
- package/lib/stock/classes/esolve-stock-item-base.model.d.ts +12 -0
- package/lib/stock/interfaces/esolve-stock-base-record.interface.d.ts +3 -0
- package/package.json +1 -1
|
@@ -117,6 +117,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
117
117
|
args: ['RESPONSE']
|
|
118
118
|
}] }]; } });
|
|
119
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Generates a short hexadecimal hash that will be used to indicate a change in
|
|
122
|
+
* state.
|
|
123
|
+
*
|
|
124
|
+
* NOTE: Not to be confused with an actual hash checksum, like MD5 or SHA256.
|
|
125
|
+
* It should only be used to indicate that a state has changed. It should not be
|
|
126
|
+
* used for encryption.
|
|
127
|
+
*
|
|
128
|
+
* @param values Raw strings and numbers to hash
|
|
129
|
+
*
|
|
130
|
+
* @returns Hexadecimal hash value
|
|
131
|
+
*/
|
|
132
|
+
function esolveHexHash(...values) {
|
|
133
|
+
// Add an extra value to pad out hash
|
|
134
|
+
values.push('esolve_eurus');
|
|
135
|
+
// Create a string from the values
|
|
136
|
+
const string = values.join('::');
|
|
137
|
+
let hash = 0;
|
|
138
|
+
for (let x = 0; x < string.length; x++) {
|
|
139
|
+
const ch = string.charCodeAt(x);
|
|
140
|
+
hash = (hash << 5) - hash + ch;
|
|
141
|
+
hash = hash & hash;
|
|
142
|
+
}
|
|
143
|
+
return Math.abs(hash).toString(16);
|
|
144
|
+
}
|
|
145
|
+
|
|
120
146
|
class EsolveSession {
|
|
121
147
|
constructor(id = -1, location_id = 0, key = '', expiration_date) {
|
|
122
148
|
this.id = id;
|
|
@@ -126,22 +152,30 @@ class EsolveSession {
|
|
|
126
152
|
}
|
|
127
153
|
get expired() {
|
|
128
154
|
const current_date = new Date();
|
|
129
|
-
return (
|
|
130
|
-
|
|
155
|
+
return (this.expiration_date === undefined ||
|
|
156
|
+
current_date >= this.expiration_date);
|
|
131
157
|
}
|
|
132
158
|
get authenticated() {
|
|
133
|
-
return
|
|
159
|
+
return this.id > 0;
|
|
134
160
|
}
|
|
135
161
|
get valid() {
|
|
136
|
-
return (
|
|
137
|
-
|
|
138
|
-
|
|
162
|
+
return (this.key !== '' &&
|
|
163
|
+
this.expiration_date !== undefined &&
|
|
164
|
+
this.id >= 0);
|
|
139
165
|
}
|
|
140
166
|
updateUser(user_id) {
|
|
141
167
|
this.id = user_id;
|
|
168
|
+
this.state_hash = undefined;
|
|
142
169
|
}
|
|
143
170
|
updateLocation(location_id) {
|
|
144
171
|
this.location_id = location_id;
|
|
172
|
+
this.state_hash = undefined;
|
|
173
|
+
}
|
|
174
|
+
getStateHash() {
|
|
175
|
+
if (!this.state_hash) {
|
|
176
|
+
this.state_hash = esolveHexHash(this.id, this.location_id, this.key);
|
|
177
|
+
}
|
|
178
|
+
return this.state_hash;
|
|
145
179
|
}
|
|
146
180
|
}
|
|
147
181
|
|
|
@@ -306,6 +340,8 @@ class EsolveAuthInterceptorService {
|
|
|
306
340
|
if (service_identifier !== 'get-access-token.php') {
|
|
307
341
|
params = params.set('key', session.key);
|
|
308
342
|
}
|
|
343
|
+
const state_hash = session.getStateHash();
|
|
344
|
+
headers = headers.set('X-Esolve-State-Hash', state_hash);
|
|
309
345
|
}
|
|
310
346
|
params = params.set('ws_id', this.config.wsid);
|
|
311
347
|
if (this.config.native && this.config.device_designation) {
|
|
@@ -3719,7 +3755,7 @@ class EsolveMenuItem {
|
|
|
3719
3755
|
this.children = [];
|
|
3720
3756
|
if (record) {
|
|
3721
3757
|
this.id = +(record.id ?? 0);
|
|
3722
|
-
this.url = record.
|
|
3758
|
+
this.url = record.sef_url ?? '';
|
|
3723
3759
|
this.name = record.name ?? '';
|
|
3724
3760
|
this.module = record.module ?? '';
|
|
3725
3761
|
if (record.target &&
|
|
@@ -4079,6 +4115,18 @@ class EsolveStockItemBase {
|
|
|
4079
4115
|
* Search engine friendly name
|
|
4080
4116
|
*/
|
|
4081
4117
|
this.sef_name = '';
|
|
4118
|
+
/**
|
|
4119
|
+
* Search composite field made up of key phrases
|
|
4120
|
+
*/
|
|
4121
|
+
this.search_composite = '';
|
|
4122
|
+
/**
|
|
4123
|
+
* Type field. General high grouping
|
|
4124
|
+
*/
|
|
4125
|
+
this.type = '';
|
|
4126
|
+
/**
|
|
4127
|
+
* Sub type field. General high grouping
|
|
4128
|
+
*/
|
|
4129
|
+
this.sub_type = '';
|
|
4082
4130
|
/**
|
|
4083
4131
|
* Short description of stock item
|
|
4084
4132
|
*/
|
|
@@ -4214,6 +4262,9 @@ class EsolveStockItemBase {
|
|
|
4214
4262
|
this.code = record.code ?? '';
|
|
4215
4263
|
this.name = record.name ?? '';
|
|
4216
4264
|
this.sef_name = record.sef_name ?? '';
|
|
4265
|
+
this.search_composite = record.search_composite ?? '';
|
|
4266
|
+
this.type = record.type ?? '';
|
|
4267
|
+
this.sub_type = record.sub_type ?? '';
|
|
4217
4268
|
this.description = record.description ?? '';
|
|
4218
4269
|
this.extended_description = record.extended_description ?? '';
|
|
4219
4270
|
this.image_name = record.image_name ?? '';
|
|
@@ -5954,5 +6005,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
5954
6005
|
* Generated bundle index. Do not edit.
|
|
5955
6006
|
*/
|
|
5956
6007
|
|
|
5957
|
-
export { ESOLVE_CONNECT_CONFIG, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSession, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule };
|
|
6008
|
+
export { ESOLVE_CONNECT_CONFIG, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSession, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash };
|
|
5958
6009
|
//# sourceMappingURL=esolve-ng-esolve-connect.mjs.map
|