@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.
@@ -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 ((this.expiration_date === undefined) ||
130
- (current_date >= this.expiration_date));
155
+ return (this.expiration_date === undefined ||
156
+ current_date >= this.expiration_date);
131
157
  }
132
158
  get authenticated() {
133
- return (this.id > 0);
159
+ return this.id > 0;
134
160
  }
135
161
  get valid() {
136
- return ((this.key !== '') &&
137
- (this.expiration_date !== undefined) &&
138
- (this.id >= 0));
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.url ?? '';
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