@transcommerce/cwm-shared 1.1.25 → 1.1.26

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.
@@ -3,7 +3,7 @@ import { Component, Injectable, Pipe, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import * as i2 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
6
- import { InteractionType, PublicClientApplication } from '@azure/msal-browser';
6
+ import { InteractionType, PublicClientApplication, LogLevel } from '@azure/msal-browser';
7
7
  import * as i2$1 from '@angular/common/http';
8
8
  import { HttpResponseBase, HttpResponse, HttpErrorResponse, HttpHeaders, HttpStatusCode } from '@angular/common/http';
9
9
  import { CommonModule } from '@angular/common';
@@ -113,31 +113,120 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
113
113
  args: [{ selector: 'cwm-page-not-found', standalone: false, template: "<p>\n Page Not Found\n</p>\n" }]
114
114
  }] });
115
115
 
116
- function MSALGuardConfigFactory() {
116
+ function msalGuardConfigFactory() {
117
117
  return {
118
118
  interactionType: InteractionType.Redirect,
119
119
  authRequest: {
120
120
  scopes: ['user.read']
121
- }
121
+ },
122
122
  };
123
123
  }
124
124
 
125
- function MSALInstanceFactory() {
125
+ const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;
126
+ function getAuthConfig() {
127
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
+ const wind = window;
129
+ return wind.authConfig;
130
+ }
131
+ // Safe getter for runtime authConfig. Accessing the config at module-eval time
132
+ // can fail if the global `authConfig` script in `index.html` hasn't been injected or
133
+ // loaded yet. This helper reads from window.authConfig (set in index.html) or falls
134
+ // back to the AuthService helper if available, and logs a clear error instead of
135
+ // letting the application throw a TypeError.
136
+ function getAuthConfigSafe() {
137
+ try {
138
+ const winAny = window;
139
+ const cfg = winAny.authConfig ?? (getAuthConfig ? getAuthConfig() : undefined);
140
+ if (!cfg) {
141
+ // Provide a helpful console error and return a minimal object to avoid runtime crashes.
142
+ // The app will still not be authenticated correctly until the real config is available.
143
+ console.error('authConfig is not available on window and AuthService.getAuthConfig() returned no value. Ensure the inline authConfig script in index.html is present and executes before the app bundle., using default cfg:');
144
+ return {
145
+ logLevel: "Info",
146
+ clientId: "af1486e0-a27f-4c8d-8503-0752d90ce72d",
147
+ tenantId: "445012c4-563a-4795-84d0-f7473a3197e0",
148
+ authority: "https://login.microsoft.com/445012c4-563a-4795-84d0-f7473a3197e0",
149
+ scopes: "openid,email,profile",
150
+ redirect_uri: window.location.origin,
151
+ logout_redirect_uri: window.location.origin + '/logout',
152
+ prompt: "login",
153
+ configConnectString: "Endpoint=https://cheap-weed-menus-appconfig.azconfig.io;Id=7F0m;Secret=7X8pkinp53tA8d4o2LfGUMHBWo54o68jYUSS7JcOnyQmh2lDXetkJQQJ99BEAC8vTInIcYexAAACAZAC2P1s"
154
+ };
155
+ }
156
+ return cfg;
157
+ }
158
+ catch (e) {
159
+ console.error('Error while reading authConfig, using default cfg:', e);
160
+ return {
161
+ logLevel: "Info",
162
+ clientId: "af1486e0-a27f-4c8d-8503-0752d90ce72d",
163
+ tenantId: "445012c4-563a-4795-84d0-f7473a3197e0",
164
+ authority: "https://login.microsoft.com/445012c4-563a-4795-84d0-f7473a3197e0",
165
+ scopes: "openid,email,profile",
166
+ redirect_uri: window.location.origin,
167
+ logout_redirect_uri: window.location.origin + '/logout',
168
+ prompt: "login",
169
+ configConnectString: "Endpoint=https://cheap-weed-menus-appconfig.azconfig.io;Id=7F0m;Secret=7X8pkinp53tA8d4o2LfGUMHBWo54o68jYUSS7JcOnyQmh2lDXetkJQQJ99BEAC8vTInIcYexAAACAZAC2P1s"
170
+ };
171
+ }
172
+ }
173
+ // -----------------------------------------
174
+ // Runtime factories for MSAL (avoid module-eval-time access to window)
175
+ // -----------------------------------------
176
+ function msalInstanceFactory() {
177
+ const cfg = getAuthConfigSafe();
126
178
  return new PublicClientApplication({
127
179
  auth: {
128
- clientId: 'YOUR_CLIENT_ID', // from Azure AD App Registration
129
- authority: 'https://login.microsoftonline.com/YOUR_TENANT_ID',
130
- redirectUri: 'http://localhost:4200'
180
+ clientId: cfg.clientId,
181
+ authority: cfg.authority,
182
+ redirectUri: cfg.redirect_uri,
183
+ postLogoutRedirectUri: cfg.redirect_uri,
184
+ },
185
+ cache: {
186
+ cacheLocation: 'localStorage',
187
+ temporaryCacheLocation: 'sessionStorage',
188
+ storeAuthStateInCookie: isIE,
189
+ secureCookies: true,
190
+ cacheMigrationEnabled: true,
191
+ claimsBasedCachingEnabled: true
192
+ },
193
+ system: {
194
+ tokenRenewalOffsetSeconds: 30,
195
+ preventCorsPreflight: false,
196
+ loggerOptions: {
197
+ loggerCallback: {},
198
+ piiLoggingEnabled: true,
199
+ logLevel: LogLevel.Verbose,
200
+ correlationId: "ff88c00e-fd95-49c6-8203-5b2b62a4eb2f",
201
+ },
202
+ windowHashTimeout: 1000,
203
+ iframeHashTimeout: 1000,
204
+ loadFrameTimeout: 1000,
205
+ navigateFrameWait: 1000,
206
+ redirectNavigationTimeout: 1000,
207
+ asyncPopups: false,
208
+ allowRedirectInIframe: false,
209
+ allowNativeBroker: false,
210
+ nativeBrokerHandshakeTimeout: 500,
211
+ pollIntervalMilliseconds: 30,
212
+ },
213
+ telemetry: {
214
+ application: {
215
+ appName: "cwm-digital-menu",
216
+ appVersion: "1.0"
217
+ },
131
218
  }
132
219
  });
133
220
  }
134
221
 
135
- function MSALInterceptorConfigFactory() {
136
- const protectedResourceMap = new Map();
137
- protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);
222
+ function msalInterceptorConfigFactory() {
138
223
  return {
139
- interactionType: InteractionType.Popup, // or Redirect
140
- protectedResourceMap
224
+ interactionType: InteractionType.Redirect,
225
+ protectedResourceMap: new Map([
226
+ ['https://graph.microsoft.com/v1.0/me', ['user.read']],
227
+ ['https://graph.microsoft.com/v1.0/me/photo/$value', ['user.read']],
228
+ [window.location.origin + '/api/inventory?', ["api://" + window.location.hostname + '/inventory.read']]
229
+ ])
141
230
  };
142
231
  }
143
232
 
@@ -26902,7 +26991,7 @@ const MockConfig = {
26902
26991
  },
26903
26992
  "footerCarouselSlideConfig": [
26904
26993
  {
26905
- "image": "../../../images/sunday.png",
26994
+ "image": "../../../assets/images/sunday.png",
26906
26995
  "title": "CBD Sunday",
26907
26996
  "description": "20% off all CBD products & house pre-rolls",
26908
26997
  "highlighted": false,
@@ -26910,7 +26999,7 @@ const MockConfig = {
26910
26999
  "backgroundColor": "black"
26911
27000
  },
26912
27001
  {
26913
- "image": "../../../images/new-monday.jpg",
27002
+ "image": "../../../assets/images/new-monday.jpg",
26914
27003
  "title": "Edible Monday",
26915
27004
  "description": "10% off edibles",
26916
27005
  "highlighted": false,
@@ -26918,7 +27007,7 @@ const MockConfig = {
26918
27007
  "backgroundColor": "black"
26919
27008
  },
26920
27009
  {
26921
- "image": "../../../images/tuesday.png",
27010
+ "image": "../../../assets/images/tuesday.png",
26922
27011
  "title": "Doobie Tuesday",
26923
27012
  "description": "10% off all pre-rolls & packs<",
26924
27013
  "highlighted": false,
@@ -26926,7 +27015,7 @@ const MockConfig = {
26926
27015
  "backgroundColor": "white"
26927
27016
  },
26928
27017
  {
26929
- "image": "../../../images/wednesday.png",
27018
+ "image": "../../../assets/images/wednesday.png",
26930
27019
  "title": "Weed Crush Wednesday",
26931
27020
  "description": "10% off all jar bud",
26932
27021
  "highlighted": false,
@@ -26934,7 +27023,7 @@ const MockConfig = {
26934
27023
  "backgroundColor": "white"
26935
27024
  },
26936
27025
  {
26937
- "image": "../../../images/thursday.png",
27026
+ "image": "../../../assets/images/thursday.png",
26938
27027
  "title": "Thirsty Thursday",
26939
27028
  "description": "10% off Tinctures, RSO & cartridges",
26940
27029
  "highlighted": false,
@@ -26942,7 +27031,7 @@ const MockConfig = {
26942
27031
  "backgroundColor": "white"
26943
27032
  },
26944
27033
  {
26945
- "image": "../../../images/friday.png",
27034
+ "image": "../../../assets/images/friday.png",
26946
27035
  "title": "Fire Friday",
26947
27036
  "description": "10% off all jar bud",
26948
27037
  "highlighted": false,
@@ -26950,7 +27039,7 @@ const MockConfig = {
26950
27039
  "backgroundColor": "white"
26951
27040
  },
26952
27041
  {
26953
- "image": "../../../images/saturday.png",
27042
+ "image": "../../../assets/images/saturday.png",
26954
27043
  "title": "Shatterday Saturday",
26955
27044
  "description": "10% off all concentrate",
26956
27045
  "highlighted": false,
@@ -27081,18 +27170,23 @@ class ConfigService {
27081
27170
  }
27082
27171
  async getConfigurationSettingAsync(key, label) {
27083
27172
  this.logService.methodName = "getConfigurationSettingAsync()";
27084
- var setting;
27085
- if (this.mockData) {
27086
- setting = {};
27173
+ let setting = {};
27174
+ this.logService.log("Get Configuration Setting for Key/Label requested", key, label);
27175
+ if (this.mockData || this.configCache != undefined) {
27176
+ if (this.configCache == undefined) {
27177
+ this.configCache = MockConfig;
27178
+ this.logService.log("Configuration Cache was undefined and Mock Data Enabled. Mock Config will be cached and used for this and all subsequent calls", this.configCache);
27179
+ }
27087
27180
  setting.key = key;
27088
- setting.value = JSON.stringify(MockConfig);
27089
- this.logService.log("Mock Data Enabled, Skipping getConfigurationSettingAsync()");
27181
+ setting.value = JSON.stringify(this.configCache);
27182
+ if (this.mockData)
27183
+ this.logService.log("Mock Data Enabled, Skipping getConfigurationSetting() and using Mock Config from the Configuration Cache", this.configCache);
27184
+ this.logService.log("Configuration Cache was available, skipping getConfigurationSetting() and using Cached Configuration", this.configCache);
27090
27185
  }
27091
- else {
27092
- this.logService.log("Getting Configuration Setting Key/Label", key, label);
27186
+ else if (this.configCache == undefined) {
27187
+ this.logService.log("Configuration Cache was undefined and Mock Data disabled. Getting Configuration Setting Key/Label. Configuration will be cached and used for this and all subsequent calls", key, label);
27093
27188
  setting = await this.configClient.getConfigurationSetting({ key: key, label: label.replace(".", "") });
27094
27189
  }
27095
- this.logService.log("Configuration Setting Key/Value", key, setting.value);
27096
27190
  return setting.value;
27097
27191
  }
27098
27192
  async setConfigurationSettingAsync(templateName, label, setting, contentType = "Text") {
@@ -27219,11 +27313,11 @@ class InventoryApiService extends BaseApiService {
27219
27313
  .set('locationId', this.config?.locationId);
27220
27314
  }
27221
27315
  get apiFullUrl() {
27222
- return this.apiBaseUrl + this.config?.getInventoryApiRoute;
27316
+ return this.apiBaseUrl + (this.config ?? MockConfig.apiConfig).getInventoryApiRoute;
27223
27317
  }
27224
27318
  async getProductsAsync(companyName) {
27225
27319
  this.logService.methodName = "getProductsAsync()";
27226
- var response;
27320
+ let response;
27227
27321
  this.configService.mockData = this.useMockData;
27228
27322
  this.logService.log("Fetching Configuration for Company", companyName);
27229
27323
  this.config = (await this.configService.getConfigAsync(companyName)).apiConfig;
@@ -27561,5 +27655,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
27561
27655
  * Generated bundle index. Do not edit.
27562
27656
  */
27563
27657
 
27564
- export { BaseApiService, CardTypes, Category, ConfigService, Customer, CustomerApiService, CwmSharedModule, DbKeys, ExternalNavigationComponent, InventoryApiService, Justifications, LocalStorageService, LogService, LoggingVerbosity, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MockConfig, MockInventoryApiResponse, MockProfile, NamedColors, NavigateToRouteComponent, OnElementStyle, PageNotFoundComponent, Product, Profile, SafeHtmlPipe, TimeSpan, TimeSpanOverflowError, UserTypes, Utilities, decodeToken, doWithLock, isTokenValid, waitFor };
27658
+ export { BaseApiService, CardTypes, Category, ConfigService, Customer, CustomerApiService, CwmSharedModule, DbKeys, ExternalNavigationComponent, InventoryApiService, Justifications, LocalStorageService, LogService, LoggingVerbosity, MockConfig, MockInventoryApiResponse, MockProfile, NamedColors, NavigateToRouteComponent, OnElementStyle, PageNotFoundComponent, Product, Profile, SafeHtmlPipe, TimeSpan, TimeSpanOverflowError, UserTypes, Utilities, decodeToken, doWithLock, isTokenValid, msalGuardConfigFactory, msalInstanceFactory, msalInterceptorConfigFactory, waitFor };
27565
27659
  //# sourceMappingURL=transcommerce-cwm-shared.mjs.map