1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,289534,e=>{"use strict";e.i(247167);var t=e.i(843476),r=e.i(271645);e.s(["default",0,function(){return(0,r.useEffect)(()=>{},[]),(0,t.jsx)(t.Fragment,{})}])},199437,e=>{"use strict";var t=e.i(843476),r=e.i(3303);e.s(["default",0,function({nonce:e}){return(0,t.jsx)(r.default,{nonce:e,src:"/scripts/digitalWalletCheckoutWegmans_v1.2.js",strategy:"afterInteractive",type:"text/javascript"})}])},536543,e=>{"use strict";var t=e.i(843476),r=e.i(826187),o=e.i(581270),n=e.i(271645),i=e.i(340775),s=e.i(692690),a=e.i(821946),c=e.i(613368),l=e.i(784028),h=e.i(140478),u=e.i(500932),d=e.i(96047),g=e.i(581508),p=e.i(662804),m=e.i(909081),f=e.i(700146),y=e.i(898107),C=e.i(849476),v=e.i(888669),w=e.i(809576),I=e.i(761229),_=e.i(829098),T=e.i(271235),A=e.i(697243),S=e.i(194787);let{logError:E}=(0,I.createLogger)("hooks:useUpdateCarts");async function k({setIsUpdatingCarts:e,setUpdateAllCarts:t,updateAllCarts:r,hasContextChangesInQueue:o,awaitingBackendSyncRef:n}){try{e(!0),await r()}catch(e){n.current=null,E("Error updating cart",e)}finally{e(!1),t(!1),o.current&&(o.current=!1,k({setIsUpdatingCarts:e,setUpdateAllCarts:t,updateAllCarts:r,hasContextChangesInQueue:o,awaitingBackendSyncRef:n}))}}function b(e,t){return e.filter(e=>e.isAlcoholic===t).map(e=>e.sku)}function R(e){let t=(0,v.getIwsCart)();return t?[{cartID:t.id,cartVersion:t.version,custom:(0,v.getShoppingContextCustomFields)(),isAlcoholic:!0,lineItems:[],previousProductIds:b(e,!0)}]:[]}function P(e,t){let r=(0,v.getWegmansCart)();return r?[{cartID:r.id,cartVersion:r.version,custom:[...t,...(0,v.getShoppingContextCustomFields)()],customLineItems:r.customLineItems,isAlcoholic:!1,lineItems:[],previousProductIds:b(e,!1)}]:[]}async function O(e){var t;let r,o,n=i.useCartsStore.getState().carts,s=n.flatMap(e=>e.unavailableItems),a=n.flatMap(e=>e.lineItems),c=[...a,...s],l=await (0,S.fetchAvailableProductDetailsFromProductIDs)({productIds:c.map(e=>e.sku)}),h=(0,v.transformProductsDataIntoCartData)(c,l),u=(0,v.getProductsDataForAddingInCart)({products:h,loyaltyNumber:e});t=u,u=(r=a.filter(e=>!0===e.gotIt).map(e=>e.sku)).length>0?t.map(e=>{let t=e.lineItems.filter(e=>!r.includes(e.sku));return{...e,lineItems:t}}):t;let d=(o=a.filter(e=>!0===e.gotIt).map(e=>e.sku)).length>0?a.filter(e=>!o.includes(e.sku)):a,g=c.filter(e=>!h.some(t=>t.skuID===e.sku));return{allItems:c,availableItems:d,unavailableItems:g,updatedCartData:u}}let{log:N}=(0,I.createLogger)("hooks:useUpdateCarts");function M(e){return e.isAlcoholic}function L(e){return!e.isAlcoholic}function x(e){return e.isAlcoholic}function D(e){return!e.isAlcoholic}function q(e){return e.isAlcoholic}function U(e){return e.setUpdateAllCarts}function H(e){return e.updateAllCarts}function F(e){return e.isUpdatingCarts}function B(e){return e.updateItemRemovedNotification}function K(e){return e.setShoppingContext}function $(e){return e.deleteAllCarts}function j(e){return e.addUpdateCarts}function z(e){return e.carts}function W(e){return e.setIsUpdatingCarts}function V(e){return e.customer}function G(e){return e.isCheckingOut}function Q(e){return e.deliveryAddressId}function J(e){return e.shoppingMethod}function Y(e){return e.storeNumber}var X=e.i(673440),Z=e.i(844887),ee=e.i(975014),et=e.i(618566),er=e.i(186004),eo=e.i(613162),en=e.i(930503),ei=e.i(823688),es=e.i(343794);function ea({buttonText:e="Back to My Cart",className:r,description:o="We couldn't update your store, please try again.",descriptionClassName:i,isOpen:s=!1,onClose:a=()=>{},title:c="We're Sorry"}){(0,ei.useDisableBodyScroll)(s);let[l,h]=(0,n.useState)(!1),u=(0,n.useCallback)(()=>{h(!0),a()},[a]);return(0,t.jsxs)(eo.default,{shouldDisableOutsideClick:!0,className:(0,es.default)("component--cart-notification-dialog","tw:rounded-3xl tw:overflow-hidden tw:w-[350px]","tw:m-auto",r),containerClassName:"tw:flex tw:flex-col ",isOpen:s,onClose:u,children:[(0,t.jsx)(en.default,{appearance:"global--headline-3",className:(0,es.default)("tw:py-6","tw:w-full tw:text-center","tw:text-[color:var(--color-white)]","dialog-header"),level:2,children:c}),(0,t.jsxs)("div",{className:(0,es.default)("tw:text-center","tw:p-6 t
1w:pb-12"),children:[(0,t.jsx)("p",{className:(0,es.default)("global--body-text","tw:block tw:mt-7 tw:mb-6 tw:mx-0",i),children:o}),(0,t.jsx)(er.default,{appearance:"pill",coloration:"primary","data-testid":"back-btn",disabled:l,isLoading:l,onClick:u,children:e})]})]})}let ec="Shopping Context Change",el="Refresh",eh={cart:"Changes have been made to your cart. Refresh to see the latest items and pricing.",list:"Changes have been made to your list. Refresh to see the latest items and pricing."};var eu=e.i(469573),ed=e.i(84429),eg=e.i(150871),ep=e.i(949780);let{log:em,logError:ef}=(0,I.createLogger)("hooks:useCartsSignalRService"),ey="CartContextChanged",eC={accessToken:"",url:""},ev=()=>({...eC});var ew=e.i(885287);let eI=e=>String(e??"").trim().toLowerCase(),e_=e=>null==e||""===e,eT=(e,t)=>!!e_(t)||eI(e)===eI(t),{log:eA}=(0,I.createLogger)("component:CartsInitializer"),eS=["/order/","/orders/placed","/gethelp/","/gethelp-iws/"];e.s(["ORDER_PAGE_PATHNAME_PREFIXES",0,eS,"default",0,function(){let{isGetCartV2EndpointEnabled:e}=(0,_.useFlags)(),{mutate:I}=(0,T.useSWRConfig)(),{isInitialized:S,isLoggedIn:E,isInteractionInProgress:er}=(0,n.use)(m.AuthContext),eo=(0,s.useCustomerStore)(e=>e.isLoading),en=(0,et.usePathname)(),ei=eS.some(e=>en.startsWith(e)),es=en.startsWith("/my-list")?"list":"cart",[eE,ek]=(0,n.useState)(!1),eb=(0,n.useRef)(!1);eA("Cart fetch conditions",{isInitialized:S,isLoggedIn:E,isLoadingCustomer:eo,willFetch:!eo}),(0,r.useGetCustomerApi)(),function(){let{triggerAddProductToCart:e}=(0,c.useAddProductToCart)(),{triggerUpdateProductQuantityForCarts:t}=(0,h.useUpdateProductQuantityForCarts)(),{triggerRemoveItem:r}=(0,l.useRemoveItemFromCart)(),o=(0,i.useCartsStore)(e=>e.isLoading),u=s.useCustomerStore.getState().customer,d=(0,n.useCallback)(()=>{let o=i.useCartsStore.getState().productsToBeAdded;if(o?.length)return void e();let n=i.useCartsStore.getState().updatedProductQuantities;if(n?.length)return void t();let s=i.useCartsStore.getState().productsToRemove;if(s?.length)return void r()},[e,r,t]);(0,n.useEffect)(()=>(document.addEventListener(a.CART_API_QUEUE_EVENT,d),()=>{document.removeEventListener(a.CART_API_QUEUE_EVENT,d)}),[d]),(0,n.useEffect)(()=>{!o&&u&&d()},[u,d,o])}(),function(){let e,t,r,o,c,l,h,I,S,E,X,Z=(0,u.c)(44),ee=(0,C.useShoppingContextStore)(Y),et=(0,C.useShoppingContextStore)(J),er=(0,C.useShoppingContextStore)(Q),eo=(0,y.useCheckoutStore)(G),en=(0,s.useCustomerStore)(V),{profileData:ei}=(0,n.use)(m.AuthContext),es=(0,i.useCartsStore)(W),ea=(0,i.useCartsStore)(z),ec=(0,i.useCartsStore)(j),el=(0,i.useCartsStore)($),eh=(0,i.useCartsStore)(K),eu=(0,i.useCartsStore)(B),ed=(0,i.useCartsStore)(F),eg=(0,i.useCartsStore)(H),ep=(0,i.useCartsStore)(U),em=(0,n.useRef)(!1),ef=(0,n.useRef)(null),{validateCoupons:ey}=(0,p.default)(),eC=(0,n.useRef)(!0);Z[0]===Symbol.for("react.memo_cache_sentinel")?(e={method:"PUT"},Z[0]=e):e=Z[0];let{trigger:ev}=(0,f.useAuthenticatedSWRMutation)(`${d.API_CART}/carts/changestore?${d.API_CART_VERSION}`,void 0,e),{refreshCarts:ew}=(0,g.default)(),{mutate:eI}=(0,T.useSWRConfig)(),{isGetCartV2EndpointEnabled:e_}=(0,_.useFlags)();Z[1]!==ec||Z[2]!==ea||Z[3]!==en?.id||Z[4]!==el||Z[5]!==eo||Z[6]!==e_||Z[7]!==eI||Z[8]!==ei?.email?.value||Z[9]!==ew||Z[10]!==es||Z[11]!==eh||Z[12]!==ee||Z[13]!==ev||Z[14]!==ey?(t=async e=>{let t=ea.find(e=>e.lineItems.length>0)?.storeNumber!==ee,r=C.useShoppingContextStore.getState().storeKey;if(r){let o=(0,v.getShoppingContext)();t&&e.forEach(e=>{let t=ea.find(t=>t.id===e.cartID);e.customLineItems=t?.customLineItems}),N("Updating cart data",{hasStoreNumberChanged:t,cartCount:e.length,storeKey:r});let n=(await ev({cartData:e,customerEmail:ei?.email?.value??"",customerId:en?.id,shoppingContext:o,storeChanged:t,storeKey:r})).data;eh(o),ef.current=o,t||await ew();let i=[];n.grocery&&i.push({...n.grocery,apiVersion:1}),n.iws&&i.push({...n.iws,apiVersion:1}),eo&&await ey(),es(!1),t&&el(),ec(i),(0,a.shouldRevalidateV2Cart)(e_)&&await eI([(0,a.getCartKeyV2)()]),N("Cart update completed successfully",{updatedCartsCount:i.length})}},Z[1]=ec,Z[2]=ea,Z[3]=en?.id,Z[4]=el,Z[5]=eo,Z[6]=e_,Z[7]=eI,Z[8]=ei?.email?.value,Z[9]=ew,Z[10]=es,Z[11]=eh,Z[12]=ee,Z[13]=ev,Z[14]=ey,Z[15]=t):t=Z[15],en?.id,ei?.email?.value;let eT=t;Z[16]!==ei?.loyaltyNumber||Z[17]!==eT||Z[18]!==eu?(r=async()=>{var e,t,r,o;let n,{allItems:s,availableItems:a,updatedCartData:c,unavailableItems:l}=await O(ei?.loyaltyNumber),h=s.some(q),u=s.some(D),d=!1,g=[];if(u){let e,t,r=(e=l.filter(e=>!e.isAlcoholic&&!e.isUnavailableItem),t=l.filter(e=>e.isUnavailableItem&&!e.isAlcoholic),{hasUnavailableWegmansItems:e.length>0||t.length>0,nonAvailableItemsCustomFields:[{name:"nonAvailableItems",value:JSON.stringify([...e.map(e=>({category:e.category,lineItemId:e.id,packSize:e.packSize,productImage:e.imageUrl,productName:e.name,sku:e.sku})),...t])}]});d=r.hasUnavailableWegmansItems,g=r.nonAvailableItemsCustomFields}let p=!!c.length,m=!!l.length;if(!p&&m){let e=!!(0,v.getWegmansCart)();d&&e&&(c=P(a,g)),h&&(c=[...c,...R(a)])}else e=c,t=g,r=c=e.map(e=>{let r=!!e.isAlcoholic,o=e.custom??[];return r||(o=[...o,...t]),{...e,custom:o}}),c=r.map(e=>({...e,previousProductIds:b(a,!!e.isAlcoholic)})),h&&!c.some(x)&&(c=[...c,...R(a)]),u&&!c.some(L)&&(c=[...c,...P(a,g)]);o=c,(n=i.useCartsStore.getState().carts).length!==o.length&&(o=n.map(e=>
1{let t=o.find(t=>t.cartID===e.id);return t||{cartID:e.id,cartVersion:e.version,custom:[...(0,v.getShoppingContextCustomFields)()],isAlcoholic:e.isAlcoholic,lineItems:[]}})),c=o,await eT(c),l.some(M)&&eu()},Z[16]=ei?.loyaltyNumber,Z[17]=eT,Z[18]=eu,Z[19]=r):r=Z[19],ei?.loyaltyNumber;let eA=r;Z[20]!==er||Z[21]!==et||Z[22]!==ee?(o=()=>{let{deliveryAddressId:e,fulfillmentType:t,storeNumber:r}=(0,v.getLatestCartShoppingContext)(i.useCartsStore.getState().serverCarts,i.useCartsStore.getState().shoppingContext);if(!ee||!et)return t&&N("Cart context exists but localStorage context not loaded yet",{cartContext:{cartStoreNumber:r,cartShoppingMethod:t},localStorageContext:{storeNumber:ee,shoppingMethod:et}}),!1;if(!t)return N("localStorage context exists but cart context not loaded yet",{localStorageContext:{storeNumber:ee,shoppingMethod:et},cartContext:{cartStoreNumber:r,cartShoppingMethod:t}}),!1;let o=null!=r&&String(ee)!==String(r),n=et!==t,s=et===C.ShoppingMethodEnum.delivery&&(0,w.fallback)(er,null)!==(0,w.fallback)(e,null);if(!(o||n||s))return ef.current=null,!1;let a=ef.current;return a&&String(a.storeNumber)===String(ee)&&a.fulfillmentType===et&&(0,w.fallback)(a.deliveryAddressId,null)===(0,w.fallback)(er,null)?(N("Awaiting backend context sync; skipping duplicate changestore",{localStorageContext:{storeNumber:ee,shoppingMethod:et,deliveryAddressId:er},cartContext:{cartStoreNumber:r,cartShoppingMethod:t,cartDeliveryAddressId:e}}),!1):(N("Shopping context mismatch detected",{localStorageContext:{storeNumber:ee,shoppingMethod:et,deliveryAddressId:er},cartContext:{cartStoreNumber:r,cartShoppingMethod:t,cartDeliveryAddressId:e},hasStoreNumberChanged:o,hasShoppingMethodChanged:n,hasDeliveryAddressChanged:s}),!0)},Z[20]=er,Z[21]=et,Z[22]=ee,Z[23]=o):o=Z[23];let eS=o;Z[24]!==eS||Z[25]!==ed?(c=()=>!!i.useCartsStore.getState().carts.length&&!!eS()&&!ed&&!0,Z[24]=eS,Z[25]=ed,Z[26]=c):c=Z[26];let eE=c;Z[27]!==es||Z[28]!==ep||Z[29]!==eg||Z[30]!==eE||Z[31]!==eA?(l=()=>{if(eC.current){eC.current=!1;return}eg&&eE()?k({setIsUpdatingCarts:es,setUpdateAllCarts:ep,updateAllCarts:eA,hasContextChangesInQueue:em,awaitingBackendSyncRef:ef}):ep(!1)},h=[ep,eg,eE,es,eA],Z[27]=es,Z[28]=ep,Z[29]=eg,Z[30]=eE,Z[31]=eA,Z[32]=l,Z[33]=h):(l=Z[32],h=Z[33]),(0,n.useEffect)(l,h),Z[34]!==eS||Z[35]!==ep?(I=()=>{eS()&&(i.useCartsStore.getState().isUpdatingCarts?em.current=!0:ep(!0))},S=[eS,ep],Z[34]=eS,Z[35]=ep,Z[36]=I,Z[37]=S):(I=Z[36],S=Z[37]),(0,n.useEffect)(I,S),Z[38]!==ea||Z[39]!==es||Z[40]!==ep||Z[41]!==eA?(X=()=>{let e=function(e){if(0===e.filter(e=>e.lineItems.length>0||e.unavailableItems.length>0).length)return!1;let t=i.useCartsStore.getState().cartsLastFetchedAt;return!!t&&(0,A.getElapsedHours)(t)>=24}(ea);!i.useCartsStore.getState().isUpdatingCarts&&e&&(N("Triggering cart update due to staleness",{isStale:e}),k({setIsUpdatingCarts:es,setUpdateAllCarts:ep,updateAllCarts:eA,hasContextChangesInQueue:em,awaitingBackendSyncRef:ef}))},E=[ea,es,ep,eA],Z[38]=ea,Z[39]=es,Z[40]=ep,Z[41]=eA,Z[42]=E,Z[43]=X):(E=Z[42],X=Z[43]),(0,n.useEffect)(X,E)}(),(0,Z.useCoupons)(),(0,o.useGetDeliveryAddressesApi)();let eR=(0,X.useUpdateDigitalCouponDataForCartProducts)(),eP=(0,i.useCartsStore)(e=>e.setNewCarts),eO=(0,i.useCartsStore)(e=>e.setNewCartsV2),eN=(0,i.useCartsStore)(e=>e.setShoppingContext),eM=(0,i.useCartsStore)(e=>e.setLoading),eL=(0,C.useShoppingContextStore)(e=>e.deliveryAddressId),ex=(0,C.useShoppingContextStore)(e=>e.shoppingMethod),eD=(0,C.useShoppingContextStore)(e=>e.storeNumber),eq=(0,n.useCallback)(async()=>{try{let[t,r]=await Promise.all([I([a.CART_KEY]),e?I([(0,a.getCartKeyV2)()]):Promise.resolve(void 0)]),o=e?r?.shoppingContext:t?.shoppingContext;if(!o)return void eA("Cart refresh returned no shopping context");if(((e,t,r,o)=>{var n,i;return!!e&&eT(r,e.fulfillmentType)&&eT(o,e.storeNumber)&&(n=e.deliveryAddressId,i=e.fulfillmentType,"delivery"!==eI(r)&&"delivery"!==eI(i)||!(e_(t)||e_(n))&&eI(t)===eI(n))})(o,eL,ex,eD))return}catch(e){eA("Cart refresh after SignalR update failed",{error:e});return}if(C.useShoppingContextStore.getState().freezeContextChanges(),ei){eb.current=!0;return}ek(!0)},[eL,e,ei,I,ex,eD]),eU=(0,n.useCallback)(()=>{eq()},[eq]);(0,n.useEffect)(()=>{!ei&&eb.current&&(eb.current=!1,ek(!0))},[ei]);let eH=(0,n.useCallback)(()=>{(0,ew.fireAnalyticsTrackingEvent)("modalEvent",{event:{action:"modal refresh click",eventName:ec,location:{component:"modal"}},message:{context:es,messageText:el.toLowerCase(),messageType:"cart refresh modal"}},"CartsInitializer"),window.location.reload()},[es]);return(0,n.useEffect)(()=>{eE&&(0,ew.fireAnalyticsTrackingEvent)("modalEvent",{event:{action:"modal open",eventName:ec,location:{component:"modal"}},message:{context:es,messageText:"refresh required",messageType:"cart refresh modal"}},"CartsInitializer")},[eE,es]),!function({onCartUpdated:e}={}){let{cartContextSignalR:t=!1}
1=(0,_.useFlags)(),[r,o]=(0,n.useState)(eC),[i,s]=(0,n.useState)(0),{trigger:a}=(0,f.useAuthenticatedSWRMutation)(`${d.API_SIGNAL_R}/carts/negotiate?${d.API_SIGNAL_R_VERSION}`),c=(0,n.useRef)(null),l=(0,n.useRef)(null),h=(0,n.useRef)(e),u=(0,n.useRef)(null),g=(0,n.useRef)(new WeakSet),p=(0,n.useRef)(0),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{h.current=e},[e]);let y=(0,n.useCallback)(()=>{l.current=null;let e=u.current;e&&(g.current.add(e),e.off(ey),e.stop().catch(e=>{ef("Error stopping carts SignalR connection",e)})),u.current=null},[]),C=(0,n.useCallback)(()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),v=(0,n.useCallback)(()=>{var e;if(m.current)return;let t=(e=p.current)<=0?0:Math.min(1e3*2**(e-1),3e4);p.current+=1,m.current=setTimeout(()=>{m.current=null,o(ev()),s(e=>e+1)},t)},[]),w=(0,n.useCallback)(async()=>{if(!u.current)return;let e=u.current.state;if(e===eu.HubConnectionState.Connected||e===eu.HubConnectionState.Connecting)return;if(l.current)return void await l.current;let t=u.current.start();l.current=t;try{await t}finally{l.current=null}},[]),I=(0,n.useCallback)(async()=>{if(c.current)return c.current;let e=(async()=>{let e=await a();return e?.data??null})();c.current=e;try{return await e}finally{c.current=null}},[a]),T=(0,n.useCallback)((e,t)=>{let r=null;if("string"==typeof t?r=t:"string"==typeof e&&(r=e),r)try{return JSON.parse(r)}catch{return ef("Failed to parse cart context changed payload",{messageOrType:e,serializedMessage:t}),null}return e&&"object"==typeof e?e:null},[]),A=(0,n.useCallback)((e,t)=>{let r=new ed.HubConnectionBuilder().withUrl(e,{headers:{Authorization:`Bearer ${t}`},accessTokenFactory:()=>t,transport:eg.HttpTransportType.WebSockets}).withAutomaticReconnect().configureLogging(ep.LogLevel.Error).build();return r.onreconnecting(e=>{em("Carts SignalR hub reconnecting",{error:e})}),r.onreconnected(()=>{em("Carts SignalR hub reconnected successfully"),p.current=0}),r.onclose(e=>{if(g.current.has(r)){g.current.delete(r),em("Carts SignalR hub disconnected intentionally");return}e?ef("Carts SignalR hub disconnected unexpectedly; renegotiating a new connection",e):em("Carts SignalR hub closed without recovering; renegotiating a new connection"),u.current===r&&(u.current=null),v()}),r},[v]),S=(0,n.useCallback)(e=>{e.off(ey),e.on(ey,(e,t)=>{let r=T(e,t);r&&(h.current?.(r),em(`Cart update message received for: ${ey}, message: ${JSON.stringify(r)}`,{message:!!r}))})},[T]);(0,n.useEffect)(()=>{if(!t){c.current=null,y(),o(ev());return}if(r.url&&r.accessToken)return;let e=!0;return(async()=>{try{em("Fetching carts SignalR hub connection info");let t=await I();if(!e)return;if(!t){em("Carts SignalR hub connection data not found, aborting"),v();return}o(t),em("Carts SignalR hub connection info retrieved successfully",{hasUrl:!!t.url,hasAccessToken:!!t.accessToken})}catch(t){if(!e)return;o(ev()),ef("Error fetching carts SignalR hub connection",t),v()}})(),()=>{e=!1}},[t,I,r.accessToken,r.url,i,y,v]),(0,n.useEffect)(()=>t?((async()=>{let{accessToken:e,url:t}=r;if(!t||!e)return y();if(u.current||(u.current=A(t,e)),S(u.current),u.current.state===eu.HubConnectionState.Disconnected)try{await w(),em("Successfully connected with carts hub"),p.current=0}catch(e){ef("Error connecting carts SignalR",e),y(),v()}})(),()=>{y(),C()}):void y(),[S,t,C,A,r,y,v,w]),u.current}({onCartUpdated:eU}),(0,ee.useAuthenticatedSWR)(eo?null:a.CART_KEY,void 0,{onError:()=>{eA("Cart v1 fetch failed"),eM(!1)},onSuccess:async t=>{eA("â
Cart v1 data loaded",{grocery:t?.grocery,iws:t?.iws});let r=[];e?t?.shoppingContext&&eN(t.shoppingContext):eN(t?.shoppingContext??null),t?.grocery&&r.push({...t.grocery,apiVersion:1}),t?.iws&&r.push({...t.iws,apiVersion:1});try{await eR()}finally{eP(r),eM(!1)}},revalidateOnFocus:!1,revalidateOnReconnect:!1}),(0,ee.useAuthenticatedSWR)(eo||!e?null:(0,a.getCartKeyV2)(),void 0,{onError:()=>{eA("Cart v2 fetch failed")},onSuccess:e=>{eA("â
Cart v2 data loaded",{grocery:e?.grocery,iws:e?.iws,shoppingContext:e?.shoppingContext});let t=[];e?.grocery&&t.push({...e.grocery,apiVersion:2}),e?.iws&&t.push({...e.iws,apiVersion:2}),eO(t),eN(e?.shoppingContext??null)},revalidateOnFocus:!1,revalidateOnReconnect:!1}),(0,n.useEffect)(()=>{!S||E||er||eM(!1)},[S,E,er,eM]),(0,t.jsx)(ea,{buttonText:el,description:eh[es],descriptionClassName:"tw:mt-0!",isOpen:eE,title:"Updates Available",onClose:eH})}],536543)},345549,e=>{"use strict";var t=e.i(843476),r=e.i(829098),o=e.i(618566),n=e.i(3303),i=e.i(271645);let s=["/account","/order","/orders","/checkout","/delete-account"];e.s(["EXCLUDED_PATHS",0,s,"default",0,function({nonce:e}){let{constructorProofScheduleActive:a=!1}=(0,r.useFlags)(),c=(0,o.usePathname)(),l=(0,i.useRef)(c);return((0,i.useEffect)(()=>
1{if(l.current=c,!a)return void window.ConstructorioTracker?.setClientOptions({sendTrackingEvents:!1});let e=s.some(e=>c.startsWith(e));window.ConstructorioTracker?.setClientOptions({sendTrackingEvents:!e})},[c,a]),!a||s.some(e=>c.startsWith(e)))?null:(0,t.jsx)(n.default,{nonce:e,src:"https://cnstrc.com/js/cust/wegmans_Svviab.js",onLoad:()=>{let e=s.some(e=>l.current.startsWith(e));window.ConstructorioTracker?.setClientOptions({sendTrackingEvents:!e})}})}])},664343,e=>{"use strict";var t=e.i(843476),r=e.i(986242),o=e.i(909081),n=e.i(849476),i=e.i(761229);class s extends Error{constructor(e="The operation was aborted"){super(e),this.name="AbortError"}}async function a(e,t){let r,o,n,i;"number"==typeof t?(r=0,o=t,n=void 0):(r=t?.delay??0,o=t?.retries??1/0,n=t?.signal);for(let t=0;t<o;t++){if(n?.aborted)throw i??Error("The retry operation was aborted due to an abort signal.");try{return await e()}catch(o){i=o;let e="function"==typeof r?r(t):r;await function(e,{signal:t}={}){return new Promise((r,o)=>{let n=()=>{o(new s)},i=()=>{clearTimeout(a),n()};if(t?.aborted)return n();let a=setTimeout(()=>{t?.removeEventListener("abort",i),r()},e);t?.addEventListener("abort",i,{once:!0})})}(e)}}throw i}var c=e.i(829098),l=e.i(271645);let{log:h,logError:u}=(0,i.createLogger)("launchdarkly:sync");function d(e,t,r){e&&a(()=>e.identify(t),{retries:3,delay:e=>1e3*Math.pow(2,e),signal:r}).then(()=>{r.aborted||h("identify succeeded")}).catch(e=>{r.aborted||u("identify failed after 3 attempts, falling back to defaults",e)})}e.s(["default",0,function(){let e=(0,n.useShoppingContextStore)(e=>e.storeNumber),{profileData:i}=(0,l.use)(o.AuthContext),s=i?.id,a=(0,c.useLDClient)(),h=(0,l.useRef)(null);return(0,l.useEffect)(()=>{h.current?.abort();let t=new AbortController;return h.current=t,d(a,(0,r.createLDContext)({profileId:s,storeNumber:e}),t.signal),()=>{t.abort()}},[e,s,a]),(0,t.jsx)(t.Fragment,{})},"identifyWithRetry",0,d],664343)},309096,e=>{"use strict";e.i(247167);var t=e.i(843476),r=e.i(271645),o=e.i(309353),n=e.i(96047),i=e.i(262215),s=e.i(909081),a=e.i(700146),c=e.i(692690),l=e.i(849476),h=e.i(761229),u=e.i(662537),d=e.i(829098),g=e.i(618566),p=e.i(228167),m=e.i(610293),f=e.i(164277);let{log:y,logError:C}=(0,h.createLogger)("components:LinkInstacartAccount"),v=(0,r.lazy)(()=>e.A(740122)),w=(0,m.withSuspense)(function({className:e}){let h=(0,g.useSearchParams)(),m=h?.get("code"),{profileData:w}=(0,r.use)(s.AuthContext),I=(0,c.useCustomerStore)(e=>e.customer?.key),[_,T]=(0,r.useState)(!1),[A,S]=(0,r.useState)(!1),{triggerCreateICUser:E}=(0,i.default)(),[k,b]=(0,r.useState)(void 0),{isInstacartPlusPopupFlowEnabled:R,isInstacartUserCallsThroughBackend:P}=(0,d.useFlags)(),O=(0,l.useShoppingContextStore)(e=>e.storeNumber),{isAccountLinkingPopupOpen:N}=(0,r.useContext)(f.InstacartPopupContext),{trigger:M}=(0,a.useAuthenticatedSWRMutation)(`${n.API_INSTACART_CONNECT_FULFILLMENT}/users/${I}/link?${n.API_INSTACART_CONNECT_FULFILLMENT_VERSION}`,void 0,{headers:{[p.STORE_NUMBER_KEY_FOR_IC_SERVICE_OPTION]:O.toString()}});(0,r.useEffect)(()=>{async function e(e){"https://www.instacart.com"===e.origin&&"account_link"===e.data.type&&(!0===e.data.granted&&e.data.oauthCode?b(e.data.oauthCode):(S(!1),T(!0),u.captureException(Error("No oauthcode received from Instacart"),{tags:{component:"LinkInstacartAccount",eventType:"ACCOUNT_LINKING_CALL:LINKING_DENIED_BY_USER",message:"The user denied permission to link accounts, so we will not have the oauthcode and should not make a linking call to backend."}})))}if(R)return window.addEventListener("message",e,!0),()=>{window.removeEventListener("message",e,!0)}},[R]),(0,r.useEffect)(()=>{(async()=>{if(!I||!w||R&&!k||!R&&!m)return;y("Linking Instacart account",{userKey:I,hasCode:!!m});let e={first_name:w.firstName,last_name:w.lastName,phone_number:w?.phoneNumber?.value||"",user_id:I};P||await E(e);try{await M({authorization_code:R?k??"":m??"",redirect_uri:R?o.IC_POPUP_REDIRECT_URI:o.IC_REDIRECT_URI}),y("Instacart account linked successfully",{userKey:I}),u.captureMessage("Instacart account linked successfully"),S(!0),T(!0)}catch(e){C("Failed to link Instacart account",{error:e,userKey:I}),u.captureException(e,{tags:{component:"LinkInstacartAccount",eventType:"ACCOUNT_LINKING_CALL:CALL_WITH_AUTHCODE_FAILED",message:"We received an oauthcode from Instacart, but failed to link it to a Wegmans account on backend."}}),S(!1),T(!0)}finally{b(void 0)}})()},[m,R,k,E,M,w,I]);let L=(0,r.useCallback)(()=>{T(!1),S(void 0)},[]);return(0,t.jsx)(t.Fragment,{children:_&&!N&&(0,t.jsx)(v,{className:e,isOpen:_,success:A,onClose:L})})});e.s(["default",0,w])},235713,e=>{"use strict";var t=e.i(271645),r=e.i(96047),o=e.i(84429),n=e.i(150871),i=e.i(949780),s=e.i(469573),a=e.i(700146),c=e.i(477552),l=e.i(761229);let{log:h,logError:u}=(0,l.createLogger)("hooks:useOrdersSignalRService"),d={accessToken:"",url:""};var g=e.i(692690),p=e.i(303573),m=e.i(597717),f=e.i(62340),y=e.i(909081),C=e.i(975014);let{log:v}=(0,l.createLogger)("OrdersInitializer");e.s(["default",0,function(){!function(){let{triggerAddProductToOrder:e}=(0,m.default)(),{triggerUpdateQuantity:r}=(0,f.default)(),o=(0,c.useMyOrdersStore)(e=>e.isLoadingOrders),n=g.useCustomerStore.getState().customer,i=(0,t.useCallback)(()=>{let t=c.useMyOrdersStore.getState().productsToBeAddedInOrder;t?.length&&e();let o=c.useMyOrdersStore.getState().updatedProductQuantities;o?.length&&r()},[e,r]);(0,t.useEffect)(()=>
1(document.addEventListener(p.ORDER_API_QUEUE_EVENT,i),()=>{document.removeEventListener(p.ORDER_API_QUEUE_EVENT,i)}),[i]),(0,t.useEffect)(()=>{!o&&n&&i()},[n,i,o])}();let{isLoggedIn:e,isProfileLoading:l,isInteractionInProgress:w}=(0,t.use)(y.AuthContext),I=(0,c.useMyOrdersStore)(e=>e.updateOrders),_=function(){let e=(0,c.useMyOrdersStore)(e=>e.updateOrders),l=(0,c.useMyOrdersStore)(e=>e.updateCurrentOrderDeliveryLocation),[g,p]=(0,t.useState)(d),{trigger:m}=(0,a.useAuthenticatedSWRMutation)(`${r.API_SIGNAL_R}/orders/negotiate?${r.API_SIGNAL_R_VERSION}`),f=(0,t.useRef)(null);return(0,t.useEffect)(()=>{(async()=>{try{h("Fetching SignalR hub connection info");let e=(await m())?.data;if(!e)return void h("SignalR hub connection data not found, aborting");p(e),h("SignalR hub connection info retrieved successfully",{hasUrl:!!e.url,hasAccessToken:!!e.accessToken})}catch(e){p(d),u("Error fetching SignalR hub connection",e)}})()},[m]),(0,t.useEffect)(()=>{(async()=>{let{accessToken:t,url:r}=g;if(!r||!t)return f.current?.stop();if(f.current||(f.current=new o.HubConnectionBuilder().withUrl(r,{headers:{Authorization:`Bearer ${t}`},accessTokenFactory:()=>t,transport:n.HttpTransportType.WebSockets}).configureLogging(i.LogLevel.Error).build(),f.current.onclose(e=>{e?u("SignalR hub disconnected unexpectedly",e):h("SignalR hub disconnected")})),f.current.on("OrderUpdated",(t,r)=>{let o=JSON.parse(r);e([o]),h(`Order update message received for: ${t}`,{hasOrder:!!o})}),f.current.on("DeliveryLocationUpdated",(e,t,r)=>{let o=JSON.parse(r);l(t,{lat:o?.Latitude,lng:o?.Longitude,lastUpdate:new Date}),h(`Order update message received for: ${e}`,{deliveryLocation:!!o})}),f.current.state===s.HubConnectionState.Disconnected)try{await f.current.start(),h("Successfully connected with orders hub ðð")}catch(e){u("Error connecting SignalR",e)}})()},[g,e,l]),f.current}();(0,t.useEffect)(()=>()=>{_?.stop()},[_]);let T=(0,c.useMyOrdersStore)(e=>e.setIsLoadingOrders),A=(0,c.useMyOrdersStore)(e=>e.setIsError);return(0,C.useAuthenticatedSWR)(`${r.API_ORDER}/orders/activeorders?${r.API_ORDER_VERSION}`,void 0,{onError:()=>{v("Orders fetch failed"),T(!1),A(!0)},onSuccess:async e=>{v("Orders data loaded",{orderCount:e?.orders?.length||0}),T(!1),A(!1),e?.orders&&I(e.orders)},revalidateOnFocus:!1,revalidateOnReconnect:!1}),(0,t.useEffect)(()=>{e||l||w||T(!1)},[w,l,e,T]),null}],235713)},531021,e=>{"use strict";e.i(247167);var t=e.i(843476),r=e.i(909081),o=e.i(829098),n=e.i(3303),i=e.i(271645);e.s(["default",0,function(){let{hasBeEnabledFraudCheck:e=!0}=(0,o.useFlags)(),{sessionID:s}=(0,i.use)(r.AuthContext);if(!s||!e)return null;let a="https:"===window.location.protocol?"https://":"http://",c=`${a}beacon.riskified.com?shop=www.wegmans.com&sid=${s}`;return(0,t.jsx)(n.default,{src:c,strategy:"afterInteractive",onError:()=>console.error("Failed to load the Riskified beacon script"),onLoad:()=>console.log("Riskified beacon loaded!")})}])},884636,e=>{"use strict";var t=e.i(96047),r=e.i(975014),o=e.i(890515),n=e.i(849476),i=e.i(877614),s=e.i(271645);e.s(["default",0,function(){let e=(0,o.useMySavedListsStore)(e=>e.setSavedLists),a=(0,o.useMySavedListsStore)(e=>e.setIsLoading),c=(0,o.useMySavedListsStore)(e=>e.setIsLoadingNewStore),l=(0,n.useShoppingContextStore)(e=>e.storeNumber),{mutate:h}=(0,r.useAuthenticatedSWR)(`${t.API_SAVED_LIST}/savedlists?${t.API_SAVED_LIST_VERSION}`,void 0,{onError:()=>{a(!1)},onSuccess:async t=>{let r=Array.from(new Set(t.flatMap(e=>e.lineItems.map(e=>e.sku)).filter(e=>!!e))),o=t.map(e=>({...e,lineItems:e.lineItems.filter(e=>e.sku)})),n=await (0,i.addProductDetailsToSavedLists)(r,l,o);a(!1),e(n)},revalidateOnFocus:!1,revalidateOnReconnect:!1});return(0,s.useEffect)(()=>{c(!0),h()},[l,h,c]),null}],884636)},84048,e=>{"use strict";var t=e.i(909081),r=e.i(313069),o=e.i(494691),n=e.i(662537),i=e.i(829098),s=e.i(271645);let a="vip_cuid_watch",c=!1;function l(){try{let e=o.getReplay();if(!e||"session"===e.getRecordingMode())return;c=!0,e.getReplayId()?e.flush().catch(()=>{}):e.start()}catch{}}function h(){if(c){c=!1;try{let e=o.getReplay();if(!e)return;Promise.resolve(e.stop()).then(()=>
1{e.startBuffering()}).catch(()=>{})}catch{}}}function u(e){try{let t=e?.getContext();if(!t)return;return"multi"===t.kind?t.user?.key:t.key}catch{return}}function d({profileId:e,isVipFlagEnabled:t,launchDarklyContextUserKey:o}){let i=!!e&&t&&o===e;return(0,r.setSentryVipStatus)(i),n.setTag(a,i?"true":void 0),i?l():h(),i}e.s(["SENTRY_VIP_RESYNC_INTERVAL_MS",0,6e4,"SENTRY_VIP_TAG",0,a,"default",0,function(){let e=(0,i.useFlags)(),r=(0,i.useLDClient)(),{profileData:o}=(0,s.use)(t.AuthContext),n=o?.id,a=!0===e.isSentryVipSamplingEnabled;return(0,s.useEffect)(()=>{let e=()=>d({profileId:n,isVipFlagEnabled:a,launchDarklyContextUserKey:u(r)});e();let t=setInterval(e,6e4);return()=>{clearInterval(t)}},[n,a,r]),null},"demoteReplayForVip",0,h,"getLaunchDarklyContextUserKey",0,u,"promoteReplayForVip",0,l,"resetReplayPromotionTracking",0,function(){c=!1},"syncSentryVipState",0,d],84048)},306907,e=>{"use strict";var t=e.i(843476),r=e.i(343794),o=e.i(440829);e.i(617241);var n=e.i(607314),i=e.i(872770);function s({children:e,className:a,is:c="body"}){let l=(0,n.useBreakpoint)(),h=(0,i.useAIChatStore)(i.selectIsVisible),u=(0,i.useAIChatStore)(i.selectIsFullWidth),d=(0,o.useAIChatHeaderOffsetValue)(),g=l.hasInitialized&&l.lg&&h,p={"--ai-chat-header-offset":`${d}px`};return(0,t.jsx)(c,{className:(0,r.default)("component--site-body","global--ai-chat-vars",a,{"global--ai-chat-sidebar-open":g,"global--ai-chat-sidebar-full-width":g&&u}),style:p,children:e})}e.s(["default",0,function({children:e,className:r,is:n="body"}){return(0,t.jsx)(o.AIChatHeaderOffsetProvider,{children:(0,t.jsx)(s,{className:r,is:n,children:e})})}])},391852,e=>{"use strict";var t=e.i(843476);e.i(908743);var r=e.i(861293),o=e.i(162282),n=e.i(155929),i=e.i(271645),s=e.i(519130),a=e.i(597985),c=e.i(552836),c=c,l=e.i(777539);let h=function(e={}){let{autoHideDuration:t=null,disableWindowBlurListener:r=!1,onClose:o,open:n,resumeHideDuration:s}=e,h=(0,c.default)();i.useEffect(()=>{if(n)return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)};function e(e){e.defaultPrevented||"Escape"!==e.key||o?.(e,"escapeKeyDown")}},[n,o]);let u=(0,a.unstable_useEventCallback)((e,t)=>{o?.(e,t)}),d=(0,a.unstable_useEventCallback)(e=>{o&&null!=e&&h.start(e,()=>{u(null,"timeout")})});i.useEffect(()=>(n&&d(t),h.clear),[n,t,d,h]);let g=h.clear,p=i.useCallback(()=>{null!=t&&d(null!=s?s:.5*t)},[t,s,d]);return i.useEffect(()=>{if(!r&&n)return window.addEventListener("focus",p),window.addEventListener("blur",g),()=>{window.removeEventListener("focus",p),window.removeEventListener("blur",g)}},[r,n,p,g]),{getRootProps:(t={})=>{let r={...(0,l.default)(e),...(0,l.default)(t)};return{role:"presentation",...t,...r,onBlur:e=>{let t=r.onBlur;t?.(e),p()},onFocus:e=>{let t=r.onFocus;t?.(e),g()},onMouseEnter:e=>{let t=r.onMouseEnter;t?.(e),g()},onMouseLeave:e=>{let t=r.onMouseLeave;t?.(e),p()}}},onClickAway:e=>{o?.(e,"clickaway")}}};var u=e.i(398664),d=e.i(261722),g=e.i(954512),p=e.i(50915),m=e.i(699844),f=e.i(390290),y=e.i(554539),C=e.i(207670),v=e.i(444205),w=e.i(374429),I=e.i(540672),_=e.i(319727);function T(e){return(0,_.default)("MuiSnackbarContent",e)}(0,I.default)("MuiSnackbarContent",["root","message","action"]);let A=(0,d.styled)(w.default,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(e,t)=>t.root})((0,p.default)(({theme:e})=>{let t="light"===e.palette.mode?.8:.98,r=(0,v.emphasize)(e.palette.background.default,t);return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(r),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:r,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(e.vars||e).shape.borderRadius,flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),S=(0,d.styled)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0"}),E=(0,d.styled)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),k=i.forwardRef(function(e,r){let o=(0,m.useDefaultProps)({props:e,name:"MuiSnackbarContent"}),{action:n,className:i,message:a,role:c="alert",...l}=o,h=(e=>{let{classes:t}=e;return(0,s.default)({root:["root"],action:["action"],message:["message"]},T,t)})(o);return(0,t.jsxs)(A,{role:c,square:!0,elevation:6,className:(0,C.default)(h.root,i),ownerState:o,ref:r,...l,children:[(0,t.jsx)(S,{className:h.message,ownerState:o,children:a}),n?(0,t.jsx)(E,{className:h.action,ownerState:o,children:n}):null]})});function b(e){return(0,_.default)("MuiSnackbar",e)}
1(0,I.default)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var R=e.i(854072);let P=(0,d.styled)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[`anchorOrigin${(0,f.default)(r.anchorOrigin.vertical)}${(0,f.default)(r.anchorOrigin.horizontal)}`]]}})((0,p.default)(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>"top"===e.anchorOrigin.vertical,style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>"top"!==e.anchorOrigin.vertical,style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>"left"===e.anchorOrigin.horizontal,style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>"right"===e.anchorOrigin.horizontal,style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>"center"===e.anchorOrigin.horizontal,style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),O=i.forwardRef(function(e,r){let o=(0,m.useDefaultProps)({props:e,name:"MuiSnackbar"}),n=(0,g.useTheme)(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:c,anchorOrigin:{vertical:l,horizontal:d}={vertical:"bottom",horizontal:"left"},autoHideDuration:p=null,children:C,className:v,ClickAwayListenerProps:w,ContentProps:I,disableWindowBlurListener:_=!1,message:T,onBlur:A,onClose:S,onFocus:E,onMouseEnter:O,onMouseLeave:N,open:M,resumeHideDuration:L,slots:x={},slotProps:D={},TransitionComponent:q,transitionDuration:U=a,TransitionProps:{onEnter:H,onExited:F,...B}={},...K}=o,$={...o,anchorOrigin:{vertical:l,horizontal:d},autoHideDuration:p,disableWindowBlurListener:_,TransitionComponent:q,transitionDuration:U},j=(e=>{let{classes:t,anchorOrigin:r}=e,o={root:["root",`anchorOrigin${(0,f.default)(r.vertical)}${(0,f.default)(r.horizontal)}`]};return(0,s.default)(o,b,t)})($),{getRootProps:z,onClickAway:W}=h({...$}),[V,G]=i.useState(!0),Q={slots:{transition:q,...x},slotProps:{content:I,clickAwayListener:w,transition:B,...D}},[J,Y]=(0,R.default)("root",{ref:r,className:[j.root,v],elementType:P,getSlotProps:z,externalForwardedProps:{...Q,...K},ownerState:$}),[X,{ownerState:Z,...ee}]=(0,R.default)("clickAwayListener",{elementType:u.default,externalForwardedProps:Q,getSlotProps:e=>({onClickAway:(...t)=>{e.onClickAway?.(...t),W(...t)}}),ownerState:$}),[et,er]=(0,R.default)("content",{elementType:k,shouldForwardComponentProp:!0,externalForwardedProps:Q,additionalProps:{message:T,action:c},ownerState:$}),[eo,en]=(0,R.default)("transition",{elementType:y.default,externalForwardedProps:Q,getSlotProps:e=>({onEnter:(...t)=>{e.onEnter?.(...t),((e,t)=>{G(!1),H&&H(e,t)})(...t)},onExited:(...t)=>{e.onExited?.(...t),(e=>{G(!0),F&&F(e)})(...t)}}),additionalProps:{appear:!0,in:M,timeout:U,direction:"top"===l?"down":"up"},ownerState:$});return!M&&V?null:(0,t.jsx)(X,{...ee,...x.clickAwayListener&&{ownerState:Z},children:(0,t.jsx)(J,{...Y,children:(0,t.jsx)(eo,{...en,children:C||(0,t.jsx)(et,{...er})})})})});var N=e.i(343794);e.i(60318);let M=(0,e.i(768834).create)()(e=>({hasSnackbars:!0}));var L=e.i(674438);let x=(0,i.forwardRef)(function(e,r){return(0,t.jsx)(n.default,{elevation:6,ref:r,variant:"filled",...e})});e.s(["default",0,function({className:e}){let n=(0,L.useSnackbarStore)(e=>e.open),i=(0,L.useSnackbarStore)(e=>e.hide),s=(0,L.useSnackbarStore)(e=>e.message),a=(0,L.useSnackbarStore)(e=>
1e.severity),c=(0,L.useSnackbarStore)(e=>e.isMuted);return M(e=>e.hasSnackbars)?(0,t.jsx)("div",{className:(0,N.default)("component--snackbar",e),children:c?(0,t.jsx)(O,{action:(0,t.jsx)(o.IconButton,{"aria-label":"close",color:"inherit",onClick:i,children:(0,t.jsx)(r.Close,{})}),autoHideDuration:6e3,message:s,open:n,onClose:i}):(0,t.jsx)(O,{autoHideDuration:6e3,open:n,onClose:i,children:(0,t.jsx)(x,{severity:a,onClose:i,children:s})})}):null}],391852)},211467,e=>{"use strict";var t=e.i(843476),r=e.i(849476),o=e.i(829098),n=e.i(986242);e.s(["default",0,function(e){let{children:i,...s}=e,a=(0,r.useShoppingContextStore)(e=>e.storeNumber),c=(0,n.createLDContext)({storeNumber:a});return(0,t.jsx)(o.LDProvider,{...s,context:c,children:i})}])},986242,e=>{"use strict";e.s(["createLDContext",0,function({profileId:e,storeNumber:t}={}){let r={kind:"multi",device:{anonymous:!0},user:e?{key:e}:{key:"DigitalStoreWebGuest",anonymous:!0}};return t&&(r.organization={key:`DigitalStoreWeb-${t}`,storeNumber:t}),r}],986242)},573618,e=>{"use strict";let t;var r=e.i(843476),o=e.i(584240),n=e.i(522016),i=e.i(271645);let s=(0,i.forwardRef)(function(e,t){return(0,r.jsx)(n.default,{ref:t,...e})}),a=(0,o.createTheme)({components:{MuiAlert:{styleOverrides:{root:{"@media (min-width:1024px)":{fontSize:"1rem"},fontSize:"0.813rem"}}},MuiButtonBase:{defaultProps:{LinkComponent:s}},MuiLink:{defaultProps:{component:s}}},palette:{primary:{dark:"#a8340a",main:"#ce3f24"}},typography:{fontFamily:'var(--font-whitney-ssm, "Whitney SSm"),sans-serif'}});var c=e.i(948203),l=e.i(598533),l=l,h=e.i(279459);function u(e){let{options:t,CacheProvider:o=l.C,children:n}=e,[s]=i.useState(()=>{let e=(0,c.default)({...t,key:t?.key??"mui"});e.compat=!0;let r=e.insert,o=[];return e.insert=(...n)=>{t?.enableCssLayer&&!n[1].styles.match(/^@layer\s+[^{]*$/)&&(n[1].styles=`@layer mui {${n[1].styles}}`);let[i,s]=n;return void 0===e.inserted[s.name]&&o.push({name:s.name,isGlobal:!i}),r(...n)},{cache:e,flush:()=>{let e=o;return o=[],e}}});return(0,h.useServerInsertedHTML)(()=>{let e=s.flush();if(0===e.length)return null;let o="",n=s.cache.key,a=[];return e.forEach(({name:e,isGlobal:t})=>{let r=s.cache.inserted[e];"string"==typeof r&&(t?a.push({name:e,style:r}):(o+=r,n+=` ${e}`))}),(0,r.jsxs)(i.Fragment,{children:[a.map(({name:e,style:o})=>(0,r.jsx)("style",{nonce:t?.nonce,"data-emotion":`${s.cache.key}-global ${e}`,dangerouslySetInnerHTML:{__html:o}},e)),o&&(0,r.jsx)("style",{nonce:t?.nonce,"data-emotion":n,dangerouslySetInnerHTML:{__html:o}})]})}),(0,r.jsx)(o,{value:s.cache,children:n})}var l=l,d=e.i(422359);let g=new Map,p;if("object"==typeof document&&!(t=document.querySelector('[name="emotion-insertion-point"]'))){(t=document.createElement("meta")).setAttribute("name","emotion-insertion-point"),t.setAttribute("content","");let e=document.querySelector("head");e&&e.prepend(t)}function m(e){let{injectFirst:o,enableCssLayer:n,children:s}=e,a=i.useMemo(()=>{let e=`${o}-${n}`;if("object"==typeof document&&g.has(e))return g.get(e);let r=function(e,r){if(e||r){var o;let n;class i extends d.StyleSheet{insert(e,r){return p?p(e,r):(this.key&&this.key.endsWith("global")&&(this.before=t),super.insert(e,r))}}let s=(o={key:"css",insertionPoint:e?t:void 0},(n=(0,c.default)(o)).sheet=new i({key:n.key,nonce:n.sheet.nonce,container:n.sheet.container,speedy:n.sheet.isSpeedy,prepend:n.sheet.prepend,insertionPoint:n.sheet.insertionPoint}),n);if(r){let e=s.insert;s.insert=(...t)=>(t[1].styles.match(/^@layer\s+[^{]*$/)||(t[1].styles=`@layer mui {${t[1].styles}}`),e(...t))}return s}}(o,n);return g.set(e,r),r},[o,n]);return a?(0,r.jsx)(l.C,{value:a,children:s}):s}var f=e.i(475756);e.s(["default",0,function({children:e}){return(0,r.jsx)(u,{children:(0,r.jsx)(m,{injectFirst:!0,children:(0,r.jsx)(f.ThemeProvider,{theme:a,children:(0,r.jsx)(r.Fragment,{children:e})})})})}],573618)},756668,e=>{"use strict";e.i(247167);var t=e.i(843476),r=e.i(761229),o=e.i(662537),n=e.i(3303);let{log:i,logError:s}=(0,r.createLogger)("config:ExternalScripts"),a=[{src:"https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2",strategy:"lazyOnload"},{src:"https://www.instagram.com/embed.js",strategy:"lazyOnload"}
1,{nonce:!0,src:"https://maps.googleapis.com/maps/api/js?key=AIzaSyCJhfd_1VjODqs5l9eOvV_D-au-giIbc6A&libraries=places,marker&v=quarterly&loading=async"},{nonce:!0,src:"https://apps.bazaarvoice.com/deployments/wegmansfoodmarkets/new_site/production/en_US/bv.js",strategy:"lazyOnload",onError:e=>{s("Bazaarvoice script failed to load:",e),o.captureException(e,{tags:{component:"ExternalScripts",script:"bazaarvoice"}})},onLoad:()=>i("Bazaarvoice script loaded")},{nonce:!0,src:"https://assets.adobedtm.com/95b512f96ee4/757451ead687/launch-d837be47852b.min.js"},{nonce:!0,src:"https://asset.fwcdn3.com/js/embed-feed.js"},{nonce:!0,src:"https://asset.fwcdn3.com/js/fwn.js"},{nonce:!0,src:"https://asset.fwcdn3.com/js/storyblock.js"},{nonce:!0,src:"https://asset.fwcdn3.com/js/storylink.js"}];e.s(["default",0,({nonce:e})=>(0,t.jsx)(t.Fragment,{children:a.map((r,o)=>(0,t.jsx)(n.default,{async:r.async,crossOrigin:"anonymous"===r.crossOrigin||"use-credentials"===r.crossOrigin?r.crossOrigin:void 0,defer:r.defer,nonce:r.nonce?e:void 0,src:r.src,strategy:r.strategy,type:r.type,onError:r.onError,onLoad:r.onLoad},r.src))})])},826187,e=>{"use strict";var t=e.i(271645),r=e.i(96047),o=e.i(909081),n=e.i(975014),i=e.i(956154),s=e.i(692690),a=e.i(362823),c=e.i(587486),l=e.i(761229),h=e.i(281282),u=e.i(356046);let{log:d}=(0,l.createLogger)("useGetCustomerApi");e.s(["useGetCustomerApi",0,function(){let{triggerAddNewCustomer:e}=(0,h.useCreateCustomerApi)(),l=(0,s.useCustomerStore)(e=>e.updateCustomer),g=(0,s.useCustomerStore)(e=>e.customer),p=(0,s.useCustomerStore)(e=>e.setIsLoading),{updateTaxExemptAndBusinessAccount:m}=(0,u.useUpdateCustomerApi)(),{profileData:f}=(0,t.use)(o.AuthContext),y=(0,i.useCheckoutDeliveryStore)(e=>e.setEnableSMSNotifications),C=(0,i.useCheckoutDeliveryStore)(e=>e.setAlreadyHasSMSNotificationsConsent),{isLoading:v}=(0,n.useAuthenticatedSWR)(g?null:`${r.API_ACCOUNT}/customer?${r.API_ACCOUNT_VERSION}`,void 0,{onError(){d("Customer fetch failed"),p(!1)},onSuccess:t=>{let r=t?.customer;if(r){d("Customer data loaded",{customerId:r.id});let e=!!r.custom?.customFieldsRaw.find(e=>e.name===a.IS_SMS_ENABLE_FOR_ORDER);l(r),(0,c.setAuthenticatedUserToken)(r.id),p(!1),y(e),C(e);let t=r.custom?.customFieldsRaw.find(e=>e.name===a.IS_BUSINESS_ACCOUNT)?.value,o=r.custom?.customFieldsRaw.find(e=>e.name===a.IS_TAX_EXEMPT)?.value,n=void 0===t,i=void 0===o,s=!!f&&!n&&!!t!=!!f.isBusiness,h=!!f&&!i&&!!o!=!!f.isTaxExempt;(n||i||s||h)&&m()}else d("No customer data, creating new customer"),e()},revalidateOnFocus:!1,revalidateOnReconnect:!1});(0,t.useEffect)(()=>{g&&p(!1)},[g,v,p])}])},579184,e=>{"use strict";var t=e.i(843476),r=e.i(343794),o=e.i(271645),n=e.i(435373);e.s(["default",0,function({className:e}){let i=(0,n.useBreakpointStore)(e=>e.setCurrentBreakpoint),s=(0,n.useBreakpointStore)(e=>e.setHasInitialized),a=(0,o.useRef)(null),c=(0,o.useMemo)(()=>[{name:"xxs",visibilityClass:"tw:xxs:block"},{name:"xs",visibilityClass:"tw:xs:block"},{name:"sm",visibilityClass:"tw:sm:block"},{name:"md",visibilityClass:"tw:md:block"},{name:"lg",visibilityClass:"tw:lg:block"},{name:"xl",visibilityClass:"tw:xl:block"},{name:"2xl",visibilityClass:"tw:2xl:block"}],[]);return(0,o.useEffect)(()=>{if(window){function e(){if(!a.current||!window?.getComputedStyle)return;let e=c.slice().reverse().find(e=>{let t=a.current?.querySelector(`.break-${e.name}`);return!!t&&"none"!==window.getComputedStyle(t).display});i(e?.name??null)}return e(),s(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}},[c,i,s]),(0,t.jsx)("div",{"aria-hidden":"true",className:(0,r.default)("component--site-breakpoint-detector",e),ref:a,children:c.map(e=>(0,t.jsx)("div",{className:(0,r.default)(`break-${e.name}`,"tw:hidden",e.visibilityClass)},e.name))})}])},432507,e=>{"use strict";let t,r;var o=e.i(843476),n=e.i(909081),i=e.i(61693),s=e.i(186004),a=e.i(613162),c=e.i(227156),l=e.i(343794);function h({className:e,isOpen:t,onClose:r}){return(0,o.jsxs)(a.default,{ariaLabelledBy:"authentication-login-failure-dialog-headline",className:(0,l.default)("component--authentication-login-failure-dialog","tw:max-w-3xl tw:w-[calc(100%-2rem)]",e),containerClassName:(0,l.default)("tw:flex tw:flex-col tw:items-center","tw:px-6 tw:pt-8 tw:pb-10"),hasBackdrop:!0,isOpen:t,onClose:r,children:[(0,o.jsx)("button",{"aria-label":"Close Account Error Dialog",className:(0,l.default)("tw:self-end","tw:cursor-pointer","tw:p-2 tw:-m-2"),onClick:r,children:(0,o.jsx)(c.default,{})}),(0,o.jsxs)("h2",{className:"global--subheadline-1 tw:mt-6 tw:text-center",id:"authentication-login-failure-dialog-headline",children:["Weâre having trouble ",(0,o.jsx)("br",{}),"with your account."]}),(0,o.jsxs)("div",{className:"tw:mt-6 tw:text-center",children:[(0,o.jsx)("p",{children:"Please contact Wegmans Customer Care so we can help resolve this issue."}),(0,o.jsxs)("p",{children:["You can call us at"," ",(0,o.jsx)(s.default,{appearance:"text-underline",coloration:"dark",href:"tel:1-800-934-6267",children:"1-800-WEGMANS"})," ","or visit our"," ",(0,o.jsx)(s.default,{appearance:"text-underline",coloration:"dark",href:"/service/contact-us",onClick:r,children:"Help Center"}),"."]})]}),(0,o.jsx)(s.default,{appearance:"pill",className:"tw:mt-8",coloration:"primary",onClick:r,children:"Okay"})]})}var u=e.i(558774),d=e.i(613368),g=e.i(340775),p=e.i(849476),m=e.i(888669),f=e.i(761229),y=e.i(194787),C=e.i(271645),v=e.i(283599);let{log:w,logError:I}=(0,f.createLogger)("authentication:AuthProviderActionHandlerAddToCart");function _({productIds:e,onComplete:t}){let r=(0,p.useShoppingContextStore)(e=>e.storeNumber),n=(0,g.useCartsStore)(e=>e.addProductToCart),{triggerAddProductToCart:i}=(0,d.useAddProductToCart)(),s=(0,C.useRef)(!1),a=(0,C.useCallback)(async e=>{try{if(w("Processing add to cart after authentication",{productIds:e}),e.length<=0)return w("No productIds to process"),!1;let t=await (0,y.fetchProductDetailsFromProductIDs)({productIds:e,storeNumber:r});if(t.some(e=>null===e))return I("Failed to find all products in APIM",{productIds:e,results:t}),!1;return t.length>
10&&(w("Adding products to cart after authentication",{productCount:t.length}),t.forEach(e=>{if(!e)return;let t={...e,categories:{lvl0:(0,u.getCategoryName)({category:e.category})}},r={...(0,m.transformProductDataIntoCartData)(t),loyaltyDeliveryDiscount:t.loyaltyDeliveryDiscount,loyaltyInstoreDiscount:t.loyaltyInstoreDiscount,productId:t.productId||"",step:t.step};n(r),i(),w("Successfully added product to cart",{product:r})})),!0}catch(e){return I("Error processing add to cart after authentication:",e),!1}},[n,r,i]),c=e.length>0&&!s.current,{data:l,error:h}=(0,v.default)(c?e:null,a);return(0,C.useEffect)(()=>{(void 0!==l||h)&&!s.current&&(s.current=!0,t())},[l,h,t]),(0,C.useEffect)(()=>{0===e.length&&(s.current=!1)},[e.join(",")]),(0,o.jsx)(o.Fragment,{})}var T=e.i(853879),A=e.i(890515);let{log:S}=(0,f.createLogger)("authentication:AuthProviderActionHandlerAddToSavedList");function E({productIds:e,onComplete:t}){let r=(0,A.useMySavedListsStore)(e=>e.mySavedLists),n=(0,A.useMySavedListsStore)(e=>e.isLoading),i=(0,C.useMemo)(()=>e.map(e=>({quantity:1,sku:e})),[e]),s=e.length>0&&!n;return(0,o.jsx)(o.Fragment,{children:s&&(0,o.jsx)(T.default,{isOnetoOne:!1,isOpen:s,items:{products:i},lists:r,onClose:()=>{S("Closing saved list dialog and notifying parent via onComplete callback"),t()}})})}var k=e.i(656205);let{log:b}=(0,f.createLogger)("authentication:ActionHandler");function R({action:e,onComplete:t}){if(!e)return null;switch(e.action){case k.AuthenticationActionTypes.ADD_TO_CART:return(0,o.jsx)(_,{productIds:e.data.productIds,onComplete:t});case k.AuthenticationActionTypes.ADD_TO_SAVED_LIST:return(0,o.jsx)(E,{productIds:e.data.productIds,onComplete:t});default:return b("Unknown authentication action type",{action:e}),t(),null}}e.i(908743);var P=e.i(861293),O=e.i(826187),N=e.i(823688),M=e.i(532298),L=e.i(601805),x=e.i(692690),D=e.i(657688),q=e.i(618566);function U({className:e}){(0,O.useGetCustomerApi)();let t=(0,q.useRouter)(),r=(0,x.useCustomerStore)(e=>e.isUnauthenticatedDialogOpen),n=(0,x.useCustomerStore)(e=>e.setIsUnauthenticatedDialogOpen),i=(0,x.useCustomerStore)(e=>e.unauthenticatedDialogMessage),c=(0,x.useCustomerStore)(e=>e.shouldUnauthenticatedDialogRedirectOnCancel),h=(0,x.useCustomerStore)(e=>e.setShouldUnauthenticatedDialogRedirectOnCancel),u=(0,M.useLoginRedirect)();function d(){n(!1),c&&(t.push("/"),h(!1))}return(0,N.useDisableBodyScroll)(r),(0,o.jsxs)(a.default,{ariaLabelledBy:"unauthenticated-dialog-heading",className:(0,l.default)("component--unauthenticated-dialog",e),containerClassName:"dialog-container tw:pb-8",isOpen:r,shouldDisableEscapeKey:!0,shouldDisableOutsideClick:!0,onClose:d,children:[(0,o.jsxs)("div",{className:(0,l.default)("header","tw:flex tw:h-20 tw:items-center tw:justify-center","tw:relative"),children:[(0,o.jsx)(D.default,{alt:"Wegmans",className:"tw:flex tw:md:w-[150px]",src:L.default,width:115}),(0,o.jsx)("button",{"aria-label":"Close Authentication dialog",className:"tw:absolute close-button",type:"button",onClick:d,children:(0,o.jsx)(P.Close,{})})]}),(0,o.jsxs)("div",{className:(0,l.default)("tw:flex tw:flex-col tw:gap-4 tw:py-6 tw:px-4 tw:md:px-10","tw:items-center"),children:[(0,o.jsx)("h2",{className:"title",id:"unauthenticated-dialog-heading",children:"Sign In or Sign Up"}),(0,o.jsx)("p",{className:"message",children:i})]}),(0,o.jsxs)("div",{className:(0,l.default)("tw:flex tw:flex-col-reverse tw:items-center tw:md:flex-row tw:gap-5 tw:justify-center"),children:[(0,o.jsx)(s.default,{appearance:"pill",className:"tw:w-[13rem]",coloration:"secondary",type:"button",onClick:d,children:"Cancel"}),(0,o.jsx)(s.default,{appearance:"pill",className:"tw:w-[13rem]",coloration:"primary",type:"button",onClick:u,children:"Sign In or Sign Up"})]})]})}var H=e.i(125619),F=e.i(490130);let{log:B}=(0,f.createLogger)("authentication:getImpersonationToken"),K=(0,H.createAuthFailureReporter)({component:"getImpersonationToken",discriminatorTag:"outcome",flow:"auth.impersonation.token"}),$=!1;var j=e.i(125889),z=e.i(130396),z=z,W=e.i(294967),W=W;let V="auth.session.recovery",G=(0,H.createAuthFailureReporter)({component:"getActiveAccountWithRedirectFallback",discriminatorTag:"operation",flow:V}),Q=(0,H.createAuthBreadcrumbRecorder)({component:"getActiveAccountWithRedirectFallback",flow:V}),{log:J}=(0,f.createLogger)("authentication:getActiveAccountWithRedirectFallback"),Y="login-timestamp",X="login-redirect-attempt-timestamp";function Z(){try{localStorage.removeItem(Y),J("Login timestamp cleared from local storage")}catch(e){G(e,{discriminator:"clearLoginTimestamp",tags:{consequence:"stale-marker"}})}}function ee(){try{sessionStorage.getItem(X)&&(sessionStorage.removeItem(X),J("Cleared redirect attempt marker from session storage"))}catch(e){G(e,{discriminator:"clearRedirectFallbackAttempt",tags:{consequence:"stale-marker"}})}}async function et(e){J("Starting account detection with redirect fallback");let t=(0,j.getActiveAccount)(e);if(t)return J("Active account found via getActiveAccount"),t;if(Q("No active account found"),function(){if(J("Checking if redirect fallback should be attempted"),!function(){try{let e=localStorage.getItem(Y);if(!e)return J("No login timestamp found"),!1;let t=new Date(parseInt(e));if((0,z.default)(new Date,t)>30)return J("Login timestamp is older than 30 days, cleaning up stale data"),Z(),!1;return Q("Recent login history found (within 30 days)"),!0}catch(e){return G(e,{discriminator:"hasRecentLoginHistory",tags:{consequence:"session-recovery-skipped"}}
1),!1}}())return Q("No recent login history; skipping redirect fallback"),!1;try{let e=sessionStorage.getItem(X);if(!e)return Q("No previous redirect attempt found"),!0;let t=parseInt(e),r=new Date(t);if(J("Previous redirect attempt found:",r.toISOString()),(0,W.default)(new Date,r)>1)return Q("Previous redirect attempt expired; retrying"),sessionStorage.removeItem(X),!0;return Q("Recent redirect attempt; skipping redirect fallback"),!1}catch(e){return G(e,{discriminator:"shouldAttemptRedirectFallback",tags:{consequence:"session-recovery-skipped"}}),!1}}()){Q("Attempting redirect fallback");try{try{sessionStorage.setItem(X,Date.now().toString()),J("Added redirect attempt to session storage")}catch(e){G(e,{discriminator:"markRedirectFallbackAttempted",tags:{consequence:"redirect-loop-risk"}})}J("Calling loginRedirect with prompt: none"),await e.loginRedirect({prompt:"none",redirectUri:window.location.origin,scopes:i.scopes,state:void 0})}catch(e){G(e,{discriminator:"loginRedirect",tags:{consequence:"logged-out"}})}}return null}let{log:er,logError:eo}=(0,f.createLogger)("authentication:clearAllAuthStorage");var en=e.i(872770),ei=e.i(898107),es=e.i(69939),ea=e.i(589699),ec=e.i(306477);let el="acquireTokenByRefreshToken",eh="acquireTokenSilentAsync",eu="acquireTokenRedirect",ed="silentCacheClientAcquireToken",eg="silentIframeClientAcquireToken",ep="silentRefreshClientAcquireToken",em="standardInteractionClientGetDiscoveredAuthority",ef="nativeInteractionClientAcquireToken",ey="refreshTokenClientExecutePostToTokenEndpoint",eC="authorizationCodeClientExecutePostToTokenEndpoint",ev="refreshTokenClientExecuteTokenRequest",ew="refreshTokenClientAcquireToken",eI="refreshTokenClientAcquireTokenWithCachedRefreshToken",e_="refreshTokenClientAcquireTokenByRefreshToken",eT="refreshTokenClientCreateTokenRequestBody",eA="acquireTokenFromCache",eS="silentFlowClientAcquireCachedToken",eE="silentFlowClientGenerateResultFromCacheRecord",ek="acquireTokenBySilentIframe",eb="initializeBaseRequest",eR="initializeSilentRequest",eP="silentIframeClientTokenHelper",eO="silentHandlerInitiateAuthRequest",eN="silentHandlerMonitorIframeForHash",eM="silentHandlerLoadFrame",eL="standardInteractionClientCreateAuthCodeClient",ex="standardInteractionClientGetClientConfiguration",eD="standardInteractionClientInitializeAuthorizationRequest",eq="getAuthCodeUrl",eU="handleCodeResponseFromServer",eH="handleCodeResponse",eF="handleResponseEar",eB="handleResponsePlatformBroker",eK="handleResponseCode",e$="updateTokenEndpointAuthority",ej="authClientAcquireToken",ez="authClientExecuteTokenRequest",eW="authClientCreateTokenRequestBody",eV="popTokenGenerateCnf",eG="handleServerTokenResponse",eQ="deserializeResponse",eJ="authorityFactoryCreateDiscoveredInstance",eY="authorityResolveEndpointsAsync",eX="authorityGetCloudDiscoveryMetadataFromNetwork",eZ="authorityUpdateCloudDiscoveryMetadata",e0="authorityGetEndpointMetadataFromNetwork",e1="authorityUpdateEndpointMetadata",e2="authorityUpdateMetadataWithRegionalInformation",e4="regionDiscoveryDetectRegion",e6="regionDiscoveryGetRegionFromIMDS",e3="regionDiscoveryGetCurrentVersion",e8="clearTokensAndKeysWithClaims",e7="generatePkceCodes",e9="generateCodeChallengeFromVerifier",e5="sha256Digest",te="generateHKDF",tt="decrypt",tr="generateEarKey";class to{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class tn{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:1,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new to}}startPerformanceMeasurement(){return new to}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}var ti=e.i(361152),ts=e.i(400675);let ta="redirect_uri_empty",tc="claims_request_parsing_error",tl="authority_uri_insecure",th="url_parse_error",tu="empty_url_error",td="empty_input_scopes_error",tg="invalid_claims",tp="token_request_empty",tm="logout_request_empty",tf="invalid_code_challenge_method",ty="pkce_params_missing",tC="invalid_cloud_discovery_metadata",tv="invalid_authority_metadata",tw="untrusted_authority",tI="missing_ssh_jwk",t_="missing_ssh_kid",tT="missing_nonce_authentication_header",tA="invalid_authentication_header",tS="cannot_set_OIDCOptions",tE="cannot_allow_platform_broker",tk="authority_mismatch",tb="invalid_request_method_for_EAR",tR="invalid_authorize_post_body_parameters";e.s(["authorityMismatch",0,tk,"authorityUriInsecure",0,tl,"cannotAllowPlatformBroker",0,tE,"cannotSetOIDCOptions",0,tS,"claimsRequestParsingError",0,tc,"emptyInputScopesError",0,td,"invalidAuthenticationHeader",0,tA,"invali
1dAuthorityMetadata",0,tv,"invalidAuthorizePostBodyParameters",0,tR,"invalidClaims",0,tg,"invalidCloudDiscoveryMetadata",0,tC,"invalidCodeChallengeMethod",0,tf,"invalidRequestMethodForEAR",0,tb,"logoutRequestEmpty",0,tm,"missingNonceAuthenticationHeader",0,tT,"missingSshJwk",0,tI,"missingSshKid",0,t_,"pkceParamsMissing",0,ty,"redirectUriEmpty",0,ta,"tokenRequestEmpty",0,tp,"untrustedAuthority",0,tw,"urlEmptyError",0,tu,"urlParseError",0,th],343174);var tP=e.i(343174);let tO={[ta]:"A redirect URI is required for all calls, and none has been set.",[tc]:"Could not parse the given claims request object.",[tl]:"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options",[th]:"URL could not be parsed into appropriate segments.",[tu]:"URL was empty or null.",[td]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[tg]:"Given claims parameter must be a stringified JSON object.",[tp]:"Token request was empty and not found in cache.",[tm]:"The logout request was null or undefined.",[tf]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[ty]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[tC]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[tv]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[tw]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[tI]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[t_]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[tT]:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.",[tA]:"Invalid authentication header provided",[tS]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[tE]:"Cannot set allowPlatformBroker parameter to true when not in AAD protocol mode.",[tk]:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority.",[tR]:"Invalid authorize post body parameters provided. If you are using authorizePostBodyParameters, the request method must be POST. Please check the request method and parameters.",[tb]:"Invalid request method for EAR protocol mode. The request method cannot be GET when using EAR protocol mode. Please change the request method to POST."};tO[ta],tO[tc],tO[tl],tO[th],tO[tu],tO[td],tO[tg],tO[tp],tO[tm],tO[tf],tO[ty],tO[tC],tO[tv],tO[tw],tO[tI],tO[t_],tO[tT],tO[tA],tO[tS],tO[tE],tO[tk],tO[tR],tO[tb];class tN extends ts.AuthError{constructor(e){super(e,tO[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,tN.prototype)}}function tM(e){return new tN(e)}var tL=tP,tx=e.i(467956),tD=e.i(695624);let tq={sendGetRequestAsync:()=>Promise.reject((0,tx.createClientAuthError)(tD.methodNotImplemented)),sendPostRequestAsync:()=>Promise.reject((0,tx.createClientAuthError)(tD.methodNotImplemented))},tU={createNewGuid:()=>{throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},base64Decode:()=>{throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},base64Encode:()=>{throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},base64UrlEncode:()=>{throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},encodeKid:()=>{throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async getPublicKeyThumbprint(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async removeTokenBindingKey(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async clearKeystore(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async signJwt(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async hashString(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}};var tH=e.i(777056);let tF="@azure/msal-common",tB="15.12.0",tK="none";class t${static isEmptyObj(e){if(e)try{let t=JSON.parse(e);return 0===Object.keys(t).length}catch(e){}return!0}static startsWith(e,t){return 0===e.indexOf(t)}static endsWith(e,t){return e.length>=t.length&&e.lastIndexOf(t)===e.length-t.length}static queryStringToObject(e){let t={},r=e.split("&"),o=e=>decodeURIComponent(e.replace(/\+/g," "));
1return r.forEach(e=>{if(e.trim()){let[r,n]=e.split(/=(.+)/g,2);r&&n&&(t[o(r)]=o(n))}}),t}static trimArrayEntries(e){return e.map(e=>e.trim())}static removeEmptyStringsFromArray(e){return e.filter(e=>!!e)}static jsonParseHelper(e){try{return JSON.parse(e)}catch(e){return null}}static matchPattern(e,t){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(t)}}class tj{constructor(e){const t=e?t$.trimArrayEntries([...e]):[],r=t?t$.removeEmptyStringsFromArray(t):[];if(!r||!r.length)throw tM(td);this.scopes=new Set,r.forEach(e=>this.scopes.add(e))}static fromString(e){return new tj((e||tH.Constants.EMPTY_STRING).split(" "))}static createSearchScopes(e){let t=new tj(e&&e.length>0?e:[...tH.OIDC_DEFAULT_SCOPES]);return t.containsOnlyOIDCScopes()?t.removeScope(tH.Constants.OFFLINE_ACCESS_SCOPE):t.removeOIDCScopes(),t}containsScope(e){let t=new tj(this.printScopesLowerCase().split(" "));return!!e&&t.scopes.has(e.toLowerCase())}containsScopeSet(e){return!!e&&!(e.scopes.size<=0)&&this.scopes.size>=e.scopes.size&&e.asArray().every(e=>this.containsScope(e))}containsOnlyOIDCScopes(){let e=0;return tH.OIDC_SCOPES.forEach(t=>{this.containsScope(t)&&(e+=1)}),this.scopes.size===e}appendScope(e){e&&this.scopes.add(e.trim())}appendScopes(e){try{e.forEach(e=>this.appendScope(e))}catch(e){throw(0,tx.createClientAuthError)(tD.cannotAppendScopeSet)}}removeScope(e){if(!e)throw(0,tx.createClientAuthError)(tD.cannotRemoveEmptyScope);this.scopes.delete(e.trim())}removeOIDCScopes(){tH.OIDC_SCOPES.forEach(e=>{this.scopes.delete(e)})}unionScopeSets(e){if(!e)throw(0,tx.createClientAuthError)(tD.emptyInputScopeSet);let t=new Set;return e.scopes.forEach(e=>t.add(e.toLowerCase())),this.scopes.forEach(e=>t.add(e.toLowerCase())),t}intersectingScopeSets(e){if(!e)throw(0,tx.createClientAuthError)(tD.emptyInputScopeSet);e.containsOnlyOIDCScopes()||e.removeOIDCScopes();let t=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return t.size<o+r}getScopeCount(){return this.scopes.size}asArray(){let e=[];return this.scopes.forEach(t=>e.push(t)),e}printScopes(){return this.scopes?this.asArray().join(" "):tH.Constants.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}var tz=e.i(275869);function tW(e,t){let r=tV(e);try{let e=t(r);return JSON.parse(e)}catch(e){throw(0,tx.createClientAuthError)(tD.tokenParsingError)}}function tV(e){if(!e)throw(0,tx.createClientAuthError)(tD.nullOrEmptyToken);let t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw(0,tx.createClientAuthError)(tD.tokenParsingError);return t[2]}function tG(e,t){if(0===t||Date.now()-3e5>e+t)throw(0,tx.createClientAuthError)(tD.maxAgeTranspired)}function tQ(e){if(!e)return e;let t=e.toLowerCase();return t$.endsWith(t,"?")?t=t.slice(0,-1):t$.endsWith(t,"?/")&&(t=t.
1slice(0,-2)),t$.endsWith(t,"/")||(t+="/"),t}function tJ(e){return e.startsWith("#/")?e.substring(2):e.startsWith("#")||e.startsWith("?")?e.substring(1):e}function tY(e){if(!e||0>e.indexOf("="))return null;try{let t=tJ(e),r=Object.fromEntries(new URLSearchParams(t));if(r.code||r.ear_jwe||r.error||r.error_description||r.state)return r}catch(e){throw(0,tx.createClientAuthError)(tD.hashNotDeserialized)}return null}function tX(e,t=!0,r){let o=[];return e.forEach((e,n)=>{!t&&r&&n in r?o.push(`${n}=${e}`):o.push(`${n}=${encodeURIComponent(e)}`)}),o.join("&")}e.s(["checkMaxAge",0,tG,"extractTokenClaims",0,tW,"getJWSPayload",0,tV],827050),e.s(["getDeserializedResponse",0,tY,"mapToQueryString",0,tX,"normalizeUrlForComparison",0,function(e){if(!e)return e;let t=e.split("#")[0];try{let e=new URL(t),r=e.origin+e.pathname+e.search;return tQ(r)}catch(e){return tQ(t)}},"stripLeadingHashOrQuery",0,tJ],957342);class tZ{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw tM(tu);e.includes("#")||(this._urlString=tZ.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return t$.endsWith(t,"?")?t=t.slice(0,-1):t$.endsWith(t,"?/")&&(t=t.
1slice(0,-2)),t$.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw tM(th)}if(!e.HostNameAndPort||!e.PathSegments)throw tM(th);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw tM(tl)}static appendQueryString(e,t){return t?0>e.indexOf("?")?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return tZ.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){let t=this.getUrlComponents(),r=t.PathSegments;return e&&0!==r.length&&(r[0]===tH.AADAuthorityConstants.COMMON||r[0]===tH.AADAuthorityConstants.ORGANIZATIONS)&&(r[0]=e),tZ.constructAuthorityUriFromObject(t)}getUrlComponents(){let e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw tM(th);let r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]},o=r.AbsolutePath.split("/");return r.PathSegments=o=o.filter(e=>e&&e.length>0),r.QueryString&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){let t=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(t);if(!r)throw tM(th);return r[2]}static getAbsoluteUrl(e,t){if(e[0]===tH.Constants.FORWARD_SLASH){let r=new tZ(t).getUrlComponents();return r.Protocol+"//"+r.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new tZ(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!tY(e)}}let t0={"login.microsoftonline.com":{token_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout"},"login.chinacloudapi.cn":{token_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys",issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",authorization_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout"},"login.microsoftonline.us":{token_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout"}},t1=[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}],t2=new Set;function t4(e,t,r,o){if(o?.trace(`getAliasesFromMetadata called with source: ${r}`),e&&t){let n=t6(t,e);if(n)return o?.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${r}, returning aliases`),n.aliases;o?.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${r}`)}return null}function t6(e,t){for(let r=0;r<e.length;r++){let o=e[r];if(o.aliases.includes(t))return o}return null}t1.forEach(e=>{e.aliases.forEach(e=>{t2.add(e)})});var t3=ts;let t8="cache_quota_exceeded",t7="cache_error_unknown";e.s(["cacheErrorUnknown",0,t7,"cacheQuotaExceeded",0,t8],189721);var t9=e.i(189721);
1let t5={[t8]:"Exceeded cache storage capacity.",[t7]:"Unexpected error occurred when using cache storage."};class re extends t3.AuthError{constructor(e,t){const r=t||(t5[e]?t5[e]:t5[t7]);super(`${e}: ${r}`),Object.setPrototypeOf(this,re.prototype),this.name="CacheError",this.errorCode=e,this.errorMessage=r}}function rt(e){return e instanceof Error?"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name||e.message.includes("exceeded the quota")?new re(t8):new re(e.name,e.message):new re(t7)}class rr{constructor(e,t,r,o,n){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(tF,tB),this.staticAuthorityOptions=n,this.performanceClient=o}getAllAccounts(e,t){return this.buildTenantProfiles(this.getAccountsFilteredBy(e,t),t,e)}getAccountInfoFilteredBy(e,t){if(0===Object.keys(e).length||Object.values(e).every(e=>!e))return this.commonLogger.warning("getAccountInfoFilteredBy: Account filter is empty or invalid, returning null"),null;let r=this.getAllAccounts(e,t);return r.length>1?r.sort(e=>e.idTokenClaims?-1:1)[0]:1===r.length?r[0]:null}getBaseAccountInfo(e,t){let r=this.getAccountsFilteredBy(e,t);return r.length>0?r[0].getAccountInfo():null}buildTenantProfiles(e,t,r){return e.flatMap(e=>this.getTenantProfilesFromAccountEntity(e,t,r?.tenantId,r))}getTenantedAccountInfoByFilter(e,t,r,o,n){let i;if(n&&!this.tenantProfileMatchesFilter(r,n))return null;let s=this.getIdToken(e,o,t,r.tenantId);return s&&(i=tW(s.secret,this.cryptoImpl.base64Decode),!this.idTokenClaimsMatchTenantProfileFilter(i,n))?null:(0,tz.updateAccountTenantProfileData)(e,r,i,s?.secret)}getTenantProfilesFromAccountEntity(e,t,r,o){let n=e.getAccountInfo(),i=n.tenantProfiles||new Map,s=this.getTokenKeys();if(r){let e=i.get(r);if(!e)return[];i=new Map([[r,e]])}let a=[];return i.forEach(e=>{let r=this.getTenantedAccountInfoByFilter(n,s,e,t,o);r&&a.push(r)}),a}tenantProfileMatchesFilter(e,t){return(!t.localAccountId||!!this.matchLocalAccountIdFromTenantProfile(e,t.localAccountId))&&(!t.name||e.name===t.name)&&(void 0===t.isHomeTenant||e.isHomeTenant===t.isHomeTenant)}idTokenClaimsMatchTenantProfileFilter(e,t){return(!t||(!t.localAccountId||!!this.matchLocalAccountIdFromTokenClaims(e,t.localAccountId))&&(!t.loginHint||!!this.matchLoginHintFromTokenClaims(e,t.loginHint))&&(!t.username||!!this.matchUsername(e.preferred_username,t.username))&&(!t.name||!!this.matchName(e,t.name))&&(!t.sid||!!this.matchSid(e,t.sid)))&&!0}async saveCacheRecord(e,t,r){if(!e)throw(0,tx.createClientAuthError)(tD.invalidCacheRecord);try{e.account&&await this.setAccount(e.account,t),e.idToken&&r?.idToken!==!1&&await this.setIdTokenCredential(e.idToken,t),e.accessToken&&r?.accessToken!==!1&&await this.saveAccessToken(e.accessToken,t),e.refreshToken&&r?.refreshToken!==!1&&await this.setRefreshTokenCredential(e.refreshToken,t),e.appMetadata&&this.setAppMetadata(e.appMetadata,t)}catch(e){if(this.commonLogger?.error("CacheManager.saveCacheRecord: failed"),e instanceof ts.AuthError)throw e;throw rt(e)}}async saveAccessToken(e,t){let r={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},o=this.getTokenKeys(),n=tj.fromString(e.target);o.accessToken.forEach(e=>{if(!this.accessTokenKeyMatchesFilter(e,r,!1))return;let o=this.getAccessTokenCredential(e,t);o&&this.credentialMatchesFilter(o,r)&&tj.fromString(o.target).intersectingScopeSets(n)&&this.removeAccessToken(e,t)}),await this.setAccessTokenCredential(e,t)}getAccountsFilteredBy(e,t){let r=this.getAccountKeys(),o=[];return r.forEach(r=>{let n=this.getAccount(r,t);if(!n||e.homeAccountId&&!this.matchHomeAccountId(n,e.homeAccountId)||e.username&&!this.matchUsername(n.username,e.username)||e.environment&&!this.matchEnvironment(n,e.environment)||e.realm&&!this.matchRealm(n,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(n,e.nativeAccountId)||e.authorityType&&!this.matchAuthorityType(n,e.authorityType))return;let i={localAccountId:e?.localAccountId,name:e?.name},s=n.tenantProfiles?.filter(e=>this.tenantProfileMatchesFilter(e,i));s&&0===s.length||o.push(n)}),o}credentialMatchesFilter(e,t){return(!t.clientId||!!this.matchClientId(e,t.clientId))&&(!t.userAssertionHash||!!this.matchUserAssertionHash(e,t.userAssertionHash))&&
1("string"!=typeof t.homeAccountId||!!this.matchHomeAccountId(e,t.homeAccountId))&&(!t.environment||!!this.matchEnvironment(e,t.environment))&&(!t.realm||!!this.matchRealm(e,t.realm))&&(!t.credentialType||!!this.matchCredentialType(e,t.credentialType))&&(!t.familyId||!!this.matchFamilyId(e,t.familyId))&&(!t.target||!!this.matchTarget(e,t.target))&&(!t.requestedClaimsHash&&!e.requestedClaimsHash||e.requestedClaimsHash===t.requestedClaimsHash)&&(e.credentialType!==tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME||(!t.tokenType||!!this.matchTokenType(e,t.tokenType))&&(t.tokenType!==tH.AuthenticationScheme.SSH||!t.keyId||!!this.matchKeyId(e,t.keyId)))&&!0}getAppMetadataFilteredBy(e){let t=this.getKeys(),r={};return t.forEach(t=>{if(!this.isAppMetadata(t))return;let o=this.getAppMetadata(t);!o||e.environment&&!this.matchEnvironment(o,e.environment)||(!e.clientId||this.matchClientId(o,e.clientId))&&(r[t]=o)}),r}getAuthorityMetadataByAlias(e){let t=this.getAuthorityMetadataKeys(),r=null;return t.forEach(t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;let o=this.getAuthorityMetadata(t);
1o&&-1!==o.aliases.indexOf(e)&&(r=o)}),r}removeAllAccounts(e){this.getAllAccounts({},e).forEach(t=>{this.removeAccount(t,e)})}removeAccount(e,t){this.removeAccountContext(e,t),this.getAccountKeys().filter(t=>t.includes(e.homeAccountId)&&t.includes(e.environment)).forEach(e=>{this.removeItem(e,t),this.performanceClient.incrementFields({accountsRemoved:1},t)})}removeAccountContext(e,t){let r=this.getTokenKeys(),o=t=>t.includes(e.homeAccountId)&&t.includes(e.environment);r.idToken.filter(o).forEach(e=>{this.removeIdToken(e,t)}),r.accessToken.filter(o).forEach(e=>{this.removeAccessToken(e,t)}),r.refreshToken.filter(o).forEach(e=>{this.removeRefreshToken(e,t)})}removeAccessToken(e,t){let r=this.getAccessTokenCredential(e,t);if(this.removeItem(e,t),this.performanceClient.incrementFields({accessTokensRemoved:1},t),!r||r.credentialType.toLowerCase()!==tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()||r.tokenType!==tH.AuthenticationScheme.POP)return;let o=r.keyId;o&&this.cryptoImpl.removeTokenBindingKey(o).catch(()=>{this.commonLogger.error(`Failed to remove token binding key ${o}`,t),this.performanceClient?.incrementFields({removeTokenBindingKeyFailure:1},t)})}removeAppMetadata(e){return this.getKeys().forEach(t=>{this.isAppMetadata(t)&&this.removeItem(t,e)}),!0}getIdToken(e,t,r,o,n){this.commonLogger.trace("CacheManager - getIdToken called");let i={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:tH.CredentialType.ID_TOKEN,clientId:this.clientId,realm:o},s=this.getIdTokensByFilter(i,t,r),a=s.size;if(a<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(a>1){let r=s;if(!o){let t=new Map;s.forEach((r,o)=>{r.realm===e.tenantId&&t.set(o,r)});let o=t.size;if(o<1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result"),s.values().next().value;if(1===o)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile"),t.values().next().value;r=t}return this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them"),r.forEach((e,r)=>{this.removeIdToken(r,t)}),n&&t&&n.addFields({multiMatchedID:s.size},t),null}return this.commonLogger.info("CacheManager:getIdToken - Returning ID token"),s.values().next().value}getIdTokensByFilter(e,t,r){let o=r&&r.idToken||this.getTokenKeys().idToken,n=new Map;return o.forEach(r=>{if(!this.idTokenKeyMatchesFilter(r,{clientId:this.clientId,...e}))return;let o=this.getIdTokenCredential(r,t);o&&this.credentialMatchesFilter(o,e)&&n.set(r,o)}),n}idTokenKeyMatchesFilter(e,t){let r=e.toLowerCase();return(!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}removeIdToken(e,t){this.removeItem(e,t)}removeRefreshToken(e,t){this.removeItem(e,t)}getAccessToken(e,t,r,o){let n=t.correlationId;this.commonLogger.trace("CacheManager - getAccessToken called",n);let i=tj.createSearchScopes(t.scopes),s=t.authenticationScheme||tH.AuthenticationScheme.BEARER,a=s&&s.toLowerCase()!==tH.AuthenticationScheme.BEARER.toLowerCase()?tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:tH.CredentialType.ACCESS_TOKEN,c={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:a,clientId:this.clientId,realm:o||e.tenantId,target:i,tokenType:s,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},l=r&&r.accessToken||this.getTokenKeys().accessToken,h=[];l.forEach(e=>{if(this.accessTokenKeyMatchesFilter(e,c,!0)){let t=this.getAccessTokenCredential(e,n);t&&this.credentialMatchesFilter(t,c)&&h.push(t)}});let u=h.length;return u<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found",n),null):u>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them",n),h.forEach(e=>{this.removeAccessToken(this.generateCredentialKey(e),n)}),this.performanceClient.addFields({multiMatchedAT:h.length},n),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token",n),h[0])}accessTokenKeyMatchesFilter(e,t,r){let o=e.toLowerCase();if(t.clientId&&-1===o.indexOf(t.clientId.toLowerCase())||t.homeAccountId&&-1===o.indexOf(t.homeAccountId.toLowerCase())||t.realm&&-1===o.indexOf(t.realm.toLowerCase())||t.requestedClaimsHash&&-1===o.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){let e=t.target.asArray();for(let t=0;t<e.length;t++)if(r&&!o.includes(e[t].toLowerCase()))return!1;else if(!r&&o.includes(e[t].toLowerCase()))break}return!0}getAccessTokensByFilter(e,t){let r=this.getTokenKeys(),o=[];
1return r.accessToken.forEach(r=>{if(!this.accessTokenKeyMatchesFilter(r,e,!0))return;let n=this.getAccessTokenCredential(r,t);n&&this.credentialMatchesFilter(n,e)&&o.push(n)}),o}getRefreshToken(e,t,r,o,n){this.commonLogger.trace("CacheManager - getRefreshToken called");let i=t?tH.THE_FAMILY_ID:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:tH.CredentialType.REFRESH_TOKEN,clientId:this.clientId,familyId:i},a=o&&o.refreshToken||this.getTokenKeys().refreshToken,c=[];a.forEach(e=>{if(this.refreshTokenKeyMatchesFilter(e,s)){let t=this.getRefreshTokenCredential(e,r);t&&this.credentialMatchesFilter(t,s)&&c.push(t)}});let l=c.length;return l<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(l>1&&n&&r&&n.addFields({multiMatchedRT:l},r),this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),c[0])}refreshTokenKeyMatchesFilter(e,t){let r=e.toLowerCase();return(!t.familyId||-1!==r.indexOf(t.familyId.toLowerCase()))&&(!!t.familyId||!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}readAppMetadataFromCache(e){let t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map(e=>r[e]),n=o.length;if(n<1)return null;if(n>1)throw(0,tx.createClientAuthError)(tD.multipleMatchingAppMetadata);return o[0]}isAppMetadataFOCI(e){let t=this.readAppMetadataFromCache(e);return!!(t&&t.familyId===tH.THE_FAMILY_ID)}matchHomeAccountId(e,t){return"string"==typeof e.homeAccountId&&t===e.homeAccountId}matchLocalAccountIdFromTokenClaims(e,t){return t===(e.oid||e.sub)}matchLocalAccountIdFromTenantProfile(e,t){return e.localAccountId===t}matchName(e,t){return t.toLowerCase()===e.name?.toLowerCase()}matchUsername(e,t){return!!(e&&"string"==typeof e&&t?.toLowerCase()===e.toLowerCase())}matchUserAssertionHash(e,t){return!!(e.userAssertionHash&&t===e.userAssertionHash)}matchEnvironment(e,t){if(this.staticAuthorityOptions){let r=function(e,t){let r,o=e.canonicalAuthority;if(o){let n=new tZ(o).getUrlComponents().HostNameAndPort;r=t4(n,e.cloudDiscoveryMetadata?.metadata,tH.AuthorityMetadataSource.CONFIG,t)||t4(n,t1,tH.AuthorityMetadataSource.HARDCODED_VALUES,t)||e.knownAuthorities}return r||[]}(this.staticAuthorityOptions,this.commonLogger);if(r.includes(t)&&r.includes(e.environment))return!0}let r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!!(e.clientId&&t===e.clientId)}matchFamilyId(e,t){return!!(e.familyId&&t===e.familyId)}matchRealm(e,t){return e.realm?.toLowerCase()===t.toLowerCase()}matchNativeAccountId(e,t){return!!(e.nativeAccountId&&t===e.nativeAccountId)}matchLoginHintFromTokenClaims(e,t){return e.login_hint===t||e.preferred_username===t||e.upn===t}matchSid(e,t){return e.sid===t}matchAuthorityType(e,t){return!!(e.authorityType&&t.toLowerCase()===e.authorityType.toLowerCase())}matchTarget(e,t){return(e.credentialType===tH.CredentialType.ACCESS_TOKEN||e.credentialType===tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME)&&!!e.target&&tj.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!!(e.tokenType&&e.tokenType===t)}matchKeyId(e,t){return!!(e.keyId&&e.keyId===t)}isAppMetadata(e){return -1!==e.indexOf(tH.APP_METADATA)}isAuthorityMetadata(e){return -1!==e.indexOf(tH.AUTHORITY_METADATA_CONSTANTS.CACHE_KEY)}generateAuthorityMetadataCacheKey(e){return`${tH.AUTHORITY_METADATA_CONSTANTS.CACHE_KEY}-${this.clientId}-${e}`}static toObject(e,t){for(let r in t)e[r]=t[r];return e}}class ro extends rr{async setAccount(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAccount(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}async setIdTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getIdTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}async setAccessTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAccessTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}async setRefreshTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getRefreshTokenCredential(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}setAppMetadata(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAppMetadata(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}setServerTelemetry(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getServerTelemetry(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}setAuthorityMetadata(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAuthorityMetadata(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAuthorityMetadataKeys(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}setThrottlingCache(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getThrottlingCache(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}removeItem(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getKeys(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getAccountKeys(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}getTokenKeys(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}generateCredentialKey(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}generateAccountKey(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}}let rn={tokenRenewalOffsetSeconds:tH.DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,preventCorsPreflight:!1},ri={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:ec.LogLevel.Info,correlationId:tH.Constants.EMPTY_STRING},rs={claimsBasedCachingEnabled:!1},ra={async sendGetRequestAsync(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)},async sendPostRequestAsync(){throw(0,tx.createClientAuthError)(tD.methodNotImplemented)}},rc={sku:tH.Constants.SKU,version:tB,cpu:tH.Constants.EMPTY_STRING,os:tH.Constants.EMPTY_STRING},rl={clientSecret:tH.Constants.EMPTY_STRING,clientAssertion:void 0},rh={azureCloudInstance:tK,tenant:`${tH.Constants.DEFAULT_COMMON_TENANT}`},ru={application:{appName:"",appVersion:""}};function rd(e){return e.authOptions.authority.options.protocolMode===ti.ProtocolMode.OIDC}var rg=e.i(818741),rp=ts;let rm="pkce_not_created",rf="ear_jwk_empty",ry="ear_jwe_empty",rC="crypto_nonexistent",rv="empty_navigate_uri",rw="hash_empty_error",rI="no_state_in_hash",r_="hash_does_not_contain_known_properties",rT="unable_to_parse_state",rA="state_interaction_type_mismatch",rS="interaction_in_progress",rE="popup_window_error",rk="empty_window_error",rb="user_cancelled",rR="monitor_popup_timeout",rP="monitor_window_timeout",rO="redirect_in_iframe",rN="block_iframe_reload",rM="block_nested_popups",rL="iframe_closed_prematurely",rx="silent_logout_unsupported",rD="no_account_error",rq="silent_prompt_value_error",rU="no_token_request_cache_error",rH="unable_to_parse_token_request_cache_error",rF="auth_request_not_set_error",rB="invalid_cache_type",rK="non_browser_environment",r$="database_not_open",rj="no_network_connectivity",rz="post_request_failed",rW="get_request_failed",rV="failed_to_parse_response",rG="unable_to_load_token",rQ="crypto_key_not_found",rJ="auth_code_required",rY="auth_code_or_nativeAccountId_required",rX="spa_code_and_nativeAccountId_present",rZ="database_unavailable",r0="unable_to_acquire_token_from_native_platform",r1="native_handshake_timeout",r2="native_extension_not_installed",r4="native_connection_not_established",r6="uninitialized_public_client_application",r3="native_prompt_not_supported",r8="invalid_base64_string",r7="invalid_pop_token_request",r9="failed_to_build_headers",r5="failed_to_parse_headers",oe="failed_to_decrypt_ear_response",ot="timed_out";e.s(["authCodeOrNativeAccountIdRequired",0,rY,"authCodeRequired",0,rJ,"authRequestNotSetError",0,rF,"blockIframeReload",0,rN,"blockNestedPopups",0,rM,"cryptoKeyNotFound",0,rQ,"cryptoNonExistent",0,rC,"databaseNotOpen",0,r$,"databaseUnavailable",0,rZ,"earJweEmpty",0,ry,"earJwkEmpty",0,rf,"emptyNavigateUri",0,rv,"emptyWindowError",0,rk,"failedToBuildHeaders",0,r9,"failedToDecryptEarResponse",0,oe,"failedToParseHeaders",0,r5,"failedToParseResponse",0,rV,"getRequestFailed",0,rW,"hashDoesNotContainKnownProperties",0,r_,"hashEmptyError",0,rw,"iframeClosedPrematurely",0,rL,"interactionInProgress",0,rS,"invalidBase64String",0,r8,"invali
1dCacheType",0,rB,"invalidPopTokenRequest",0,r7,"monitorPopupTimeout",0,rR,"monitorWindowTimeout",0,rP,"nativeConnectionNotEstablished",0,r4,"nativeExtensionNotInstalled",0,r2,"nativeHandshakeTimeout",0,r1,"nativePromptNotSupported",0,r3,"noAccountError",0,rD,"noNetworkConnectivity",0,rj,"noStateInHash",0,rI,"noTokenRequestCacheError",0,rU,"nonBrowserEnvironment",0,rK,"pkceNotCreated",0,rm,"popupWindowError",0,rE,"postRequestFailed",0,rz,"redirectInIframe",0,rO,"silentLogoutUnsupported",0,rx,"silentPromptValueError",0,rq,"spaCodeAndNativeAccountIdPresent",0,rX,"stateInteractionTypeMismatch",0,rA,"timedOut",0,ot,"unableToAcquireTokenFromNativePlatform",0,r0,"unableToLoadToken",0,rG,"unableToParseState",0,rT,"unableToParseTokenRequestCacheError",0,rH,"uninitializedPublicClientApplication",0,r6,"userCancelled",0,rb],270529),e.i(270529);let or="For more visit: aka.ms/msaljs/browser-errors",oo={[rm]:"The PKCE code challenge and verifier could not be generated.",[rf]:"No EAR encryption key provided. This is unexpected.",[ry]:"Server response does not contain ear_jwe property. This is unexpected.",[rC]:"The crypto object or function is not available.",[rv]:"Navigation URI is empty. Please check stack trace for more info.",[rw]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${or}`,[rI]:"Hash does not contain state. Please verify that the request originated from msal.",[r_]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${or}`,[rT]:"Unable to parse state. Please verify that the request originated from msal.",[rA]:"Hash contains state but the interaction type does not match the caller.",[rS]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${or}`,[rE]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[rk]:"window.open returned null or undefined window object.",[rb]:"User cancelled the flow.",[rR]:`Token acquisition in popup failed due to timeout. ${or}`,[rP]:`Token acquisition in iframe failed due to timeout. ${or}`,[rO]:"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.",[rN]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${or}`,[rM]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[rL]:"The iframe being monitored was closed prematurely.",[rx]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[rD]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[rq]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[rU]:"No token request found in cache.",[rH]:"The cached token request could not be parsed.",[rF]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[rB]:"Invalid cache type",[rK]:"Login and token requests are not supported in non-browser environments.",[r$]:"Database is not open!",[rj]:"No network connectivity. Check your internet connection.",[rz]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[rW]:"Network request failed. Please check the network trace to determine root cause.",[rV]:"Failed to parse network response. Check network trace.",[rG]:"Error loading token to cache.",[rQ]:"Cryptographic Key or Keypair not found in browser storage.",[rJ]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[rY]:"An authorization code or nativeAccountId must be provided to this flow.",[rX]:"Request cannot contain both spa code and native account id.",[rZ]:"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.",[r0]:`Unable to acquire token from native platform. ${or}`,[r1]:"Timed out while attempting to establish connection to browser extension",[r2]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[r4]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${or}`,[r6]:`You must call and await the initialize function before attempting to call any other MSAL API. ${or}`,[r3]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[r8]:"Invalid base64 encoded string.",[r7]:"Invalid PoP token request. The request should not have both a popKid value and signPopToken set to true.",[r9]:"Failed to build request headers object.",[r5]:"Failed to parse response headers",[oe]:"Failed to decrypt ear response",[ot]:"The request timed out."};oo[rm],oo[rC],oo[rv],oo[rw],oo[rI],oo[r_],oo[rT],oo[rA],oo[rS],oo[rE],oo[rk],oo[rb],oo[rR],oo[rP],oo[rO],oo[rN],oo[rM],oo[rL],oo[rx],oo[rD],oo[rq],oo[rU],oo[rH],oo[rF],oo[rB],oo[rK],oo[r$],oo[rj],oo[rz],oo[rW],oo[rV],oo[rG],oo[rQ],oo[rJ],oo[rY],oo[rX],oo[rZ],oo[r0],oo[r1],oo[r2],oo[r4],oo[r6],oo[r3],oo[r8],oo[r7];class on extends rp.AuthError{constructor(e,t){super(e,oo[e],t),Object.setPrototypeOf(this,on.prototype),this.name="BrowserAuthError"}}function oi(e,t){return new on(e,t)}class os{navigateInternal(e,t){return os.defaultNavigateWindow(e,t)}navigateExternal(e,t){return os.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise((e,r)=>{setTimeout(()=>{r(oi(ot,"failed_to_redirect"))},t.timeout)})}}var oa=ts;class oc extends oa.AuthError{constructor(e,t,r){super(e.errorCode,e.errorMessage,e.subError),Object.setPrototypeOf(this,oc.prototype),this.name="NetworkError",this.error=e,this.httpStatus=t,this.responseHeaders=r}}function ol(e,t,r,o){return e.errorMessage=`${e.errorMessage}, additionalErrorInfo: error.name:${o?.name}, error.message:${o?.message}`,new oc(e,t,r)}class oh{async sendGetRequestAsync(e,t){let r,o={},n=0,i=ou(t);try{r=await fetch(e,{method:rg.HTTP_REQUEST_TYPE.GET,headers:i})}catch(e){throw ol(oi(window.navigator.onLine?rW:rj),void 0,void 0,e)}o=od(r.headers);try{return n=r.status,{headers:o,body:await r.json(),status:n}}catch(e){throw ol(oi(rV),n,o,e)}}async sendPostRequestAsync(e,t){let r,o=t&&t.body||"",n=ou(t),i=0,s={};try{r=await fetch(e,{method:rg.HTTP_REQUEST_TYPE.POST,headers:n,body:o})}catch(e){throw ol(oi(window.navigator.onLine?rz:rj),void 0,void 0,e)}s=od(r.headers);try{return i=r.status,{headers:s,body:await r.json(),status:i}}catch(e){throw ol(oi(rV),i,s,e)}}}function ou(e){try{let t=new Headers;if(!(e&&e.headers))return t;let r=e.headers;return Object.entries(r).forEach(([e,r])=>{t.append(e,r)}),t}catch(e){throw ol(oi(r9),void 0,void 0,e)}}function od(e){try{let t={};return e.forEach((e,r)=>{t[r]=e}),t}catch(e){throw oi(r5)}}let og="client_id",op="redirect_uri",om="response_type",of="response_mode",oy="grant_type",oC="claims",ov="scope",ow="refresh_token",oI="state",o_="nonce",oT="prompt",oA="code",oS="code_challenge",oE="code_challenge_method",ok="code_verifier",ob="client-request-id",oR="x-client-SKU",oP="x-client-VER",oO="x-cl
1ient-OS",oN="x-client-CPU",oM="x-client-current-telemetry",oL="x-client-last-telemetry",ox="x-ms-lib-capability",oD="x-app-name",oq="x-app-ver",oU="post_logout_redirect_uri",oH="id_token_hint",oF="device_code",oB="client_secret",oK="client_assertion",o$="client_assertion_type",oj="token_type",oz="req_cnf",oW="assertion",oV="requested_token_use",oG="return_spa_code",oQ="nativebroker",oJ="logout_hint",oY="login_hint",oX="domain_hint",oZ="brk_client_id",o0="brk_redirect_uri",o1="instance_aware",o2="ear_jwk",o4="ear_jwe_crypto";function o6(e,t,r){if(!t)return;let o=e.get(og);o&&e.has(oZ)&&r?.addFields({embeddedClientId:o,embeddedRedirectUri:e.get(op)},t)}function o3(e,t){e.set(of,t||tH.ResponseMode.QUERY)}function o8(e,t,r=!0,o=tH.OIDC_DEFAULT_SCOPES){!r||o.includes("openid")||t.includes("openid")||o.push("openid");let n=new tj(r?[...t||[],...o]:t||[]);e.set(ov,n.printScopes())}function o7(e,t){e.set(og,t)}function o9(e,t){e.set(op,t)}function o5(e,t){e.set(oU,t)}function ne(e,t){e.set(oH,t)}function nt(e,t){e.set(oX,t)}function nr(e,t){e.set(oY,t)}function no(e,t){e.set(tH.HeaderNames.CCS_HEADER,`UPN:${t}`)}function nn(e,t){e.set(tH.HeaderNames.CCS_HEADER,`Oid:${t.uid}@${t.utid}`)}function ni(e,t){e.set("sid",t)}function ns(e,t,r){let o=nT(t,r);try{JSON.parse(o)}catch(e){throw tM(tg)}e.set(oC,o)}function na(e,t){e.set(ob,t)}function nc(e,t){e.set(oR,t.sku),e.set(oP,t.version),t.os&&e.set(oO,t.os),t.cpu&&e.set(oN,t.cpu)}function nl(e,t){t?.appName&&e.set(oD,t.appName),t?.appVersion&&e.set(oq,t.appVersion)}function nh(e,t){e.set(oT,t)}function nu(e,t){t&&e.set(oI,t)}function nd(e,t){e.set(o_,t)}function ng(e,t){e.set(oA,t)}function np(e,t){e.set(ow,t)}function nm(e,t){e.set(ok,t)}function nf(e,t){e.set(oB,t)}function ny(e,t){t&&e.set(oK,t)}function nC(e,t){t&&e.set(o$,t)}function nv(e,t){e.set(oy,t)}function nw(e){e.set(tH.CLIENT_INFO,"1")}function nI(e){e.has(o1)||e.set(o1,"true")}function n_(e,t){Object.entries(t).forEach(([t,r])=>{!e.has(t)&&r&&e.set(t,r)})}function nT(e,t){let r;if(e)try{r=JSON.parse(e)}catch(e){throw tM(tg)}else r={};return t&&t.length>0&&(r.hasOwnProperty(tH.ClaimsRequestKeys.ACCESS_TOKEN)||(r[tH.ClaimsRequestKeys.ACCESS_TOKEN]={}),r[tH.ClaimsRequestKeys.ACCESS_TOKEN][tH.ClaimsRequestKeys.XMS_CC]={values:t}),JSON.stringify(r)}function nA(e,t){t&&(e.set(oj,tH.AuthenticationScheme.POP),e.set(oz,t))}function nS(e,t){t&&(e.set(oj,tH.AuthenticationScheme.SSH),e.set(oz,t))}function nE(e,t){e.set(oM,t.generateCurrentRequestHeaderValue()),e.set(oL,t.generateLastRequestHeaderValue())}function nk(e){e.set(ox,tH.ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE)}function nb(e,t){e.set(oJ,t)}function nR(e,t,r){e.has(oZ)||e.set(oZ,t),e.has(o0)||e.set(o0,r)}e.s(["ACCESS_TOKEN",0,"access_token","BROKER_CLIENT_ID",0,oZ,"BROKER_REDIRECT_URI",0,o0,"CCS_HEADER",0,"X-AnchorMailbox","CLAIMS",0,oC,"CLIENT_ASSERTION",0,oK,"CLIENT_ASSERTION_TYPE",0,o$,"CLIENT_ID",0,og,"CLIENT_INFO",0,"client_info","CLIENT_REQUEST_ID",0,ob,"CLIENT_SECRET",0,oB,"CODE",0,oA,"CODE_CHALLENGE",0,oS,"CODE_CHALLENGE_METHOD",0,oE,"CODE_VERIFIER",0,ok,"DEVICE_CODE",0,oF,"DOMAIN_HINT",0,oX,"EAR_JWE_CRYPTO",0,o4,"EAR_JWK",0,o2,"ERROR",0,"error","ERROR_DESCRIPTION",0,"error_description","EXPIRES_IN",0,"expires_in","FOCI",0,"foci","GRANT_TYPE",0,oy,"ID_TOKEN",0,"id_token","ID_TOKEN_HINT",0,oH,"INSTANCE_AWARE",0,o1,"LOGIN_HINT",0,oY,"LOGOUT_HINT",0,oJ,"NATIVE_BROKER",0,oQ,"NONCE",0,o_,"OBO_ASSERTION",0,oW,"ON_BEHALF_OF",0,"on_behalf_of","POST_LOGOUT_URI",0,oU,"PROMPT",0,oT,"REDIRECT_URI",0,op,"REFRESH_TOKEN",0,ow,"REFRESH_TOKEN_EXPIRES_IN",0,"refresh_token_expires_in","REQUESTED_TOKEN_USE",0,oV,"REQ_CNF",0,oz,"RESPONSE_MODE",0,of,"RESPONSE_TYPE",0,om,"RETURN_SPA_CODE",0,oG,"SCOPE",0,ov,"SESSION_STATE",0,"session_state","SID",0,"sid","STATE",0,oI,"TOKEN_TYPE",0,oj,"X_APP_NAME",0,oD,"X_APP_VER",0,oq,"X_CLIENT_CPU",0,oN,"X_CLIENT_CURR_TELEM",0,oM,"X_CLIENT_EXTRA_SKU",0,"x-client-xtra-sku","X_CLIENT_LAST_TELEM",0,oL,"X_CLIENT_OS",0,oO,"X_CLIENT_SKU",0,oR,"X_CLIENT_VER",0,oP,"X_MS_LIB_CAPABILITY",0,ox],983053),e.s(["addApplicationTelemetry",0,nl,"addAuthorizationCode",0,ng,"addBrokerParameters",0,nR,"addCcsOid",0,nn,"addCcsUpn",0,no,"addClaims",0,ns,"addClientAssertion",0,ny,"addClientAssertionType",0,nC,"addClientCapabilitiesToClaims",0,nT,"addClientId",0,o7,"addClientInfo",0,nw,"addClientSecret",0,nf,"addCodeChallengeParams",0,function(e,t,r){if(t&&r)e.set(oS,t),e.set(oE,r);else throw tM(ty)},"addCodeVerifier",0,nm,"addCorrelationId",0,na,"addDeviceCode",0,function(e,t){e.set(oF,t)},"addDomainHint",0,nt,"addEARParameters",0,function(e,t){e.set(o2,encodeURIComponent(t)),e.set(o4,"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0")},"addExtraQueryParameters",0,n_,"addGrantType",0,nv,"addIdTokenHint",0,ne,"addInstanceAware",0,nI,"addLibraryInfo",0,nc,"addLoginHint",0,nr,"addLogoutHint",0,nb,"addNativeBroker",0,function(e){e.set(oQ,"1")},"addNonce",0,nd,"addOboAssertion",0,function(e,t){e.set(oW,t)},"addPassword",0,function(e,t){e.set(tH.PasswordGrantConstants.password,t)},"addPopToken",0,nA,"addPostBodyParameters",0,function(e,t){Object.entries(t).forEach(([t,r])=>{r&&e.set(t,r)})},"addPostLogoutRedirectUri",0,o5,"addPrompt",0,nh,"addRedirectUri",0,o9,"addRefreshToken",0,np,"addRequestTokenUse",0,function(e,t){e.set(oV,t)},"addResponseMode",0,o3,"addResponseType",0,function(e,t){e.set(om,t)},"addScopes",0,o8,"addServerTelemetry",0,nE,"addSid",0,ni,"addSshJwk",0,nS,"addState",0,nu,"addThrottling",0,nk,"addUsername",0,function(e,t){e.set(tH.PasswordGrantConstants.username,t)},"instrumentBrokerParams",0,o6],416236);
1var nP=e.i(416236),nP=nP;function nO(e){return encodeURIComponent(nM(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function nN(e){return nL(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function nM(e){return nL(new TextEncoder().encode(e))}function nL(e){return btoa(Array.from(e,e=>String.fromCodePoint(e)).join(""))}function nx(e){return new TextDecoder().decode(nD(e))}function nD(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw oi(r8)}let r=atob(t);return Uint8Array.from(r,e=>e.codePointAt(0)||0)}let nq="AES-GCM",nU="HKDF",nH="SHA-256",nF=new Uint8Array([1,0,1]),nB="0123456789abcdef",nK=new Uint32Array(1),n$="encrypt",nj="decrypt",nz={name:"RSASSA-PKCS1-v1_5",hash:nH,modulusLength:2048,publicExponent:nF};async function nW(e,t,r){t?.addQueueMeasurement(e5,r);let o=new TextEncoder().encode(e);return window.crypto.subtle.digest(nH,o)}function nV(e){return window.crypto.getRandomValues(e)}function nG(){return window.crypto.getRandomValues(nK),nK[0]}function nQ(){let e=Date.now(),t=1024*nG()+(1023&nG()),r=new Uint8Array(16),o=Math.trunc(t/0x40000000),n=t&0x40000000-1,i=nG();r[0]=e/0x10000000000,r[1]=e/0x100000000,r[2]=e/0x1000000,r[3]=e/65536,r[4]=e/256,r[5]=e,r[6]=112|o>>>8,r[7]=o,r[8]=128|n>>>24,r[9]=n>>>16,r[10]=n>>>8,r[11]=n,r[12]=i>>>24,r[13]=i>>>16,r[14]=i>>>8,r[15]=i;let s="";for(let e=0;e<r.length;e++)s+=nB.charAt(r[e]>>>4),s+=nB.charAt(15&r[e]),(3===e||5===e||7===e||9===e)&&(s+="-");return s}async function nJ(e,t){return window.crypto.subtle.generateKey(nz,e,t)}async function nY(e){return window.crypto.subtle.exportKey(rg.KEY_FORMAT_JWK,e)}async function nX(e,t,r){return window.crypto.subtle.importKey(rg.KEY_FORMAT_JWK,e,nz,t,r)}async function nZ(e,t){return window.crypto.subtle.sign(nz,e,t)}async function n0(){return nM(JSON.stringify({alg:"dir",kty:"oct",k:nN(new Uint8Array(await n4()))}))}async function n1(e){let t=nD(JSON.parse(nx(e)).k);return window.crypto.subtle.importKey("raw",t,nq,!1,[nj])}async function n2(e,t){let r=t.split(".");if(5!==r.length)throw oi(oe,"jwe_length");let o=await n1(e).catch(()=>{throw oi(oe,"import_key")});try{let e=new TextEncoder().encode(r[0]),t=nD(r[2]),n=nD(r[3]),i=nD(r[4]),s=8*i.byteLength,a=new Uint8Array(n.length+i.length);a.set(n),a.set(i,n.length);let c=await window.crypto.subtle.decrypt({name:nq,iv:t,tagLength:s,additionalData:e},o,a);return new TextDecoder().decode(c)}catch(e){throw oi(oe,"decrypt")}}async function n4(){let e=await window.crypto.subtle.generateKey({name:nq,length:256},!0,[n$,nj]);return window.crypto.subtle.exportKey("raw",e)}async function n6(e){return window.crypto.subtle.importKey("raw",e,nU,!1,["deriveKey"])}async function n3(e,t,r){return window.crypto.subtle.deriveKey({name:nU,salt:t,hash:nH,info:new TextEncoder().encode(r)},e,{name:nq,length:256},!1,[n$,nj])}async function n8(e,t,r){let o=new TextEncoder().encode(t),n=window.crypto.getRandomValues(new Uint8Array(16)),i=await n3(e,n,r),s=await window.crypto.subtle.encrypt({name:nq,iv:new Uint8Array(12)},i,o);return{data:nN(new Uint8Array(s)),nonce:nN(n)}}async function n7(e,t,r,o){let n=nD(o),i=await n3(e,nD(t),r),s=await window.crypto.subtle.decrypt({name:nq,iv:new Uint8Array(12)},i,n);return new TextDecoder().decode(s)}async function n9(e){return nN(new Uint8Array(await nW(e)))}var n5=e.i(342625),ie=e.i(504125);function it(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function ir(){return window.parent!==window}function io(){return"u">typeof window&&window.location?window.location.href.split("?")[0].split("#")[0]:""}function ii(){if("u"<typeof window)throw oi(rK)}function is(e){if(!e)throw oi(r6)}function ia(e){if(ii(),tZ.hashContainsKnownProperties(window.location.hash)&&ir())throw oi(rN);if("u">typeof window&&window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${rg.BrowserConstants.POPUP_NAME_PREFIX}.`))throw oi(rM);is(e)}function ic(e,t){ia(e);var r=t.system.allowRedirectInIframe;if(ir()&&!r)throw oi(rO);
1if(t.cache.cacheLocation===rg.BrowserCacheLocation.MemoryStorage&&!t.cache.storeAuthStateInCookie)throw(0,n5.createBrowserConfigurationAuthError)(ie.inMemRedirectUnavailable)}function il(e){let t=document.createElement("link");t.rel="preconnect",t.href=new URL(e).origin,t.crossOrigin="anonymous",document.head.appendChild(t),window.setTimeout(()=>{try{document.head.removeChild(t)}catch{}},1e4)}nP.addClientCapabilitiesToClaims;let ih="4.23.0",iu="msal",id="browser",ig=`${iu}.${id}.log.level`,ip=`${iu}.${id}.log.pii`,im=`${iu}.${id}.platform.auth.dom`,iy=`${iu}.version`,iC="account.keys",iv="token.keys";function iw(e=1){return e<1?`${iu}.${iC}`:`${iu}.${e}.${iC}`}function iI(e,t=1){return t<1?`${iu}.${iv}.${e}`:`${iu}.${t}.${iv}.${e}`}class i_{static loggerCallback(e,t){switch(e){case ec.LogLevel.Error:console.error(t);return;case ec.LogLevel.Info:console.info(t);return;case ec.LogLevel.Verbose:console.debug(t);return;case ec.LogLevel.Warning:console.warn(t);return;default:console.log(t);return}}constructor(e){let t;this.browserEnvironment="u">typeof window,this.config=function({auth:e,cache:t,system:r,telemetry:o},n){let i={clientId:tH.Constants.EMPTY_STRING,authority:`${tH.Constants.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:tH.Constants.EMPTY_STRING,authorityMetadata:tH.Constants.EMPTY_STRING,redirectUri:"u">typeof window?io():"",postLogoutRedirectUri:tH.Constants.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:ti.ProtocolMode.AAD,OIDCOptions:{serverResponseType:tH.ServerResponseType.FRAGMENT,defaultScopes:[tH.Constants.OPENID_SCOPE,tH.Constants.PROFILE_SCOPE,tH.Constants.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:tK,tenant:tH.Constants.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1,instanceAware:!1,encodeExtraQueryParams:!1},s={cacheLocation:rg.BrowserCacheLocation.SessionStorage,cacheRetentionDays:5,temporaryCacheLocation:rg.BrowserCacheLocation.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!!t&&t.cacheLocation===rg.BrowserCacheLocation.LocalStorage,claimsBasedCachingEnabled:!1},a={loggerCallback:()=>{},logLevel:ec.LogLevel.Info,piiLoggingEnabled:!1},c={...{...rn,loggerOptions:a,networkClient:n?new oh:tq,navigationClient:new os,loadFrameTimeout:0,windowHashTimeout:r?.loadFrameTimeout||6e4,iframeHashTimeout:r?.loadFrameTimeout||1e4,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowPlatformBroker:!1,nativeBrokerHandshakeTimeout:r?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:rg.BrowserConstants.DEFAULT_POLL_INTERVAL_MS},...r,loggerOptions:r?.loggerOptions||a},l={application:{appName:tH.Constants.EMPTY_STRING,appVersion:tH.Constants.EMPTY_STRING},client:new tn};if(e?.protocolMode!==ti.ProtocolMode.OIDC&&e?.OIDCOptions&&new ec.Logger(c.loggerOptions).warning(JSON.stringify(tM(tL.cannotSetOIDCOptions))),e?.protocolMode&&e.protocolMode===ti.ProtocolMode.OIDC&&c?.allowPlatformBroker)throw tM(tL.cannotAllowPlatformBroker);return{auth:{...i,...e,OIDCOptions:{...i.OIDCOptions,...e?.OIDCOptions}},cache:{...s,...t},system:c,telemetry:{...l,...o}}}(e,this.browserEnvironment);try{t=window[rg.BrowserCacheLocation.SessionStorage]}catch(e){}const r=t?.getItem(ig),o=t?.getItem(ip)?.toLowerCase(),n="true"===o||"false"!==o&&void 0,i={...this.config.system.loggerOptions},s=r&&Object.keys(ec.LogLevel).includes(r)?ec.LogLevel[r]:void 0;s&&(i.loggerCallback=i_.loggerCallback,i.logLevel=s),void 0!==n&&(i.piiLoggingEnabled=n),this.logger=new ec.Logger(i,"@azure/msal-browser",ih),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class iT{static async initializeNestedAppAuthBridge(){if(void 0===window)throw Error("window is undefined");if(void 0===window.nestedAppAuthBridge)throw Error("window.nestedAppAuthBridge is undefined");try{window.nestedAppAuthBridge.addEventListener("message",e=>{let t="string"==typeof e?e:e.data,r=JSON.parse(t),o=iT.bridgeRequests.find(e=>e.requestId===r.requestId);void 0!==o&&(iT.bridgeRequests.splice(iT.bridgeRequests.indexOf(o),1),r.success?o.resolve(r):o.reject(r.error))});let e=await new Promise((e,t)=>
1{let r=iT.buildRequest("GetInitContext"),o={requestId:r.requestId,method:r.method,resolve:e,reject:t};iT.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))});return iT.validateBridgeResultOrThrow(e.initContext)}catch(e){throw window.console.log(e),e}}getTokenInteractive(e){return this.getToken("GetTokenPopup",e)}getTokenSilent(e){return this.getToken("GetToken",e)}async getToken(e,t){let r=await this.sendRequest(e,{tokenParams:t});return{token:iT.validateBridgeResultOrThrow(r.token),account:iT.validateBridgeResultOrThrow(r.account)}}getHostCapabilities(){return this.capabilities??null}getAccountContext(){return this.accountContext?this.accountContext:null}static buildRequest(e,t){return{messageType:"NestedAppAuthRequest",method:e,requestId:nQ(),sendTime:Date.now(),clientLibrary:rg.BrowserConstants.MSAL_SKU,clientLibraryVersion:ih,...t}}sendRequest(e,t){let r=iT.buildRequest(e,t);return new Promise((e,t)=>{let o={requestId:r.requestId,method:r.method,resolve:e,reject:t};iT.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))})}static validateBridgeResultOrThrow(e){if(void 0===e)throw{status:"NESTED_APP_AUTH_UNAVAILABLE"};return e}constructor(e,t,r,o){this.sdkName=e,this.sdkVersion=t,this.accountContext=r,this.capabilities=o}static async create(){let e=await iT.initializeNestedAppAuthBridge();return new iT(e.sdkName,e.sdkVersion,e.accountContext,e.capabilities)}}iT.bridgeRequests=[];class iA extends i_{constructor(){super(...arguments),this.bridgeProxy=void 0,this.accountContext=null}getModuleName(){return iA.MODULE_NAME}getId(){return iA.ID}getBridgeProxy(){return this.bridgeProxy}async initialize(){try{if("u">typeof window){"function"==typeof window.__initializeNestedAppAuth&&await window.__initializeNestedAppAuth();let e=await iT.create();this.accountContext=e.getAccountContext(),this.bridgeProxy=e,this.available=void 0!==e}}catch(e){this.logger.infoPii(`Could not initialize Nested App Auth bridge (${e})`)}return this.logger.info(`Nested App Auth Bridge available: ${this.available}`),this.available}}iA.MODULE_NAME="",iA.ID="NestedAppOperatingContext";class iS extends i_{getModuleName(){return iS.MODULE_NAME}getId(){return iS.ID}async initialize(){return this.available="u">typeof window,this.available}}iS.MODULE_NAME="",iS.ID="StandardOperatingContext";var iE=tD,ik=ts;let ib="missing_kid_error",iR="missing_alg_error",iP={[ib]:"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.",[iR]:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};class iO extends ik.AuthError{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,iO.prototype)}}function iN(e){return new iO(e,iP[e])}class iM{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw iN(ib);if(!e.alg)throw iN(iR);return JSON.stringify(new iM({typ:e.typ||tH.JsonWebTokenTypes.Pop,kid:e.kid,alg:e.alg}))}}class iL{constructor(){this.dbName=rg.DB_NAME,this.version=rg.DB_VERSION,this.tableName=rg.DB_TABLE_NAME,this.dbOpen=!1}async open(){return new Promise((e,t)=>{let r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",e=>{e.target.result.createObjectStore(this.tableName)}),r.addEventListener("success",t=>{this.db=t.target.result,this.dbOpen=!0,e()}),r.addEventListener("error",()=>t(oi(rZ)))})}closeConnection(){let e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(oi(r$));let o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);o.addEventListener("success",e=>{this.closeConnection(),t(e.target.result)}),o.addEventListener("error",e=>{this.closeConnection(),r(e)})})}async setItem(e,t){return await this.validateDbIsOpen(),new Promise((r,o)=>{if(!this.db)return o(oi(r$));let n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);n.addEventListener("success",()=>{this.closeConnection(),r()}),n.addEventListener("error",e=>{this.closeConnection(),o(e)})})}async removeItem(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(oi(r$));let o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);o.addEventListener("success",()=>{this.closeConnection(),t()}),o.addEventListener("error",e=>{this.closeConnection(),r(e)})})}async getKeys(){return await this.validateDbIsOpen(),new Promise((e,t)=>
1{if(!this.db)return t(oi(r$));let r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();r.addEventListener("success",t=>{this.closeConnection(),e(t.target.result)}),r.addEventListener("error",e=>{this.closeConnection(),t(e)})})}async containsKey(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(oi(r$));let o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);o.addEventListener("success",e=>{this.closeConnection(),t(1===e.target.result)}),o.addEventListener("error",e=>{this.closeConnection(),r(e)})})}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise((e,t)=>{let r=window.indexedDB.deleteDatabase(rg.DB_NAME),o=setTimeout(()=>t(!1),200);r.addEventListener("success",()=>(clearTimeout(o),e(!0))),r.addEventListener("blocked",()=>(clearTimeout(o),e(!0))),r.addEventListener("error",()=>(clearTimeout(o),t(!1)))})}}class ix{constructor(){this.cache=new Map}async initialize(){}getItem(e){return this.cache.get(e)||null}getUserData(e){return this.getItem(e)}setItem(e,t){this.cache.set(e,t)}async setUserData(e,t){this.setItem(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){let e=[];return this.cache.forEach((t,r)=>{e.push(r)}),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}decryptData(){return Promise.resolve(null)}}class iD{constructor(e){this.inMemoryCache=new ix,this.indexedDBCache=new iL,this.logger=e}handleDatabaseAccessError(e){if(e instanceof on&&e.errorCode===rZ)this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.");else throw e}async getItem(e){let t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(e){this.handleDatabaseAccessError(e)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(e){this.handleDatabaseAccessError(e)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(e){this.handleDatabaseAccessError(e)}}async getKeys(){let e=this.inMemoryCache.getKeys();if(0===e.length)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(e){this.handleDatabaseAccessError(e)}return e}async containsKey(e){let t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(e){this.handleDatabaseAccessError(e)}return t}clearInMemory(){this.logger.verbose("Deleting in-memory keystore"),this.inMemoryCache.clear(),this.logger.verbose("In-memory keystore deleted")}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");let e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}class iq{constructor(e,t,r){this.logger=e,function(e){if(!window)throw oi(rK);if(!window.crypto)throw oi(rC);if(!e&&!window.crypto.subtle)throw oi(rC,"crypto_subtle_undefined")}(r??!1),this.cache=new iD(this.logger),this.performanceClient=t}createNewGuid(){return nQ()}base64Encode(e){return nM(e)}base64Decode(e){return nx(e)}base64UrlEncode(e){return nO(e)}encodeKid(e){return this.base64UrlEncode(JSON.stringify({kid:e}))}async getPublicKeyThumbprint(e){let t=this.performanceClient?.startMeasurement("cryptoOptsGetPublicKeyThumbprint",e.correlationId),r=await nJ(iq.EXTRACTABLE,iq.POP_KEY_USAGES),o=await nY(r.publicKey),n=iU({e:o.e,kty:o.kty,n:o.n}),i=await this.hashString(n),s=await nY(r.privateKey),a=await nX(s,!1,["sign"]);return await this.cache.setItem(i,{privateKey:a,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.end({success:!0}),i}async removeTokenBindingKey(e){if(await this.cache.removeItem(e),await this.cache.containsKey(e))throw(0,tx.createClientAuthError)(iE.bindingKeyNotRemoved)}async clearKeystore(){this.cache.clearInMemory();
1try{return await this.cache.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}async signJwt(e,t,r,o){let n=this.performanceClient?.startMeasurement("cryptoOptsSignJwt",o),i=await this.cache.getItem(t);if(!i)throw oi(rQ);let s=await nY(i.publicKey),a=iU(s),c=nO(JSON.stringify({kid:t})),l=nO(iM.getShrHeaderString({...r?.header,alg:s.alg,kid:c}));e.cnf={jwk:JSON.parse(a)};let h=nO(JSON.stringify(e)),u=`${l}.${h}`,d=new TextEncoder().encode(u),g=nN(new Uint8Array(await nZ(i.privateKey,d))),p=`${u}.${g}`;return n&&n.end({success:!0}),p}async hashString(e){return n9(e)}}function iU(e){return JSON.stringify(e,Object.keys(e).sort())}iq.POP_KEY_USAGES=["sign","verify"],iq.EXTRACTABLE=!0;var iH=e.i(924988);let iF=(e,t,r,o,n)=>(...i)=>{r.trace(`Executing function ${t}`);let s=o?.startMeasurement(t,n);n&&o?.incrementFields({[t+"CallCount"]:1},n);try{let o=e(...i);return s?.end({success:!0}),r.trace(`Returning result from ${t}`),o}catch(e){r.trace(`Error occurred in ${t}`);try{r.trace(JSON.stringify(e))}catch(e){r.trace("Unable to print error message.")}throw s?.end({success:!1},e),e}},iB=(e,t,r,o,n)=>(...i)=>{r.trace(`Executing function ${t}`);let s=o?.startMeasurement(t,n);return n&&o?.incrementFields({[t+"CallCount"]:1},n),o?.setPreQueueTime(t,n),e(...i).then(e=>(r.trace(`Returning result from ${t}`),s?.end({success:!0}),e)).catch(e=>{r.trace(`Error occurred in ${t}`);try{r.trace(JSON.stringify(e))}catch(e){r.trace("Unable to print error message.")}throw s?.end({success:!1},e),e})};class iK{constructor(e,t,r,o){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=o}async detectRegion(e,t){this.performanceClient?.addQueueMeasurement(e4,this.correlationId);let r=e;if(r)t.region_source=tH.RegionDiscoverySources.ENVIRONMENT_VARIABLE;else{let e=iK.IMDS_OPTIONS;try{let o=await iB(this.getRegionFromIMDS.bind(this),e6,this.logger,this.performanceClient,this.correlationId)(tH.Constants.IMDS_VERSION,e);if(o.status===tH.HttpStatus.SUCCESS&&(r=o.body,t.region_source=tH.RegionDiscoverySources.IMDS),o.status===tH.HttpStatus.BAD_REQUEST){let o=await iB(this.getCurrentVersion.bind(this),e3,this.logger,this.performanceClient,this.correlationId)(e);if(!o)return t.region_source=tH.RegionDiscoverySources.FAILED_AUTO_DETECTION,null;let n=await iB(this.getRegionFromIMDS.bind(this),e6,this.logger,this.performanceClient,this.correlationId)(o,e);n.status===tH.HttpStatus.SUCCESS&&(r=n.body,t.region_source=tH.RegionDiscoverySources.IMDS)}}catch(e){return t.region_source=tH.RegionDiscoverySources.FAILED_AUTO_DETECTION,null}}return r||(t.region_source=tH.RegionDiscoverySources.FAILED_AUTO_DETECTION),r||null}async getRegionFromIMDS(e,t){return this.performanceClient?.addQueueMeasurement(e6,this.correlationId),this.networkInterface.sendGetRequestAsync(`${tH.Constants.IMDS_ENDPOINT}?api-version=${e}&format=text`,t,tH.Constants.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(e3,this.correlationId);try{let t=await this.networkInterface.sendGetRequestAsync(`${tH.Constants.IMDS_ENDPOINT}?format=json`,e);if(t.status===tH.HttpStatus.BAD_REQUEST&&t.body&&t.body["newest-versions"]&&t.body["newest-versions"].length>0)return t.body["newest-versions"][0];return null}catch(e){return null}}}function i$(){return Math.round(new Date().getTime()/1e3)}function ij(e){return e?new Date(1e3*Number(e)):new Date}function iz(e,t){let r=Number(e)||0;return i$()+t>r}function iW(e){return Number(e)>i$()}function iV(e,t,r,o,n){return{credentialType:tH.CredentialType.ID_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r,realm:n,lastUpdatedAt:Date.now().toString()}}function iG(e,t,r,o,n,i,s,a,c,l,h,u,d,g,p){let m={homeAccountId:e,credentialType:tH.CredentialType.ACCESS_TOKEN,secret:r,cachedAt:i$().toString(),expiresOn:s.toString(),extendedExpiresOn:a.toString(),environment:t,clientId:o,realm:n,target:i,tokenType:h||tH.AuthenticationScheme.BEARER,lastUpdatedAt:Date.now().toString()};if(u&&(m.userAssertionHash=u),l&&(m.refreshOn=l.toString()),g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==tH.AuthenticationScheme.BEARER.toLowerCase())switch(m.credentialType=tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case tH.AuthenticationScheme.POP:let f=tW(r,c);if(!f?.cnf?.kid)throw(0,tx.createClientAuthError)(tD.tokenClaimsCnfRequiredForSignedJwt);m.keyId=f.cnf.kid;break;
1case tH.AuthenticationScheme.SSH:m.keyId=d}return m}function iQ(e,t,r,o,n,i,s){let a={credentialType:tH.CredentialType.REFRESH_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r,lastUpdatedAt:Date.now().toString()};return i&&(a.userAssertionHash=i),n&&(a.familyId=n),s&&(a.expiresOn=s.toString()),a}function iJ(e){return e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")}function iY(){return i$()+tH.AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS}function iX(e,t,r){e.authorization_endpoint=t.authorization_endpoint,e.token_endpoint=t.token_endpoint,e.end_session_endpoint=t.end_session_endpoint,e.issuer=t.issuer,e.endpointsFromNetwork=r,e.jwks_uri=t.jwks_uri}function iZ(e,t,r){e.aliases=t.aliases,e.preferred_cache=t.preferred_cache,e.preferred_network=t.preferred_network,e.aliasesFromNetwork=r}function i0(e){return e.expiresAt<=i$()}iK.IMDS_OPTIONS={headers:{Metadata:"true"}},e.s(["delay",0,function(e,t){return new Promise(r=>setTimeout(()=>r(t),e))},"isCacheExpired",0,function(e,t){let r=Number(e)+24*t*36e5;return Date.now()>r},"isTokenExpired",0,iz,"nowSeconds",0,i$,"toDateFromSeconds",0,ij,"toSecondsFromDate",0,function(e){return e.getTime()/1e3},"wasClockTurnedBack",0,iW],942832),e.s(["createAccessTokenEntity",0,iG,"createIdTokenEntity",0,iV,"createRefreshTokenEntity",0,iQ,"generateAppMetadataKey",0,function({environment:e,clientId:t}){return[tH.APP_METADATA,e,t].join(tH.Separators.CACHE_KEY_SEPARATOR).toLowerCase()},"generateAuthorityMetadataExpiresAt",0,iY,"isAccessTokenEntity",0,function(e){return!!e&&iJ(e)&&e.hasOwnProperty("realm")&&e.hasOwnProperty("target")&&(e.credentialType===tH.CredentialType.ACCESS_TOKEN||e.credentialType===tH.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME)},"isAppMetadataEntity",0,function(e,t){return!!t&&0===e.indexOf(tH.APP_METADATA)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment")},"isAuthorityMetadataEntity",0,function(e,t){return!!t&&0===e.indexOf(tH.AUTHORITY_METADATA_CONSTANTS.CACHE_KEY)&&t.hasOwnProperty("aliases")&&t.hasOwnProperty("preferred_cache")&&t.hasOwnProperty("preferred_network")&&t.hasOwnProperty("canonical_authority")&&t.hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("aliasesFromNetwork")&&t.hasOwnProperty("endpointsFromNetwork")&&t.hasOwnProperty("expiresAt")&&t.hasOwnProperty("jwks_uri")},"isAuthorityMetadataExpired",0,i0,"isCredentialEntity",0,iJ,"isIdTokenEntity",0,function(e){return!!e&&iJ(e)&&e.hasOwnProperty("realm")&&e.credentialType===tH.CredentialType.ID_TOKEN},"isRefreshTokenEntity",0,function(e){return!!e&&iJ(e)&&e.credentialType===tH.CredentialType.REFRESH_TOKEN},"isServerTelemetryEntity",0,function(e,t){let r=0===e.indexOf(tH.SERVER_TELEM_CONSTANTS.CACHE_KEY),o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o},"isThrottlingEntity",0,function(e,t){let r=!1;e&&(r=0===e.indexOf(tH.ThrottlingConstants.THROTTLING_PREFIX));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o},"updateAuthorityEndpointMetadata",0,iX,"updateCloudDiscoveryMetadata",0,iZ],639333);class i1{constructor(e,t,r,o,n,i,s,a){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=n,this.performanceClient=s,this.correlationId=i,this.managedIdentity=a||!1,this.regionDiscovery=new iK(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(tH.Constants.CIAM_AUTH_URL))return iH.AuthorityType.Ciam;let t=e.PathSegments;if(t.length)switch(t[0].toLowerCase()){case tH.Constants.ADFS:return iH.AuthorityType.Adfs;case tH.Constants.DSTS:return iH.AuthorityType.Dsts}return iH.AuthorityType.Default}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new tZ(e),this._canonicalAuthority.val
1idateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw(0,tx.createClientAuthError)(tD.endSessionEndpointNotSupported);return this.replacePath(this.metadata.end_session_endpoint)}throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}canReplaceTenant(e){return 1===e.PathSegments.length&&!i1.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===iH.AuthorityType.Default&&this.protocolMode!==ti.ProtocolMode.OIDC}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e,r=new tZ(this.metadata.canonical_authority).getUrlComponents(),o=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach((e,n)=>{let i=o[n];if(0===n&&this.canReplaceTenant(r)){let e=new tZ(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];i!==e&&(this.logger.verbose(`Replacing tenant domain name ${i} with id ${e}`),i=e)}e!==i&&(t=t.replace(`/${i}/`,`/${e}/`))}),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){let e=this.hostnameAndPort;return this.canonicalAuthority.endsWith("v2.0/")||this.authorityType===iH.AuthorityType.Adfs||this.protocolMode===ti.ProtocolMode.OIDC&&!this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){this.performanceClient?.addQueueMeasurement(eY,this.correlationId);let e=this.getCurrentMetadataEntity(),t=await iB(this.updateCloudDiscoveryMetadata.bind(this),eZ,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);let r=await iB(this.updateEndpointMetadata.bind(this),e1,this.logger,this.performanceClient,this.correlationId)(e);this.updateCachedMetadata(e,t,{source:r}),this.performanceClient?.addFields({cloudDiscoverySource:t,authorityEndpointSource:r},this.correlationId)}getCurrentMetadataEntity(){let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);return e||(e={aliases:[],preferred_cache:this.hostnameAndPort,preferred_network:this.hostnameAndPort,canonical_authority:this.canonicalAuthority,authorization_endpoint:"",token_endpoint:"",end_session_endpoint:"",issuer:"",aliasesFromNetwork:!1,endpointsFromNetwork:!1,expiresAt:iY(),jwks_uri:""}),e}updateCachedMetadata(e,t,r){t!==tH.AuthorityMetadataSource.CACHE&&r?.source!==tH.AuthorityMetadataSource.CACHE&&(e.expiresAt=iY(),e.canonical_authority=this.canonicalAuthority);let o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(e1,this.correlationId);let t=this.updateEndpointMetadataFromLocalSources(e);if(t)return t.source===tH.AuthorityMetadataSource.HARDCODED_VALUES&&this.authorityOptions.azureRegionConfiguration?.azureRegion&&t.metadata&&(iX(e,await iB(this.updateMetadataWithRegionalInformation.bind(this),e2,this.logger,this.performanceClient,this.correlationId)(t.metadata),!1),e.canonical_authority=this.canonicalAuthority),t.source;let r=await iB(this.getEndpointMetadataFromNetwork.bind(this),e0,this.logger,this.performanceClient,this.correlationId)();if(r)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(r=await iB(this.updateMetadataWithRegionalInformation.bind(this),e2,this.logger,this.performanceClient,this.correlationId)(r)),iX(e,r,!0),tH.AuthorityMetadataSource.NETWORK;throw(0,tx.createClientAuthError)(tD.openIdConfigError,this.defaultOpenIdConfigurationEndpoint)}updateEndpointMetadataFromLocalSources(e){this.logger.verbose("Attempting to get endpoint metadata from authority configuration");let t=this.getEndpointMetadataFromConfig();if(t)return this.logger.verbose("Found endpoint metadata in authority configuration"),iX(e,t,!1),{source:tH.AuthorityMetadataSource.CONFIG};if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{let t=this.getEndpointMetadataFromHardcodedValues();if(t)return iX(e,t,!1),{source:tH.AuthorityMetadataSource.HARDCODED_VALUES,metadata:t};this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}let r=i0(e);return this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r?(this.logger.verbose("Found endpoint metadata in the cache."),{source:tH.AuthorityMetadataSource.CACHE}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new tZ(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch(e){throw tM(tv)}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(e0,this.correlationId);let e=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${e}`);try{var t;let r=await this.networkInterface.sendGetRequestAsync(e,{});if((t=r.body).hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("jwks_uri"))return r.body;return this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null}catch(e){return this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${e}`),null}}getEndpointMetadataFromHardcodedValues(){return this.hostnameAndPort in t0?t0[this.hostnameAndPort]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(e2,this.correlationId);let t=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(t){if(t!==tH.Constants.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=tH.RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION,this.regionDiscoveryMetadata.region_used=t,i1.replaceWithRegionalInformation(e,t);let r=await iB(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),e4,this.logger,this.performanceClient,this.correlationId)(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(r)return this.regionDiscoveryMetadata.region_outcome=tH.RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL,this.regionDiscoveryMetadata.region_used=r,i1.replaceWithRegionalInformation(e,r);this.regionDiscoveryMetadata.region_outcome=tH.RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(eZ,this.correlationId);let t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;let r=await iB(this.getCloudDiscoveryMetadataFromNetwork.bind(this),eX,this.logger,this.performanceClient,this.correlationId)();if(r)return iZ(e,r,!0),tH.AuthorityMetadataSource.NETWORK;throw tM(tw)}updateCloudDiscoveryMetadataFromLocalSources(e){this.logger.verbose("Attempting to get cloud discovery metadata from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||tH.C
1onstants.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||tH.Constants.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||tH.Constants.NOT_APPLICABLE}`);let t=this.getCloudDiscoveryMetadataFromConfig();if(t)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),iZ(e,t,!1),tH.AuthorityMetadataSource.CONFIG;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{var r;let t=(r=this.hostnameAndPort,t6(t1,r));if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),iZ(e,t,!1),tH.AuthorityMetadataSource.HARDCODED_VALUES;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}let o=i0(e);return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o?(this.logger.verbose("Found cloud discovery metadata in the cache."),tH.AuthorityMetadataSource.CACHE):(o&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===iH.AuthorityType.Ciam)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),i1.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");let e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),t=t6(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),t)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),t;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch(e){throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),tM(tC)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),i1.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(eX,this.correlationId);let e=`${tH.Constants.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,t=null;try{var r,o;let n,i,s=await this.networkInterface.sendGetRequestAsync(e,{});if((r=s.body).hasOwnProperty("tenant_discovery_endpoint")&&r.hasOwnProperty("metadata"))i=(n=s.body).metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${n.tenant_discovery_endpoint}`);else{if(!((o=s.body).hasOwnProperty("error")&&o.hasOwnProperty("error_description")))return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${s.status}`),(n=s.body).error===tH.Constants.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${n.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${n.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),i=[]}this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),t=t6(i,this.hostnameAndPort)}catch(e){return e instanceof ts.AuthError?this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata. 2Error: ${e.errorCode} 3Error Description: ${e.errorMessage}`):this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata. 4Error: ${e.name} 5Error Description: ${e.message}`),null}return t||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),t=i1.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),t}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter(e=>e&&tZ.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort).length>0}static generateAuthority(e,t){let r;if(t&&t.azureCloudInstance!==tK){let e=t.tenant?t.tenant:tH.Constants.DEFAULT_COMMON_TENANT;r=`${t.azureCloudInstance}/${e}/`}return r||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}getPreferredCache(){if(this.managedIdentity)return tH.Constants.DEFAULT_AUTHORITY_HOST;if(this.discoveryComplete())return this.metadata.preferred_cache;throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return t2.has(e)}static isPublicCloudAuthority(e){return tH.Constants.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,t,r){let o=new tZ(e);o.validateAsUri();let n=o.getUrlComponents(),i=`${t}.${n.HostNameAndPort}`;this.isPublicCloudAuthority(n.HostNameAndPort)&&(i=`${t}.${tH.Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);let s=tZ.constructAuthorityUriFromObject({...o.getUrlComponents(),HostNameAndPort:i}).urlString;return r?`${s}?${r}`:s}static replaceWithRegionalInformation(e,t){let r={...e};return r.authorization_endpoint=i1.buildRegionalAuthorityString(r.authorization_endpoint,t),r.token_endpoint=i1.buildRegionalAuthorityString(r.token_endpoint,t),r.end_session_endpoint&&(r.end_session_endpoint=i1.buildRegionalAuthorityString(r.end_session_endpoint,t)),r}static transformCIAMAuthority(e){let t=e,r=new tZ(e).getUrlComponents();if(0===r.PathSegments.length&&r.HostNameAndPort.endsWith(tH.Constants.CIAM_AUTH_URL)){let e=r.HostNameAndPort.split(".")[0];t=`${t}${e}${tH.Constants.AAD_TENANT_DOMAIN_SUFFIX}`}return t}}function i2(e){return e.endsWith(tH.Constants.FORWARD_SLASH)?e:`${e}${tH.Constants.FORWARD_SLASH}`}i1.reservedTenantDomains=new Set(["{tenant}","{tenantid}",tH.AADAuthorityConstants.COMMON,tH.AADAuthorityConstants.CONSUMERS,tH.AADAuthorityConstants.ORGANIZATIONS]);var i4=e.i(781324),iE=tD,i6=e.i(389025);function i3(e,t,r){return{clientId:e,authority:t.authority,scopes:t.scopes,homeAccountIdentifier:r,claims:t.claims,authenticationScheme:t.authenticationScheme,resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,sshKid:t.sshKid,embeddedClientId:t.embeddedClientId||t.tokenBodyParameters?.clientId}}var i8=e.i(684009),i8=i8,i7=e.i(639333),i7=i7,i9=e.i(942832),i9=i9,iE=tD;let i5="None";class se{initialize(){return Promise.resolve()}getItem(e){let t=`${encodeURIComponent(e)}`,r=document.cookie.split(";");for(let e=0;e<r.length;e++){let[o,...n]=decodeURIComponent(r[e]).trim().split("="),i=n.join("=");if(o===t)return i}return""}getUserData(){throw(0,tx.createClientAuthError)(iE.methodNotImplemented)}setItem(e,t,r,o=!0,n="Lax"){let i=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=${n};`;if(r){var s;let e=(s=r,new Date(new Date().getTime()+864e5*s).toUTCString());i+=`expires=${e};`}
5(o||n===i5)&&(i+="Secure;"),document.cookie=i}async setUserData(){return Promise.reject((0,tx.createClientAuthError)(iE.methodNotImplemented))}removeItem(e){this.setItem(e,"",-1)}getKeys(){let e=document.cookie.split(";"),t=[];return e.forEach(e=>{let r=decodeURIComponent(e).trim().split("=");t.push(r[0])}),t}containsKey(e){return this.getKeys().includes(e)}decryptData(){return Promise.resolve(null)}}function st(e,t){let r=e.getItem(iw(t));return r?JSON.parse(r):[]}function sr(e,t,r){let o=t.getItem(iI(e,r));if(o){let e=JSON.parse(o);if(e&&e.hasOwnProperty("idToken")&&e.hasOwnProperty("accessToken")&&e.hasOwnProperty("refreshToken"))return e}return{idToken:[],accessToken:[],refreshToken:[]}}function so(e){return e.hasOwnProperty("id")&&e.hasOwnProperty("nonce")&&e.hasOwnProperty("data")}let sn="msal.cache.encryption";class si{constructor(e,t,r){if(!window.localStorage)throw(0,n5.createBrowserConfigurationAuthError)(ie.storageNotSupported);this.memoryStorage=new ix,this.initialized=!1,this.clientId=e,this.logger=t,this.performanceClient=r,this.broadcast=new BroadcastChannel("msal.broadcast.cache")}async initialize(e){let t=new se,r=t.getItem(sn),o={key:"",id:""};if(r)try{o=JSON.parse(r)}catch(e){}if(o.key&&o.id){let t=iF(nD,"base64Decode",this.logger,this.performanceClient,e)(o.key);this.encryptionCookie={id:o.id,key:await iB(n6,te,this.logger,this.performanceClient,e)(t)}}else{let r=nQ(),o=await iB(n4,"generateBaseKey",this.logger,this.performanceClient,e)(),n=iF(nN,"urlEncodeArr",this.logger,this.performanceClient,e)(new Uint8Array(o));this.encryptionCookie={id:r,key:await iB(n6,te,this.logger,this.performanceClient,e)(o)},t.setItem(sn,JSON.stringify({id:r,key:n}),0,!0,i5)}await iB(this.importExistingCache.bind(this),"importExistingCache",this.logger,this.performanceClient,e)(e),this.broadcast.addEventListener("message",this.updateCache.bind(this)),this.initialized=!0}getItem(e){return window.localStorage.getItem(e)}getUserData(e){if(!this.initialized)throw oi(r6);return this.memoryStorage.getItem(e)}async decryptData(e,t,r){if(!this.initialized||!this.encryptionCookie)throw oi(r6);if(t.id!==this.encryptionCookie.id)return this.performanceClient.incrementFields({encryptedCacheExpiredCount:1},r),null;let o=await iB(n7,tt,this.logger,this.performanceClient,r)(this.encryptionCookie.key,t.nonce,this.getContext(e),t.data);if(!o)return null;try{return JSON.parse(o)}catch(e){return this.performanceClient.incrementFields({encryptedCacheCorruptionCount:1},r),null}}setItem(e,t){window.localStorage.setItem(e,t)}async setUserData(e,t,r,o){if(!this.initialized||!this.encryptionCookie)throw oi(r6);let{data:n,nonce:i}=await iB(n8,"encrypt",this.logger,this.performanceClient,r)(this.encryptionCookie.key,t,this.getContext(e)),s={id:this.encryptionCookie.id,nonce:i,data:n,lastUpdatedAt:o};this.memoryStorage.setItem(e,t),this.setItem(e,JSON.stringify(s)),this.broadcast.postMessage({key:e,value:t,context:this.getContext(e)})}removeItem(e){this.memoryStorage.containsKey(e)&&(this.memoryStorage.removeItem(e),this.broadcast.postMessage({key:e,value:null,context:this.getContext(e)})),window.localStorage.removeItem(e)}getKeys(){return Object.keys(window.localStorage)}containsKey(e){return window.localStorage.hasOwnProperty(e)}clear(){this.memoryStorage.clear(),st(this).forEach(e=>this.removeItem(e));let e=sr(this.clientId,this);e.idToken.forEach(e=>this.removeItem(e)),e.accessToken.forEach(e=>this.removeItem(e)),e.refreshToken.forEach(e=>this.removeItem(e)),this.getKeys().forEach(e=>{(e.startsWith(iu)||-1!==e.indexOf(this.clientId))&&this.removeItem(e)})}async importExistingCache(e){if(!this.encryptionCookie)return;let t=st(this);(t=await this.importArray(t,e)).length?this.setItem(iw(),JSON.stringify(t)):this.removeItem(iw());let r=sr(this.clientId,this);r.idToken=await this.importArray(r.idToken,e),r.accessToken=await this.importArray(r.accessToken,e),r.refreshToken=await this.importArray(r.refreshToken,e),r.idToken.length||r.accessToken.length||r.refreshToken.length?this.setItem(iI(this.clientId),JSON.stringify(r)):this.removeItem(iI(this.clientId))}async getItemFromEncryptedCache(e,t){let r;if(!this.encryptionCookie)return null;let o=this.getItem(e);if(!o)return null;try{r=JSON.parse(o)}catch(e){return null}return so(r)?r.id!==this.encryptionCookie.id?(this.performanceClient.incrementFields({encryptedCacheExpiredCount:1},t),null):iB(n7,tt,this.logger,this.performanceClient,t)(this.encryptionCookie.ke
5y,r.nonce,this.getContext(e),r.data):(this.performanceClient.incrementFields({unencryptedCacheCount:1},t),r)}async importArray(e,t){let r=[],o=[];return e.forEach(e=>{let n=this.getItemFromEncryptedCache(e,t).then(t=>{t?(this.memoryStorage.setItem(e,t),r.push(e)):this.removeItem(e)});o.push(n)}),await Promise.all(o),r}getContext(e){let t="";return e.includes(this.clientId)&&(t=this.clientId),t}updateCache(e){this.logger.trace("Updating internal cache from broadcast event");let t=this.performanceClient.startMeasurement("localStorageUpdated");t.add({isBackground:!0});let{key:r,value:o,context:n}=e.data;if(!r){this.logger.error("Broadcast event missing key"),t.end({success:!1,errorCode:"noKey"});return}if(n&&n!==this.clientId){this.logger.trace(`Ignoring broadcast event from clientId: ${n}`),t.end({success:!1,errorCode:"contextMismatch"});return}o?(this.memoryStorage.setItem(r,o),this.logger.verbose("Updated item in internal cache")):(this.memoryStorage.removeItem(r),this.logger.verbose("Removed item from internal cache")),t.end({success:!0})}}class ss{constructor(){if(!window.sessionStorage)throw(0,n5.createBrowserConfigurationAuthError)(ie.storageNotSupported)}async initialize(){}getItem(e){return window.sessionStorage.getItem(e)}getUserData(e){return this.getItem(e)}setItem(e,t){window.sessionStorage.setItem(e,t)}async setUserData(e,t){this.setItem(e,t)}removeItem(e){window.sessionStorage.removeItem(e)}getKeys(){return Object.keys(window.sessionStorage)}containsKey(e){return window.sessionStorage.hasOwnProperty(e)}decryptData(){return Promise.resolve(null)}}function sa(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1)}class sc extends rr{constructor(e,t,r,o,n,i,s){super(e,r,o,n,s),this.cacheConfig=t,this.logger=o,this.internalStorage=new ix,this.browserStorage=sl(e,t.cacheLocation,o,n),this.temporaryCacheStorage=sl(e,t.temporaryCacheLocation,o,n),this.cookieStorage=new se,this.eventHandler=i}async initialize(e){this.performanceClient.addFields({cacheLocation:this.cacheConfig.cacheLocation,cacheRetentionDays:this.cacheConfig.cacheRetentionDays},e),await this.browserStorage.initialize(e),await this.migrateExistingCache(e),this.trackVersionChanges(e)}async migrateExistingCache(e){let t=st(this.browserStorage,0),r=sr(this.clientId,this.browserStorage,0);this.performanceClient.addFields({oldAccountCount:t.length,oldAccessCount:r.accessToken.length,oldIdCount:r.idToken.length,oldRefreshCount:r.refreshToken.length},e);let o=st(this.browserStorage,1),n=sr(this.clientId,this.browserStorage,1);this.performanceClient.addFields({currAccountCount:o.length,currAccessCount:n.accessToken.length,currIdCount:n.idToken.length,currRefreshCount:n.refreshToken.length},e),await Promise.all([this.updateV0ToCurrent(1,t,o,e),this.updateV0ToCurrent(1,r.idToken,n.idToken,e),this.updateV0ToCurrent(1,r.accessToken,n.accessToken,e),this.updateV0ToCurrent(1,r.refreshToken,n.refreshToken,e)]),t.length>0?this.browserStorage.setItem(iw(0),JSON.stringify(t)):this.browserStorage.removeItem(iw(0)),o.length>0?this.browserStorage.setItem(iw(1),JSON.stringify(o)):this.browserStorage.removeItem(iw(1)),this.setTokenKeys(r,e,0),this.setTokenKeys(n,e,1)}async updateV0ToCurrent(e,t,r,o){let n=[];for(let i of[...t]){let s,a=this.browserStorage.getItem(i),c=this.validateAndParseJson(a||"");if(!c){sa(t,i);continue}c.lastUpdatedAt||(c.lastUpdatedAt=Date.now().toString(),this.setItem(i,JSON.stringify(c),o));let l=so(c)?await this.browserStorage.decryptData(i,c,o):c;if(l&&(i7.isAccessTokenEntity(l)?s=l.expiresOn:i7.isRefreshTokenEntity(l)&&(s=l.expiresOn)),!l||i9.isCacheExpired(c.lastUpdatedAt,this.cacheConfig.cacheRetentionDays)||s&&i9.isTokenExpired(s,tH.DEFAULT_TOKEN_RENEWAL_OFFSET_SEC)){this.browserStorage.removeItem(i),sa(t,i),this.performanceClient.incrementFields({expiredCacheRemovedCount:1},o);continue}if(this.cacheConfig.cacheLocation!==rg.BrowserCacheLocation.LocalStorage||so(c)){let t=`${iu}.${e}-${i}`,s=this.browserStorage.getItem(t);if(s){let e=this.validateAndParseJson(s);if(Number(c.lastUpdatedAt)>Number(e.lastUpdatedAt)){n.push(this.setUserData(t,JSON.stringify(l),o,c.lastUpdatedAt).then(()=>{this.performanceClient.incrementFields({updatedCacheFromV0Count:1},o)}));continue}}else{n.push(this.setUserData(t,JSON.stringify(l),o,c.lastUpdatedAt).then(()=>{r.push(t),this.performanceClient.incrementFields({upgradedCacheCount:1},o)}));continue}}}return Promise.all(n)}trackVersionChanges(e){let t=this.browserStorage.getItem(iy);t&&(this.logger.info(`MSAL.js was last initialized by version: ${t}`),this.performanceClient.addFields({previousLibraryVersion:t},e)),t!==ih&&this.setItem(iy,ih,e)}validateAndParseJson(e){if(!e)return null;try{let t=JSON.parse(e);return t&&"object"==typeof t?t:null}catch(e){return null}}setItem(e,t,r){let o=0,n=[];for(let i=0;i<=20;i++)try{this.browserStorage.setItem(e,t),i>0&&(i<=o?this.removeAccessTokenKeys(n.slice(0,i),r,0):(this.removeAccessTokenKeys(n.slice(0,o),r,0),this.removeAccessTokenKeys(n.slice(o,i),r)));break}catch(a){let s=rt(a);if(s.errorCode===t9.cacheQuotaExceeded&&i<20){if(!n.length){let r=e===iI(this.clientId,0)?JSON.parse(t).accessToken:this.getTokenKeys(0).accessToken;n=[...r,...e===iI(this.clientId)?JSON.parse(t).accessToken:this.getTokenKeys().accessToken],o=r.length}if(n.length<=i)throw s;this.removeAccessToken(n[i],r,!1)}else throw s}}async setUserData(e,t,r,o){let n=0,i=[];for(let s=0;s<=20;s++)try{await iB(this.browserStorage.setUserData.bind(this.browserStorage),"setUserData",this.logger,this.performanceClient)(e,t,r,o),s>0&&(s<=n?this.removeAccessTokenKeys(i.slice(0,s),r,0):(this.removeAccessTokenKeys(i.slice(0,n),r,0),this.removeAccessTokenKeys(i.slice(n,s),r)));break}catch(t){let e=rt(t);if(e.errorCode===t9.cacheQuotaExceeded&&s<20){if(!i.length){let e=this.getTokenKeys(0).accessToken;i=[...e,...this.getTokenKeys().accessToken],n=e.length}if(i.length<=s)throw e;this.removeAccessToken(i[s],r,!1)}else throw e}}getAccount(e,t){this.logger.trace("BrowserCacheManager.getAccount called");let r=this.browserStorage.getUserData(e);if(!r)return this.removeAccountKeyFromMap(e,t),null;let o=this.validateAndParseJson(r);return o&&i6.AccountEntity.isAccountEntity(o)?rr.toObject(new i6.AccountEntity,o):null}async setAccount(e,t){this.logger.trace("BrowserCacheManager.setAccount called");let r=this.generateAccountKey(e.getAccountInfo()),o=Date.now().toString();e.lastUpdatedAt=o,await this.setUserData(r,JSON.stringify(e),t,o);let n=this.addAccountKeyToMap(r,t);this.cacheConfig.cacheLocation===rg.BrowserCacheLocation.LocalStorage&&n&&this.eventHandler.emitEvent(ea.EventType.ACCOUNT_ADDED,void 0,e.getAccountInfo())}getAccountKeys(){return st(this.browserStorage)}addAccountKeyToMap(e,t){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);let r=this.getAccountKeys();return -1===r.indexOf(e)?(r.push(e),this.setItem(iw(),JSON.stringify(r),t),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added"),!0):(this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map"),!1)}removeAccountKeyFromMap(e,t){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);let r=this.getAccountKeys(),o=r.indexOf(e);if(o>-1){if(r.splice(o,1),0===r.length)return void this.removeItem(iw());this.setItem(iw(),JSON.stringify(r),t),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")}else this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap ke
5y not found in existing map")}removeAccount(e,t){let r=this.getActiveAccount(t);r?.homeAccountId===e.homeAccountId&&r?.environment===e.environment&&this.setActiveAccount(null,t),super.removeAccount(e,t),this.removeAccountKeyFromMap(this.generateAccountKey(e),t),this.browserStorage.getKeys().forEach(t=>{t.includes(e.homeAccountId)&&t.includes(e.environment)&&this.browserStorage.removeItem(t)}),this.cacheConfig.cacheLocation===rg.BrowserCacheLocation.LocalStorage&&this.eventHandler.emitEvent(ea.EventType.ACCOUNT_REMOVED,void 0,e)}removeIdToken(e,t){super.removeIdToken(e,t);let r=this.getTokenKeys(),o=r.idToken.indexOf(e);o>-1&&(this.logger.info("idToken removed from tokenKeys map"),r.idToken.splice(o,1),this.setTokenKeys(r,t))}removeAccessToken(e,t,r=!0){super.removeAccessToken(e,t),r&&this.removeAccessTokenKeys([e],t)}removeAccessTokenKeys(e,t,r=1){this.logger.trace("removeAccessTokenKey called");let o=this.getTokenKeys(r),n=0;if(e.forEach(e=>{let t=o.accessToken.indexOf(e);t>-1&&(o.accessToken.splice(t,1),n++)}),n>0){this.logger.info(`removed ${n} accessToken keys from tokenKeys map`),this.setTokenKeys(o,t,r);return}}removeRefreshToken(e,t){super.removeRefreshToken(e,t);let r=this.getTokenKeys(),o=r.refreshToken.indexOf(e);o>-1&&(this.logger.info("refreshToken removed from tokenKeys map"),r.refreshToken.splice(o,1),this.setTokenKeys(r,t))}getTokenKeys(e=1){return sr(this.clientId,this.browserStorage,e)}setTokenKeys(e,t,r=1){0===e.idToken.length&&0===e.accessToken.length&&0===e.refreshToken.length?this.removeItem(iI(this.clientId,r)):this.setItem(iI(this.clientId,r),JSON.stringify(e),t)}getIdTokenCredential(e,t){let r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeIdToken(e,t),null;let o=this.validateAndParseJson(r);return o&&i7.isIdTokenEntity(o)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),o):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),null)}async setIdTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");let r=this.generateCredentialKey(e),o=Date.now().toString();e.lastUpdatedAt=o,await this.setUserData(r,JSON.stringify(e),t,o);let n=this.getTokenKeys();-1===n.idToken.indexOf(r)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),n.idToken.push(r),this.setTokenKeys(n,t))}getAccessTokenCredential(e,t){let r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeAccessTokenKeys([e],t),null;let o=this.validateAndParseJson(r);return o&&i7.isAccessTokenEntity(o)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),o):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),null)}async setAccessTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");let r=this.generateCredentialKey(e),o=Date.now().toString();e.lastUpdatedAt=o,await this.setUserData(r,JSON.stringify(e),t,o);let n=this.getTokenKeys(),i=n.accessToken.indexOf(r);-1!==i&&n.accessToken.splice(i,1),this.logger.trace(`access token ${-1===i?"added to":"updated in"} map`),n.accessToken.push(r),this.setTokenKeys(n,t)}getRefreshTokenCredential(e,t){let r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeRefreshToken(e,t),null;let o=this.validateAndParseJson(r);return o&&i7.isRefreshTokenEntity(o)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),o):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),null)}async setRefreshTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");let r=this.generateCredentialKey(e),o=Date.now().toString();e.lastUpdatedAt=o,await this.setUserData(r,JSON.stringify(e),t,o);let n=this.getTokenKeys();-1===n.refreshToken.indexOf(r)&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),n.refreshToken.push(r),this.setTokenKeys(n,t))}getAppMetadata(e){let t=this.browserStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;let r=this.validateAndParseJson(t);return r&&i7.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null)}setAppMetadata(e,t){this.logger.trace("BrowserCacheManager.setAppMetadata called");let r=i7.generateAppMetadataKey(e);this.setItem(r,JSON.stringify(e),t)}getServerTelemetry(e){let t=this.browserStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;let r=this.validateAndParseJson(t);return r&&i7.isServerTelemetryEntity(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),r):(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null)}setServerTelemetry(e,t,r){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t),r)}getAuthorityMetadata(e){let t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;let r=this.validateAndParseJson(t);return r&&i7.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),r):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter(e=>this.isAuthorityMetadata(e))}setWrapperMetadata(e,t){this.internalStorage.setItem(rg.InMemoryCacheKeys.WRAPPER_SKU,e),this.internalStorage.setItem(rg.InMemoryCacheKeys.WRAPPER_VER,t)}getWrapperMetadata(){return[this.internalStorage.getItem(rg.InMemoryCacheKeys.WRAPPER_SKU)||tH.Constants.EMPTY_STRING,this.internalStorage.getItem(rg.InMemoryCacheKeys.WRAPPER_VER)||tH.C
5onstants.EMPTY_STRING]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(e){let t=this.generateCacheKey(tH.PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS),r=this.browserStorage.getItem(t);if(!r)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters found"),null;let o=this.validateAndParseJson(r);return o?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoFilteredBy({homeAccountId:o.homeAccountId,localAccountId:o.localAccountId,tenantId:o.tenantId},e)):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e,t){let r=this.generateCacheKey(tH.PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);if(e){this.logger.verbose("setActiveAccount: Active account set");let o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId,tenantId:e.tenantId,lastUpdatedAt:i9.nowSeconds().toString()};this.setItem(r,JSON.stringify(o),t)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(r);this.eventHandler.emitEvent(ea.EventType.ACTIVE_ACCOUNT_CHANGED)}getThrottlingCache(e){let t=this.browserStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;let r=this.validateAndParseJson(t);return r&&i7.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),r):(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null)}setThrottlingCache(e,t,r){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t),r)}getTemporaryCache(e,t){let r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){let e=this.cookieStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),e}let o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===rg.BrowserCacheLocation.LocalStorage){let e=this.browserStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),e}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){let o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.cookieStorage.setItem(o,t,void 0,this.cacheConfig.secureCookies))}removeItem(e){this.browserStorage.removeItem(e)}removeTemporaryItem(e){this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.cookieStorage.removeItem(e))}getKeys(){return this.browserStorage.getKeys()}clear(e){this.removeAllAccounts(e),this.removeAppMetadata(e),this.temporaryCacheStorage.getKeys().forEach(e=>{(-1!==e.indexOf(iu)||-1!==e.indexOf(this.clientId))&&this.removeTemporaryItem(e)}),this.browserStorage.getKeys().forEach(e=>{(-1!==e.indexOf(iu)||-1!==e.indexOf(this.clientId))&&this.browserStorage.removeItem(e)}),this.internalStorage.clear()}clearTokensAndKeysWithClaims(e){this.performanceClient.addQueueMeasurement(e8,e);let t=this.getTokenKeys(),r=0;t.accessToken.forEach(t=>{let o=this.getAccessTokenCredential(t,e);o?.requestedClaimsHash&&t.includes(o.requestedClaimsHash.toLowerCase())&&(this.removeAccessToken(t,e),r++)}),r>0&&this.logger.warning(`${r} access tokens with claims in the cache keys have been removed from the cache.`)}generateCacheKey(e){return t$.startsWith(e,iu)?e:`${iu}.${this.clientId}.${e}`}generateCredentialKey(e){let t=e.credentialType===tH.CredentialType.REFRESH_TOKEN&&e.fam
5ilyId||e.clientId,r=e.tokenType&&e.tokenType.toLowerCase()!==tH.AuthenticationScheme.BEARER.toLowerCase()?e.tokenType.toLowerCase():"";return[`${iu}.1`,e.homeAccountId,e.environment,e.credentialType,t,e.realm||"",e.target||"",e.requestedClaimsHash||"",r].join("-").toLowerCase()}generateAccountKey(e){let t=e.homeAccountId.split(".")[1];return[`${iu}.1`,e.homeAccountId,e.environment,t||e.tenantId||""].join("-").toLowerCase()}resetRequestCache(){this.logger.trace("BrowserCacheManager.resetRequestCache called"),this.removeTemporaryItem(this.generateCacheKey(rg.TemporaryCacheKeys.REQUEST_PARAMS)),this.removeTemporaryItem(this.generateCacheKey(rg.TemporaryCacheKeys.VERIFIER)),this.removeTemporaryItem(this.generateCacheKey(rg.TemporaryCacheKeys.ORIGIN_URI)),this.removeTemporaryItem(this.generateCacheKey(rg.TemporaryCacheKeys.URL_HASH)),this.removeTemporaryItem(this.generateCacheKey(rg.TemporaryCacheKeys.NATIVE_REQUEST)),this.setInteractionInProgress(!1)}cacheAuthorizeRequest(e,t){this.logger.trace("BrowserCacheManager.cacheAuthorizeRequest called");let r=nM(JSON.stringify(e));if(this.setTemporaryCache(rg.TemporaryCacheKeys.REQUEST_PARAMS,r,!0),t){let e=nM(t);this.setTemporaryCache(rg.TemporaryCacheKeys.VERIFIER,e,!0)}}getCachedRequest(){let e;this.logger.trace("BrowserCacheManager.getCachedRequest called");let t=this.getTemporaryCache(rg.TemporaryCacheKeys.REQUEST_PARAMS,!0);if(!t)throw oi(rU);let r=this.getTemporaryCache(rg.TemporaryCacheKeys.VERIFIER,!0),o="";try{e=JSON.parse(nx(t)),r&&(o=nx(r))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),oi(rH)}return[e,o]}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");let e=this.getTemporaryCache(rg.TemporaryCacheKeys.NATIVE_REQUEST,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;let t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){let t=this.getInteractionInProgress()?.clientId;return e?t===this.clientId:!!t}getInteractionInProgress(){let e=`${iu}.${rg.TemporaryCacheKeys.INTERACTION_STATUS_KEY}`,t=this.getTemporaryCache(e,!1);try{return t?JSON.parse(t):null}catch(t){return this.logger.error("Cannot parse interaction status. Removing temporary cache items and clearing url hash. Retrying interaction should fix the error"),this.removeTemporaryItem(e),this.resetRequestCache(),it(window),null}}setInteractionInProgress(e,t=rg.INTERACTION_TYPE.SIGNIN){let r=`${iu}.${rg.TemporaryCacheKeys.INTERACTION_STATUS_KEY}`;if(e)if(this.getInteractionInProgress())throw oi(rS);else this.setTemporaryCache(r,JSON.stringify({clientId:this.clientId,type:t}),!1);else e||this.getInteractionInProgress()?.clientId!==this.clientId||this.removeTemporaryItem(r)}async hydrateCache(e,t){let r,o=i7.createIdTokenEntity(e.account?.homeAccountId,e.account?.environment,e.idToken,this.clientId,e.tenantId);t.claims&&(r=await this.cryptoImpl.hashString(t.claims));let n=i7.createAccessTokenEntity(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?i9.toSecondsFromDate(e.expiresOn):0,e.extExpiresOn?i9.toSecondsFromDate(e.extExpiresOn):0,nx,void 0,e.tokenType,void 0,t.sshKid,t.claims,r);return this.saveCacheRecord({idToken:o,accessToken:n},e.correlationId)}async saveCacheRecord(e,t,r){try{await super.saveCacheRecord(e,t,r)}catch(e){if(e instanceof re&&this.performanceClient&&t)try{let e=this.getTokenKeys();this.performanceClient.addFields({cacheRtCount:e.refreshToken.length,cacheIdCount:e.idToken.length,cacheAtCount:e.accessToken.length},t)}catch(e){}throw e}}}function sl(e,t,r,o){try{switch(t){case rg.BrowserCacheLocation.LocalStorage:return new si(e,r,o);case rg.BrowserCacheLocation.SessionStorage:return new ss;case rg.BrowserCacheLocation.MemoryStorage:}}catch(e){r.error(e)}return new ix}class sh{constructor(e){this.eventCallbacks=new Map,this.logger=e||new ec.Logger({}),"u">typeof BroadcastChannel&&(this.broadcastChannel=new BroadcastChannel("msal.broadcast.event")),this.invokeCrossTabCallbacks=this.invokeCrossTabCallbacks.bind(this)}addEventCallback(e,t,r){if("u">typeof window){let o=r||nQ();return this.eventCallbacks.has(o)?(this.logger.error(`Event callback with id: ${o} is already registered. Please provide a unique id or remove the existing callback and try again.`),null):(this.eventCallbacks.set(o,[e,t||[]]),this.logger.verbose(`Event callback registered with id: ${o}`),o)}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}emitEvent(e,t,r,o){let n={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};switch(e){case ea.EventType.ACCOUNT_ADDED:case ea.EventType.ACCOUNT_REMOVED:case ea.EventType.ACTIVE_ACCOUNT_CHANGED:this.broadcastChannel?.postMessage(n);break;default:this.invokeCallbacks(n)}}invokeCallbacks(e){this.eventCallbacks.forEach(([t,r],o)=>{(0===r.length||r.includes(e.eventType))&&(this.logger.verbose(`Emitting event to callback ${o}: ${e.eventType}`),t.apply(null,[e]))})}invokeCrossTabCallbacks(e){let t=e.data;this.invokeCallbacks(t)}subscribeCrossTab(){this.broadcastChannel?.addEventListener("message",this.invokeCrossTabCallbacks)}unsubscribeCrossTab(){this.broadcastChannel?.removeEventListener("message",this.invokeCrossTabCallbacks)}}let su="home_account_id";var sd=e.i(421786);
5async function sg(e,t,r,o,n,i,s){s?.addQueueMeasurement(eJ,i);let a=i1.transformCIAMAuthority(i2(e)),c=new i1(a,t,r,o,n,i,s);try{return await iB(c.resolveEndpointsAsync.bind(c),eY,n,s,i)(),c}catch(e){throw(0,tx.createClientAuthError)(tD.endpointResolutionError)}}e.s(["createDiscoveredInstance",0,sg],626473);var sp=ts;class sm extends sp.AuthError{constructor(e,t,r,o,n){super(e,t,r),this.name="ServerError",this.errorNo=o,this.status=n,Object.setPrototypeOf(this,sm.prototype)}}class sf{static generateThrottlingStorageKey(e){return`${tH.ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(e)}`}static preProcess(e,t,r){let o=sf.generateThrottlingStorageKey(t),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o,r);throw new sm(n.errorCodes?.join(" ")||tH.Constants.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r,o){if(sf.checkResponseStatus(r)||sf.checkResponseForRetryAfter(r)){let n={throttleTime:sf.calculateThrottleTime(parseInt(r.headers[tH.HeaderNames.RETRY_AFTER])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(sf.generateThrottlingStorageKey(t),n,o)}}static checkResponseStatus(e){return 429===e.status||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return!!e.headers&&e.headers.hasOwnProperty(tH.HeaderNames.RETRY_AFTER)&&(e.status<200||e.status>=300)}static calculateThrottleTime(e){let t=Date.now()/1e3;return Math.floor(1e3*Math.min(t+((e<=0?0:e)||tH.ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS),t+tH.ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS))}static removeThrottle(e,t,r,o){let n=i3(t,r,o),i=this.generateThrottlingStorageKey(n);e.removeItem(i,r.correlationId)}}class sy{constructor(e,t){this.config=function({authOptions:e,systemOptions:t,loggerOptions:r,cacheOptions:o,storageInterface:n,networkInterface:i,cryptoInterface:s,clientCredentials:a,libraryInfo:c,telemetry:l,serverTelemetryManager:h,persistencePlugin:u,serializableCache:d}){let g={...ri,...r};return{authOptions:{clientCapabilities:[],azureCloudOptions:rh,skipAuthorityMetadataCache:!1,instanceAware:!1,encodeExtraQueryParams:!1,...e},systemOptions:{...rn,...t},loggerOptions:g,cacheOptions:{...rs,...o},storageInterface:n||new ro(e.clientId,tU,new ec.Logger(g),new tn),networkInterface:i||ra,cryptoInterface:s||tU,clientCredentials:a||rl,libraryInfo:{...rc,...c},telemetry:{...ru,...l},serverTelemetryManager:h||null,persistencePlugin:u||null,serializableCache:d||null}}(e),this.logger=new ec.Logger(this.config.loggerOptions,tF,tB),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=t}createTokenRequestHeaders(e){let t={};if(t[tH.HeaderNames.CONTENT_TYPE]=tH.Constants.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case su:try{let r=(0,sd.buildClientInfoFromHomeAccountId)(e.credential);t[tH.HeaderNames.CCS_HEADER]=`Oid:${r.uid}@${r.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case"UPN":t[tH.HeaderNames.CCS_HEADER]=`UPN: ${e.credential}`}return t}async executePostToTokenEndpoint(e,t,r,o,n,i){i&&this.performanceClient?.addQueueMeasurement(i,n);let s=await this.sendPostRequest(o,e,{body:t,headers:r},n);return this.config.serverTelemetryManager&&s.status<500&&429!==s.status&&this.config.serverTelemetryManager.clearTelemetryCache(),s}async sendPostRequest(e,t,r,o){let n;sf.preProcess(this.cacheManager,e,o);try{let e=(n=await iB(this.networkClient.sendPostRequestAsync.bind(this.networkClient),"networkClientSendPostRequestAsync",this.logger,this.performanceClient,o)(t,r)).headers||{};this.performanceClient?.addFields({refreshTokenSize:n.body.refresh_token?.length||0,httpVerToken:e[tH.HeaderNames.X_MS_HTTP_VERSION]||"",requestId:e[tH.HeaderNames.X_MS_REQUEST_ID]||""},o)}catch(e){if(e instanceof oc){let t=e.responseHeaders;throw t&&this.performanceClient?.addFields({httpVerToken:t[tH.HeaderNames.X_MS_HTTP_VERSION]||"",requestId:t[tH.HeaderNames.X_MS_REQUEST_ID]||"",contentTypeHeader:t[tH.HeaderNames.CONTENT_TYPE]||void 0,contentLengthHeader:t[tH.HeaderNames.CONTENT_LENGTH]||void 0,httpStatus:e.httpStatus},o),e.error}if(e instanceof ts.AuthError)throw e;throw(0,tx.createClientAuthError)(tD.networkError)}return sf.postProcess(this.cacheManager,e,n,o),n}async updateAuthority(e,t){this.performanceClient?.addQueueMeasurement(e$,t);let r=`https://${e}/${this.authority.tenant}/`,o=await sg(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,t,this.performanceClient);this.authority=o}createTokenQueryParameters(e){let t=new Map;return e.embeddedClientId&&nR(t,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenQueryParameters&&n_(t,e.tokenQueryParameters),na(t,e.correlationId),o6(t,e.correlationId,this.performanceClient),tX(t)}}class sC{static setRequestState(e,t,r){let o=sC.generateLibraryState(e,r);return t?`${o}${tH.Constants.RESOURCE_DELIM}${t}`:o}static generateLibraryState(e,t){if(!e)throw(0,tx.createClientAuthError)(tD.noCryptoObject);let r={id:e.createNewGuid()};t&&(r.meta=t);let o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,t){if(!e)throw(0,tx.createClientAuthError)(tD.noCryptoObject);if(!t)throw(0,tx.createClientAuthError)(tD.invalidState);try{let r=t.split(tH.Constants.RESOURCE_DELIM),o=r[0],n=r.length>1?r.slice(1).join(tH.Constants.RESOURCE_DELIM):tH.Constants.EMPTY_STRING,i=e.base64Decode(o),s=JSON.parse(i);return{userRequestState:n||tH.Constants.EMPTY_STRING,libraryState:s}}catch(e){throw(0,tx.createClientAuthError)(tD.invalidState)}}}class sv{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){this.performanceClient?.addQueueMeasurement(eV,e.correlationId);let r=await iB(this.generateKid.bind(this),eV,t,this.performanceClient,e.correlationId)(e),o=this.cryptoUtils.base64UrlEncode(JSON.stringify(r));return{kid:r.kid,reqCnfString:o}}async generateKid(e){return this.performanceClient?.addQueueMeasurement("popTokenGenerateKid",e.correlationId),{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:"sw"}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,o){let{resourceRequestMethod:n,resourceRequestUri:i,shrClaims:s,shrNonce:a,shrOptions:c}=r,l=i?new tZ(i):void 0,h=l?.getUrlComponents();return this.cryptoUtils.signJwt({at:e,ts:i$(),m:n?.toUpperCase(),u:h?.HostNameAndPort,nonce:a||this.cryptoUtils.createNewGuid(),p:h?.AbsolutePath,q:h?.QueryString?[[],h.QueryString]:void 0,client_claims:s||void 0,...o},t,c,r.correlationId)}}class sw{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}var sI=e.i(144048);class s_{constructor(e,t,r,o,n,i,s){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=o,this.serializableCache=n,this.persistencePlugin=i,this.performanceClient=s}validateTokenResponse(e,t){if(e.error||e.error_description||e.suberror){let r=`Error(s): ${e.error_codes||tH.C
5onstants.NOT_AVAILABLE} - Timestamp: ${e.timestamp||tH.Constants.NOT_AVAILABLE} - Description: ${e.error_description||tH.Constants.NOT_AVAILABLE} - Correlation ID: ${e.correlation_id||tH.Constants.NOT_AVAILABLE} - Trace ID: ${e.trace_id||tH.Constants.NOT_AVAILABLE}`,o=e.error_codes?.length?e.error_codes[0]:void 0,n=new sm(e.error,r,e.suberror,o,e.status);if(t&&e.status&&e.status>=tH.HttpStatus.SERVER_ERROR_RANGE_START&&e.status<=tH.HttpStatus.SERVER_ERROR_RANGE_END)return void this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently unavailable and the access token is unable to be refreshed. 6${n}`);if(t&&e.status&&e.status>=tH.HttpStatus.CLIENT_ERROR_RANGE_START&&e.status<=tH.HttpStatus.CLIENT_ERROR_RANGE_END)return void this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token. 7${n}`);if((0,i4.isInteractionRequiredError)(e.error,e.error_description,e.suberror))throw new i4.InteractionRequiredAuthError(e.error,e.error_description,e.suberror,e.timestamp||tH.Constants.EMPTY_STRING,e.trace_id||tH.Constants.EMPTY_STRING,e.correlation_id||tH.Constants.EMPTY_STRING,e.claims||tH.Constants.EMPTY_STRING,o);throw n}}async handleServerTokenResponse(e,t,r,o,n,i,s,a,c){let l,h,u;if(this.performanceClient?.addQueueMeasurement(eG,e.correlation_id),e.id_token){if(l=tW(e.id_token||tH.Constants.EMPTY_STRING,this.cryptoObj.base64Decode),n&&n.nonce&&l.nonce!==n.nonce)throw(0,tx.createClientAuthError)(tD.nonceMismatch);if(o.maxAge||0===o.maxAge){let e=l.auth_time;if(!e)throw(0,tx.createClientAuthError)(tD.authTimeNotFound);tG(e,o.maxAge)}}this.homeAccountIdentifier=i6.AccountEntity.generateHomeAccountId(e.client_info||tH.Constants.EMPTY_STRING,t.authorityType,this.logger,this.cryptoObj,l),n&&n.state&&(h=sC.parseRequestState(this.cryptoObj,n.state)),e.key_id=e.key_id||o.sshKid||void 0;let d=this.generateCacheRecord(e,t,r,o,l,i,n);try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),u=new sw(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(u)),s&&!a&&d.account){let e=this.cacheStorage.generateAccountKey(d.account.getAccountInfo());if(!this.cacheStorage.getAccount(e,o.correlationId))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),await s_.generateAuthenticationResult(this.cryptoObj,t,d,!1,o,l,h,void 0,c)}await this.cacheStorage.saveCacheRecord(d,o.correlationId,o.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&u&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(u))}return s_.generateAuthenticationResult(this.cryptoObj,t,d,!1,o,l,h,e,c)}generateCacheRecord(e,t,r,o,n,i,s){let a,c,l=t.getPreferredCache();if(!l)throw(0,tx.createClientAuthError)(tD.invalidCacheEnvironment);let h=(0,sI.getTenantIdFromIdTokenClaims)(n);e.id_token&&n&&(a=iV(this.homeAccountIdentifier,l,e.id_token,this.clientId,h||""),c=sT(this.cacheStorage,t,this.homeAccountIdentifier,this.cryptoObj.base64Decode,o.correlationId,n,e.client_info,l,h,s,void 0,this.logger));let u=null;if(e.access_token){let n=e.scope?tj.fromString(e.scope):new tj(o.scopes||[]),s=("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,a=("string"==typeof e.ext_expires_in?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,c=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,d=r+s;u=iG(this.homeAccountIdentifier,l,e.access_token,this.clientId,h||t.tenant||"",n.printScopes(),d,d+a,this.cryptoObj.base64Decode,c&&c>0?r+c:void 0,e.token_type,i,e.key_id,o.claims,o.requestedClaimsHash)}let d=null;if(e.refresh_token){let t;e.refresh_token_expires_in&&(t=r+("string"==typeof e.refresh_token_expires_in?parseInt(e.refresh_token_expires_in,10):e.refresh_token_expires_in)),d=iQ(this.homeAccountIdentifier,l,e.refresh_token,this.clientId,e.foci,i,t)}let g=null;return e.foci&&(g={clientId:this.clientId,environment:l,familyId:e.foci}),{account:c,idToken:a,accessToken:u,refreshToken:d,appMetadata:g}}static async generateAuthenticationResult(e,t,r,o,n,i,s,a,c){let l,h,u=tH.Constants.EMPTY_STRING,d=[],g=null,p=tH.Constants.EMPTY_STRING;if(r.accessToken){if(r.accessToken.tokenType!==tH.AuthenticationScheme.POP||n.popKid)u=r.accessToken.secret;else{let t=new sv(e),{secret:o,keyId:i}=r.accessToken;if(!i)throw(0,tx.createClientAuthError)(tD.keyIdMissing);u=await t.signPopToken(o,i,n)}d=tj.fromString(r.accessToken.target).asArray(),g=ij(r.accessToken.expiresOn),l=ij(r.accessToken.extendedExpiresOn),r.accessToken.refreshOn&&(h=ij(r.accessToken.refreshOn))}r.appMetadata&&(p=r.appMetadata.familyId===tH.THE_FAMILY_ID?tH.THE_FAMILY_ID:"");let m=i?.oid||i?.sub||"",f=i?.tid||"";a?.spa_accountid&&r.account&&(r.account.nativeAccountId=a?.spa_accountid);let y=r.account?(0,tz.updateAccountTenantProfileData)(r.account.getAccountInfo(),void 0,i,r.idToken?.secret):null;return{authority:t.canonicalAuthority,uniqueId:m,tenantId:f,scopes:d,account:y,idToken:r?.idToken?.secret||"",idTokenClaims:i||{},accessToken:u,fromCache:o,expiresOn:g,extExpiresOn:l,refreshOn:h,correlationId:n.correlationId,requestId:c||tH.Constants.EMPTY_STRING,familyId:p,tokenType:r.accessToken?.tokenType||tH.Constants.EMPTY_STRING,state:s?s.userRequestState:tH.Constants.EMPTY_STRING,cloudGraphHostName:r.account?.cloudGraphHostName||tH.Constants.EMPTY_STRING,msGraphHost:r.account?.msGraphHost||tH.Constants.EMPTY_STRING,code:a?.spa_code,fromNativeBroker:!1}}}function sT(e,t,r,o,n,i,s,a,c,l,h,u){u?.verbose("setCachedAccount called");let d=e.getAccountKeys().find(e=>e.startsWith(r)),g=null;d&&(g=e.getAccount(d,n));let p=g||i6.AccountEntity.createAccount({homeAccountId:r,idTokenClaims:i,clientInfo:s,environment:a,cloudGraphHostName:l?.cloud_graph_host_name,msGraphHost:l?.msgraph_host,nativeAccountId:h},t,o),m=p.tenantProfiles||[],f=c||p.realm;if(f&&!m.find(e=>e.tenantId===f)){let e=(0,tz.buildTenantProfile)(r,p.localAccountId,f,i
7);m.push(e)}return p.tenantProfiles=m,p}async function sA(e,t,r){return"string"==typeof e?e:e({clientId:t,tokenEndpoint:r})}class sS extends sy{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async acquireToken(e,t){if(this.performanceClient?.addQueueMeasurement(ej,e.correlationId),!e.code)throw(0,tx.createClientAuthError)(tD.requestCannotBeMade);let r=i$(),o=await iB(this.executeTokenRequest.bind(this),ez,this.logger,this.performanceClient,e.correlationId)(this.authority,e),n=o.headers?.[tH.HeaderNames.X_MS_REQUEST_ID],i=new s_(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return i.validateTokenResponse(o.body),iB(i.handleServerTokenResponse.bind(i),eG,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,t,void 0,void 0,void 0,n)}getLogoutUri(e){if(!e)throw tM(tm);let t=this.createLogoutUrlQueryString(e);return tZ.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){let r;this.performanceClient?.addQueueMeasurement(ez,t.correlationId);let o=this.createTokenQueryParameters(t),n=tZ.appendQueryString(e.tokenEndpoint,o),i=await iB(this.createTokenRequestBody.bind(this),eW,this.logger,this.performanceClient,t.correlationId)(t);if(t.clientInfo)try{let e=(0,sd.buildClientInfo)(t.clientInfo,this.cryptoUtils.base64Decode);r={credential:`${e.uid}${tH.Separators.CLIENT_INFO_SEPARATOR}${e.utid}`,type:su}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}let s=this.createTokenRequestHeaders(r||t.ccsCredential),a=i3(this.config.authOptions.clientId,t);return iB(this.executePostToTokenEndpoint.bind(this),eC,this.logger,this.performanceClient,t.correlationId)(n,i,s,a,t.correlationId,eC)}async createTokenRequestBody(e){let t;this.performanceClient?.addQueueMeasurement(eW,e.correlationId);let r=new Map;if(o7(r,e.embeddedClientId||e.tokenBodyParameters?.[og]||this.config.authOptions.clientId),this.includeRedirectUri)o9(r,e.redirectUri);else if(!e.redirectUri)throw tM(ta);if(o8(r,e.scopes,!0,this.oidcDefaultScopes),ng(r,e.code),nc(r,this.config.libraryInfo),nl(r,this.config.telemetry.application),nk(r),this.serverTelemetryManager&&!rd(this.config)&&nE(r,this.serverTelemetryManager),e.codeVerifier&&nm(r,e.codeVerifier),this.config.clientCredentials.clientSecret&&nf(r,this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){let t=this.config.clientCredentials.clientAssertion;ny(r,await sA(t.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),nC(r,t.assertionType)}if(nv(r,tH.GrantType.AUTHORIZATION_CODE_GRANT),nw(r),e.authenticationScheme===tH.AuthenticationScheme.POP){let t=new sv(this.cryptoUtils,this.performanceClient);nA(r,e.popKid?this.cryptoUtils.encodeKid(e.popKid):(await iB(t.generateCnf.bind(t),eV,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString)}else if(e.authenticationScheme===tH.AuthenticationScheme.SSH)if(e.sshJwk)nS(r,e.sshJwk);else throw tM(tI);if((!t$.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&ns(r,e.claims,this.config.authOptions.clientCapabilities),e.clientInfo)try{let r=(0,sd.buildClientInfo)(e.clientInfo,this.cryptoUtils.base64Decode);t={credential:`${r.uid}${tH.Separators.CLIENT_INFO_SEPARATOR}${r.utid}`,type:su}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}else t=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&t)switch(t.type){case su:try{let e=(0,sd.buildClientInfoFromHomeAccountId)(t.credential);nn(r,e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case"UPN":no(r,t.credential)}return e.embeddedClientId&&nR(r,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenBodyParameters&&n_(r,e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[oG]||n_(r,{[oG]:"1"}),o6(r,e.correlationId,this.performanceClient),tX(r)}createLogoutUrlQueryString(e){let t=new Map;return e.postLogoutRedirectUri&&o5(t,e.postLogoutRedirectUri),e.correlationId&&na(t,e.correlationId),e.idTokenHint&&ne(t,e.idTokenHint),e.state&&nu(t,e.state),e.logoutHint&&nb(t,e.logoutHint),e.extraQueryParameters&&n_(t,e.extraQueryParameters),this.config.authOptions.instanceAware&&nI(t),tX(t,this.config.authOptions.encodeExtraQueryParams,e.extraQueryParameters)}}class sE{constructor(e,t){this.cacheOutcome=tH.CacheOutcome.NOT_APPLICABLE,this.cacheManager=t,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||tH.Constants.EMPTY_STRING,this.wrapperVer=e.wrapperVer||tH.Constants.EMPTY_STRING,this.telemetryCacheKey=tH.SERVER_TELEM_CONSTANTS.CACHE_KEY+tH.Separators.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){let e=`${this.apiId}${tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer],r=this.getNativeBrokerErrorCode();r?.length&&t.push(`broker_error=${r}`);let o=t.join(tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR),n=[e,this.getRegionDiscoveryFields()].join(tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);return[tH.SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,n,o].join(tH.SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){let e=this.getLastRequests(),t=sE.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR),n=e.errors.length,i=t<n?tH.SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE:tH.SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE,s=[n,i].join(tH.SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);return[tH.SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,e.cacheHits,r,o,s].join(tH.SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR)}cacheFailedRequest(e){let t=this.getLastRequests();t.errors.length>=tH.SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS&&(t.failedRequests.shift(),t.failedRequests.shift(),t.errors.shift()),t.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof ts.AuthError?e.subError?t.errors.push(e.subError):e.errorCode?t.errors.push(e.errorCode):t.errors.push(e.toString()):t.errors.push(e.toString()):t.errors.push(tH.SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t,this.correlationId)}incrementCacheHits(){let e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e,this.correlationId),e.cacheHits}getLastRequests(){return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||{failedRequests:[],errors:[],cacheHits:0}}clearTelemetryCache(){let e=this.getLastRequests(),t=sE.maxErrorsToSend(e);if(t===e.errors.length)this.cacheManager.removeItem(this.telemetryCacheKey,this.correlationId);else{let r={failedRequests:e.failedRequests.slice(2*t),errors:e.errors.slice(t),cacheHits:0};this.cacheManager.setServerTelemetry(this.telemetryCacheKey,r,this.correlationId)}}static maxErrorsToSend(e){let t,r=0,o=0,n=e.errors.length;for(t=0;t<n;t++){let n=e.failedRequests[2*t]||tH.Constants.EMPTY_STRING,i=e.failedRequests[2*t+1]||tH.C
7onstants.EMPTY_STRING,s=e.errors[t]||tH.Constants.EMPTY_STRING;if((o+=n.toString().length+i.toString().length+s.length+3)<tH.SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES)r+=1;else break}return r}getRegionDiscoveryFields(){let e=[];return e.push(this.regionUsed||tH.Constants.EMPTY_STRING),e.push(this.regionSource||tH.Constants.EMPTY_STRING),e.push(this.regionOutcome||tH.Constants.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}setNativeBrokerErrorCode(e){let t=this.getLastRequests();t.nativeBrokerErrorCode=e,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t,this.correlationId)}getNativeBrokerErrorCode(){return this.getLastRequests().nativeBrokerErrorCode}clearNativeBrokerErrorCode(){let e=this.getLastRequests();delete e.nativeBrokerErrorCode,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e,this.correlationId)}static makeExtraSkuString(e){return function(e){let{skus:t,libraryName:r,libraryVersion:o,extensionName:n,extensionVersion:i}=e,s=new Map([[0,[r,o]],[2,[n,i]]]),a=[];if(t?.length){if((a=t.split(",")).length<4)return t}else a=Array.from({length:4},()=>"|");return s.forEach((e,t)=>{2===e.length&&e[0]?.length&&e[1]?.length&&function(e){let{skuArr:t,index:r,skuName:o,skuVersion:n}=e;r>=t.length||(t[r]=[o,n].join("|"))}({skuArr:a,index:t,skuName:e[0],skuVersion:e[1]})}),a.join(",")}(e)}}var sk=e.i(626473),sk=sk,tL=tP;class sb{constructor(e,t,r,o,n,i,s,a,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=n,this.navigationClient=i,this.platformAuthProvider=a,this.correlationId=c||nQ(),this.logger=o.clone(rg.BrowserConstants.MSAL_SKU,ih,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e,t){if(t)try{this.browserStorage.removeAccount(t,e),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch(e){this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),this.browserStorage.clear(e),await this.browserCrypto.clearKeystore()}catch(e){this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}getRedirectUri(e){this.logger.verbose("getRedirectUri called");let t=e||this.config.auth.redirectUri;return tZ.getAbsoluteUrl(t,io())}initializeServerTelemetryManager(e,t){return this.logger.verbose("initializeServerTelemetryManager called"),new sE({clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]},this.browserStorage)}async getDiscoveredAuthority(e){let{account:t}=e,r=e.requestExtraQueryParameters&&e.requestExtraQueryParameters.hasOwnProperty("instance_aware")?e.requestExtraQueryParameters.instance_aware:void 0;this.performanceClient.addQueueMeasurement(em,this.correlationId);let o={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},n=e.requestAuthority||this.config.auth.authority,i=r?.length?"true"===r:this.config.auth.instanceAware,s=t&&i?this.config.auth.authority.replace(tZ.getDomainFromUrl(n),t.environment):n,a=i1.generateAuthority(s,e.requestAzureCloudOptions||this.config.auth.azureCloudOptions),c=await iB(sk.createDiscoveredInstance,eJ,this.logger,this.performanceClient,this.correlationId)(a,this.config.system.networkClient,this.browserStorage,o,this.logger,this.correlationId,this.performanceClient);if(t&&!c.isAlias(t.environment))throw tM(tL.authorityMismatch);return c}}var tL=tP;async function sR(e,t,r,o){r.addQueueMeasurement(eb,e.correlationId);let n=e.authority||t.auth.authority,i=[...e&&e.scopes||[]],s={...e,correlationId:e.correlationId,authority:n,scopes:i};if(s.authenticationScheme){if(s.authenticationScheme===tH.AuthenticationScheme.SSH){if(!e.sshJwk)throw tM(tL.missingSshJwk);if(!e.sshKid)throw tM(tL.missingSshKid)}o.verbose(`Authentication Scheme set to "${s.authenticationScheme}" as configured in Auth request`)}else s.authenticationScheme=tH.AuthenticationScheme.BEARER,o.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return t.cache.claimsBasedCachingEnabled&&e.claims&&!t$.isEmptyObj(e.claims)&&(s.requestedClaimsHash=await n9(e.claims)),s}async function sP(e,t,r,o,n){o.addQueueMeasurement(eR,e.correlationId);let i=await iB(sR,eb,n,o,e.correlationId)(e,r,o,n);return{...e,...i,account:t,forceRefresh:e.forceRefresh||!1}}function sO(e,t){let r,o=e.httpMethod;if(t===ti.ProtocolMode.EAR){if((r=o||tH.HttpMethod.POST)!==tH.HttpMethod.POST)throw tM(tL.invalidRequestMethodForEAR)}else r=o||tH.HttpMethod.GET;if(e.authorizePostBodyParameters&&r!==tH.HttpMethod.POST)throw tM(tL.invalidAuthorizePostBodyParameters);return r}
7class sN extends sb{initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);let t={correlationId:this.correlationId||nQ(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){let r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return e&&null===e.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId):e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=tZ.getAbsoluteUrl(e.postLogoutRedirectUri,io())):null===this.config.auth.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=tZ.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,io())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=tZ.getAbsoluteUrl(io(),io())),t}getLogoutHintFromIdTokenClaims(e){let t=e.idTokenClaims;if(t)if(t.login_hint)return t.login_hint;else this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request");else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e){return this.performanceClient.addQueueMeasurement(eL,this.correlationId),new sS(await iB(this.getClientConfiguration.bind(this),ex,this.logger,this.performanceClient,this.correlationId)(e),this.performanceClient)}async getClientConfiguration(e){let{serverTelemetryManager:t,requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:n,account:i}=e;this.performanceClient.addQueueMeasurement(ex,this.correlationId);let s=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,this.correlationId)({requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:n,account:i}),a=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:s,clientCapabilities:this.config.auth.clientCapabilities,redirectUri:this.config.auth.redirectUri},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:a.loggerCallback,piiLoggingEnabled:a.piiLoggingEnabled,logLevel:a.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:t,libraryInfo:{sku:rg.BrowserConstants.MSAL_SKU,version:ih,cpu:tH.Constants.EMPTY_STRING,os:tH.Constants.EMPTY_STRING},telemetry:this.config.telemetry}}async initializeAuthorizationRequest(e,t){this.performanceClient.addQueueMeasurement(eD,this.correlationId);let r=this.getRedirectUri(e.redirectUri),o=sC.setRequestState(this.browserCrypto,e&&e.state||tH.Constants.EMPTY_STRING,{interactionType:t}),n={...await iB(sR,eb,this.logger,this.performanceClient,this.correlationId)({...e,correlationId:this.correlationId},this.config,this.performanceClient,this.logger),redirectUri:r,state:o,nonce:e.nonce||nQ(),responseMode:this.config.auth.OIDCOptions.serverResponseType},i={...n,httpMethod:sO(n,this.config.auth.protocolMode)};if(e.loginHint||e.sid)return i;let s=e.account||this.browserStorage.getActiveAccount(this.correlationId);return s&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${s.homeAccountId}`,this.correlationId),i.account=s),i}}var sM=e.i(957342),sM=sM,iE=tD;function sL(e,t,r){let o=sM.getDeserializedResponse(e);if(!o)if(sM.stripLeadingHashOrQuery(e))throw r.error(`A ${t} is present in the iframe but it does not contain known properties. It's likely that the ${t} has been replaced by code running on the redirectUri page.`),r.errorPii(`The ${t} detected is: ${e}`),oi(r_);else throw r.error(`The request has returned to the redirectUri but a ${t} is not present. It's likely that the ${t} has been removed or the page has been redirected by code running on the redirectUri page.`),oi(rw);return o}var tL=tP,nP=nP;function sx(e,t){let r,o;if(!e.state||!t)throw e.state?(0,tx.createClientAuthError)(tD.stateNotFound,"Cached State"):(0,tx.createClientAuthError)(tD.stateNotFound,"Server State");try{r=decodeURIComponent(e.state)}catch(t){throw(0,tx.createClientAuthError)(tD.invalidState,e.state)}try{o=decodeURIComponent(t)}catch(t){throw(0,tx.createClientAuthError)(tD.invalidState,e.state)}if(r!==o)throw(0,tx.createClientAuthError)(tD.stateMismatch);if(e.error||e.error_description||e.suberror){var n;let t,r,o=(n=e,t="code=",(r=n.error_uri?.lastIndexOf(t))&&r>=0?n.error_uri?.substring(r+t.length):void 0);if((0,i4.isInteractionRequiredError)(e.error,e.error_description,e.suberror))throw new i4.InteractionRequiredAuthError(e.error||"",e.error_description,e.suberror,e.timestamp||"",e.trace_id||"",e.correlation_id||"",e.claims||"",o);throw new sm(e.error||"",e.error_description,e.suberror,o)}}e.s(["getAuthorizationCodePayload",0,function(e,t){if(sx(e,t),!e.code)throw(0,tx.createClientAuthError)(tD.authorizationCodeMissingFromServerResponse);return e},"getAuthorizeUrl",0,function(e,t,r,o){let n=tX(t,r,o);return tZ.appendQueryString(e.authorizationEndpoint,n)},"getStandardAuthorizeRequestParameters",0,function(e,t,r,o){let n=t.correlationId,i=new Map;if(o7(i,t.embeddedClientId||t.extraQueryParameters?.[og]||e.clientId),o8(i,[...t.scopes||[],...t.extraScopesToConsent||[]],!0,e.authority.options.OIDCOptions?.defaultScopes),o9(i,t.redirectUri),na(i,n),o3(i,t.responseMode),nw(i),t.prompt&&(nh(i,t.prompt),o?.addFields({prompt:t.prompt},n)),t.domainHint&&(nt(i,t.domainHint),o?.addFields({domainHintFromRequest:!0},n)),t.prompt!==tH.PromptValue.SELECT_ACCOUNT)if(t.sid&&t.prompt===tH.PromptValue.NONE)r.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),ni(i,t.sid),o?.addFields({sidFromRequest:!0},n);else if(t.account){var s,a;
7let e=(s=t.account,s.idTokenClaims?.sid||null),c=(a=t.account).loginHint||a.idTokenClaims?.login_hint||null;if(c&&t.domainHint&&(r.warning('AuthorizationCodeClient.createAuthCodeUrlQueryString: "domainHint" param is set, skipping opaque "login_hint" claim. Please consider not passing domainHint'),c=null),c){r.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),nr(i,c),o?.addFields({loginHintFromClaim:!0},n);try{let e=(0,sd.buildClientInfoFromHomeAccountId)(t.account.homeAccountId);nn(i,e)}catch(e){r.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e&&t.prompt===tH.PromptValue.NONE){r.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),ni(i,e),o?.addFields({sidFromClaim:!0},n);try{let e=(0,sd.buildClientInfoFromHomeAccountId)(t.account.homeAccountId);nn(i,e)}catch(e){r.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(t.loginHint)r.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),nr(i,t.loginHint),no(i,t.loginHint),o?.addFields({loginHintFromRequest:!0},n);else if(t.account.username){r.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),nr(i,t.account.username),o?.addFields({loginHintFromUpn:!0},n);try{let e=(0,sd.buildClientInfoFromHomeAccountId)(t.account.homeAccountId);nn(i,e)}catch(e){r.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else t.loginHint&&(r.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),nr(i,t.loginHint),no(i,t.loginHint),o?.addFields({loginHintFromRequest:!0},n));else r.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");return t.nonce&&nd(i,t.nonce),t.state&&nu(i,t.state),(t.claims||e.clientCapabilities&&e.clientCapabilities.length>0)&&ns(i,t.claims,e.clientCapabilities),t.embeddedClientId&&nR(i,e.clientId,e.redirectUri),!e.instanceAware||t.extraQueryParameters&&Object.keys(t.extraQueryParameters).includes(o1)||nI(i),i},"validateAuthorizationResponse",0,sx],254922);var sD=e.i(254922),sD=sD,i9=i9,sD=sD;class sq{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponse(e,t){let r;this.performanceClient.addQueueMeasurement(eH,t.correlationId);try{r=sD.getAuthorizationCodePayload(e,t.state)}catch(e){if(e instanceof sm&&e.subError===rb)throw oi(rb);throw e}return iB(this.handleCodeResponseFromServer.bind(this),eU,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(eU,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await iB(this.authModule.updateAuthority.bind(this.authModule),e$,this.logger,this.performanceClient,t.correlationId)(e.cloud_instance_host_name,t.correlationId),r&&(e.nonce=t.nonce||void 0),e.state=t.state,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{let e=this.createCcsCredentials(t);e&&(this.authCodeRequest.ccsCredential=e)}return await iB(this.authModule.acquireToken.bind(this.authModule),ej,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:su}:e.loginHint?{credential:e.loginHint,type:"UPN"}:null}}var sU=e.i(983053),sU=sU,i9=i9,iE=tD,sH=e.i(827050),sH=sH,i7=i7,sF=ts,i8=i8;let sB="user_switch",sK={[sB]:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."};class s$ extends sF.AuthError{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,s$.prototype),this.name="NativeAuthError",this.ext=r}}function sj(e){return!!e.ext&&!!e.ext.status&&"DISABLED"===e.ext.status||!!e.ext&&!!e.ext.error&&-0x7ffb78ff===e.ext.error||"ContentError"===e.errorCode}function sz(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return(0,i4.createInteractionRequiredAuthError)(i8.nativeAccountUnavailable);case"USER_INTERACTION_REQUIRED":return new i4.InteractionRequiredAuthError(e,t);case"USER_CANCEL":return oi(rb);case"NO_NETWORK":return oi(rj);case"UX_NOT_ALLOWED":return(0,i4.createInteractionRequiredAuthError)(i8.uxNotAllowed)}return new s$(e,sK[e]||t,r)}class sW extends sy{constructor(e,t){super(e,t)}async acquireCachedToken(e){this.performanceClient?.addQueueMeasurement(eS,e.correlationId);let t=tH.CacheOutcome.NOT_APPLICABLE;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!t$.isEmptyObj(e.claims))throw this.setCacheOutcome(tH.C
7acheOutcome.FORCE_REFRESH_OR_CLAIMS,e.correlationId),(0,tx.createClientAuthError)(tD.tokenRefreshRequired);if(!e.account)throw(0,tx.createClientAuthError)(tD.noAccountInSilentRequest);let r=e.account.tenantId||function(e){let t=new tZ(e).getUrlComponents(),r=t.PathSegments.slice(-1)[0]?.toLowerCase();switch(r){case tH.AADAuthorityConstants.COMMON:case tH.AADAuthorityConstants.ORGANIZATIONS:case tH.AADAuthorityConstants.CONSUMERS:return;default:return r}}(e.authority),o=this.cacheManager.getTokenKeys(),n=this.cacheManager.getAccessToken(e.account,e,o,r);if(n)if(iW(n.cachedAt)||iz(n.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(tH.CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED,e.correlationId),(0,tx.createClientAuthError)(tD.tokenRefreshRequired);else n.refreshOn&&iz(n.refreshOn,0)&&(t=tH.CacheOutcome.PROACTIVELY_REFRESHED);else throw this.setCacheOutcome(tH.CacheOutcome.NO_CACHED_ACCESS_TOKEN,e.correlationId),(0,tx.createClientAuthError)(tD.tokenRefreshRequired);let i=e.authority||this.authority.getPreferredCache(),s={account:this.cacheManager.getAccount(this.cacheManager.generateAccountKey(e.account),e.correlationId),accessToken:n,idToken:this.cacheManager.getIdToken(e.account,e.correlationId,o,r,this.performanceClient),refreshToken:null,appMetadata:this.cacheManager.readAppMetadataFromCache(i)};return this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await iB(this.generateResultFromCacheRecord.bind(this),eE,this.logger,this.performanceClient,e.correlationId)(s,e),t]}setCacheOutcome(e,t){this.serverTelemetryManager?.setCacheOutcome(e),this.performanceClient?.addFields({cacheOutcome:e},t),e!==tH.CacheOutcome.NOT_APPLICABLE&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){let r;if(this.performanceClient?.addQueueMeasurement(eE,t.correlationId),e.idToken&&(r=tW(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||0===t.maxAge){let e=r?.auth_time;if(!e)throw(0,tx.createClientAuthError)(tD.authTimeNotFound);tG(e,t.maxAge)}return s_.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}class sV extends sN{async acquireToken(e){this.performanceClient.addQueueMeasurement(ed,e.correlationId);let t=this.initializeServerTelemetryManager(rg.ApiId.acquireTokenSilent_silentFlow),r=new sW(await iB(this.getClientConfiguration.bind(this),ex,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:t,requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,account:e.account}),this.performanceClient);this.logger.verbose("Silent auth client created");try{let t=(await iB(r.acquireCachedToken.bind(r),eS,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof on&&e.errorCode===rQ&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),e}}logout(e){this.logger.verbose("logoutRedirect called");let t=this.initializeLogoutRequest(e);return this.clearCacheOnLogout(t.correlationId,t?.account)}}class sG extends sb{constructor(e,t,r,o,n,i,s,a,c,l,h,u){super(e,t,r,o,n,i,a,c,u),this.apiId=s,this.accountId=l,this.platformAuthProvider=c,this.nativeStorageManager=h,this.silentCacheClient=new sV(e,this.nativeStorageManager,r,o,n,i,a,c,u);const d=this.platformAuthProvider.getExtensionName();this.skus=sE.makeExtraSkuString({libraryName:rg.BrowserConstants.MSAL_SKU,libraryVersion:ih,extensionName:d,extensionVersion:this.platformAuthProvider.getExtensionVersion()})}addRequestSKUs(e){e.extraParameters={...e.extraParameters,[sU.X_CLIENT_EXTRA_SKU]:this.skus}}async acquireToken(e,t){this.performanceClient.addQueueMeasurement(ef,this.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");let r=this.performanceClient.startMeasurement(ef,this.correlationId),o=i9.nowSeconds(),n=this.initializeServerTelemetryManager(this.apiId);try{let i=await this.initializeNativeRequest(e);
7try{let e=await this.acquireTokensFromCache(this.accountId,i);return r.end({success:!0,isNativeBroker:!1,fromCache:!0}),e}catch(e){if(t===rg.CacheLookupPolicy.AccessToken)throw this.logger.info("MSAL internal Cache does not contain tokens, return error as per cache policy"),r.end({success:!1,brokerErrorCode:"cache_request_failed"}),e;this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}let s=await this.platformAuthProvider.sendMessage(i);return await this.handleNativeResponse(s,i,o).then(e=>(r.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),n.clearNativeBrokerErrorCode(),e)).catch(e=>{throw r.end({success:!1,errorCode:e.errorCode,subErrorCode:e.subError}),e})}catch(e){throw e instanceof s$&&n.setNativeBrokerErrorCode(e.errorCode),r.end({success:!1}),e}}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:tj.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),(0,tx.createClientAuthError)(iE.noAccountFound);let r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e},this.correlationId);if(!r)throw(0,tx.createClientAuthError)(iE.noAccountFound);try{let e=this.createSilentCacheRequest(t,r),o=await this.silentCacheClient.acquireToken(e),n={...r,idTokenClaims:o?.idTokenClaims,idToken:o?.idToken};return{...o,account:n}}catch(e){throw e}}async acquireTokenRedirect(e,t){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");let{...r}=e;delete r.onRedirectNavigate;let o=await this.initializeNativeRequest(r);try{await this.platformAuthProvider.sendMessage(o)}catch(e){if(e instanceof s$&&(this.initializeServerTelemetryManager(this.apiId).setNativeBrokerErrorCode(e.errorCode),sj(e)))throw e}this.browserStorage.setTemporaryCache(rg.TemporaryCacheKeys.NATIVE_REQUEST,JSON.stringify(o),!0);let n={apiId:rg.ApiId.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},i=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);t.end({success:!0}),await this.navigationClient.navigateExternal(i,n)}async handleRedirectPromise(e,t){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;let r=this.browserStorage.getCachedNativeRequest();if(!r)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),e&&t&&e?.addFields({errorCode:"no_cached_request"},t),null;let{prompt:o,...n}=r;o&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(rg.TemporaryCacheKeys.NATIVE_REQUEST));let i=i9.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");let t=await this.platformAuthProvider.sendMessage(n),r=await this.handleNativeResponse(t,n,i);return this.initializeServerTelemetryManager(this.apiId).clearNativeBrokerErrorCode(),e&&this.correlationId&&this.performanceClient.addFields({isNativeBroker:!0},this.correlationId),r}catch(e){throw e}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){this.logger.trace("NativeInteractionClient - handleNativeResponse called.");let o=sH.extractTokenClaims(e.id_token,nx),n=this.createHomeAccountIdentifier(e,o),i=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:t.accountId},this.correlationId)?.homeAccountId;if(t.extraParameters?.child_client_id&&e.account.id!==t.accountId)this.logger.info("handleNativeServerResponse: Double broker flow detected, ignoring accountId mismatch");else if(n!==i&&e.account.id!==t.accountId)throw sz(sB);let s=await this.getDiscoveredAuthority({requestAuthority:t.authority}),a=sT(this.browserStorage,s,n,nx,this.correlationId,o,e.client_info,void 0,o.tid,void 0,e.account.id,this.logger);e.expires_in=Number(e.expires_in);let c=await this.generateAuthenticationResult(e,t,o,a,s.canonicalAuthority,r);return await this.cacheAccount(a,this.correlationId),await this.cacheNativeTokens(e,t,n,o,e.access_token,c.tenantId,r),c}createHomeAccountIdentifier(e,t){return i6.AccountEntity.generateHomeAccountId(e.client_info||tH.Constants.EMPTY_STRING,iH.AuthorityType.Default,this.logger,this.browserCrypto,t)}generateScopes(e,t){return t?tj.fromString(t):tj.fromString(e)}async generatePopAccessToken(e,t){if(t.tokenType!==tH.AuthenticationScheme.POP||!t.signPopToken)return e.access_token;{if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;let r=new sv(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw(0,tx.createClientAuthError)(iE.keyIdMissing);return r.signPopToken(e.access_token,t.keyId,o)}}async generateAuthenticationResult(e,t,r,o,n,i){let s=this.addTelemetryFromNativeResponse(e.properties.MATS),a=this.generateScopes(t.scope,e.scope),c=e.account.properties||{},l=c.UID||r.oid||r.sub||tH.Constants.EMPTY_STRING,h=c.TenantId||r.tid||tH.C
7onstants.EMPTY_STRING,u=(0,tz.updateAccountTenantProfileData)(o.getAccountInfo(),void 0,r,e.id_token);u.nativeAccountId!==e.account.id&&(u.nativeAccountId=e.account.id);let d=await this.generatePopAccessToken(e,t),g=t.tokenType===tH.AuthenticationScheme.POP?tH.AuthenticationScheme.POP:tH.AuthenticationScheme.BEARER;return{authority:n,uniqueId:l,tenantId:h,scopes:a.asArray(),account:u,idToken:e.id_token,idTokenClaims:r,accessToken:d,fromCache:!!s&&this.isResponseFromCache(s),expiresOn:i9.toDateFromSeconds(i+e.expires_in),tokenType:g,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}async cacheAccount(e,t){await this.browserStorage.setAccount(e,this.correlationId),this.browserStorage.removeAccountContext(e.getAccountInfo(),t)}cacheNativeTokens(e,t,r,o,n,i,s){let a=i7.createIdTokenEntity(r,t.authority,e.id_token||"",t.clientId,o.tid||""),c=t.tokenType===tH.AuthenticationScheme.POP?tH.Constants.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,l=this.generateScopes(e.scope,t.scope),h=i7.createAccessTokenEntity(r,t.authority,n,t.clientId,o.tid||i,l.printScopes(),s+c,0,nx,void 0,t.tokenType,void 0,t.keyId);return this.nativeStorageManager.saveCacheRecord({idToken:a,accessToken:h},this.correlationId,t.storeInCache)}getExpiresInValue(e,t){return e===tH.AuthenticationScheme.POP?tH.Constants.SHR_NONCE_VALIDITY:("string"==typeof t?parseInt(t,10):t)||0}addTelemetryFromNativeResponse(e){let t=this.getMATSFromResponse(e);return t?(this.performanceClient.addFields({extensionId:this.platformAuthProvider.getExtensionId(),extensionVersion:this.platformAuthProvider.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}getMATSFromResponse(e){if(e)try{return JSON.parse(e)}catch(e){this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return void 0===e.is_cached?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");let t=await this.getCanonicalAuthority(e),{scopes:r,...o}=e,n=new tj(r||[]);n.appendScopes(tH.OIDC_DEFAULT_SCOPES);let i={...o,accountId:this.accountId,clientId:this.config.auth.clientId,authority:t.urlString,scope:n.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:this.getPrompt(e.prompt),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1,keyId:e.popKid};if(i.signPopToken&&e.popKid)throw oi(r7);if(this.handleExtraBrokerParams(i),i.extraParameters=i.extraParameters||{},i.extraParameters.telemetry=rg.PlatformAuthConstants.MATS_TELEMETRY,e.authenticationScheme===tH.AuthenticationScheme.POP){let t,r={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},o=new sv(this.browserCrypto);if(i.keyId)t=this.browserCrypto.base64UrlEncode(JSON.stringify({kid:i.keyId})),i.signPopToken=!1;else{let e=await iB(o.generateCnf.bind(o),eV,this.logger,this.performanceClient,this.correlationId)(r,this.logger);t=e.reqCnfString,i.keyId=e.kid,i.signPopToken=!0}i.reqCnf=t}return this.addRequestSKUs(i),i}async getCanonicalAuthority(e){let t=e.authority||this.config.auth.authority;e.account&&await this.getDiscoveredAuthority({requestAuthority:t,requestAzureCloudOptions:e.azureCloudOptions,account:e.account});let r=new tZ(t);return r.validateAsUri(),r}getPrompt(e){switch(this.apiId){case rg.ApiId.ssoSilent:case rg.ApiId.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),tH.PromptValue.NONE}if(!e)return void this.logger.trace("initializeNativeRequest: prompt was not provided");switch(e){case tH.PromptValue.NONE:case tH.PromptValue.CONSENT:case tH.PromptValue.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e} is not compatible with native flow`),oi(r3)}}handleExtraBrokerParams(e){let t=e.extraParameters&&e.extraParameters.hasOwnProperty(sU.BROKER_CLIENT_ID)&&e.extraParameters.hasOwnProperty(sU.BROKER_REDIRECT_URI)&&e.extraParameters.hasOwnProperty(sU.CLIENT_ID);if(!e.embeddedClientId&&!t)return;let r="",o=e.redirectUri;e.embeddedClientId?(e.redirectUri=this.config.auth.redirectUri,r=e.embeddedClientId):e.extraParameters&&(e.redirectUri=e.extraParameters[sU.BROKER_REDIRECT_URI],r=e.extraParameters[sU.CLIENT_ID]),e.extraParameters={child_client_id:r,child_redirect_uri:o},this.performanceClient?.addFields({embeddedClientId:r,embeddedRedirectUri:o},this.correlationId)}}async function sQ(e,t,r,o,n){let i=sD.getStandardAuthorizeRequestParameters({...e.auth,authority:t},r,o,n);if(nP.addLibraryInfo(i,{sku:rg.BrowserConstants.MSAL_SKU,version:ih,os:"",cpu:""}),e.auth.protocolMode!==ti.ProtocolMode.OIDC&&nP.addApplicationTelemetry(i,e.telemetry.application),r.platformBroker&&(nP.addNativeBroker(i),n.addFields({isPlatformAuthorizeRequest:!0},r.correlationId),r.authenticationScheme===tH.AuthenticationScheme.POP)){let e,t=new iq(o,n),s=new sv(t);e=r.popKid?t.encodeKid(r.popKid):(await iB(s.generateCnf.bind(s),eV,o,n,r.correlationId)(r,o)).reqCnfString,nP.addPopToken(i,e)}return nP.instrumentBrokerParams(i,r.correlationId,n),i}async function sJ(e,t,r,o,n){if(!r.codeChallenge)throw tM(tL.pkceParamsMissing);let i=await iB(sQ,"getStandardParams",o,n,r.correlationId)(e,t,r,o,n);return nP.addResponseType(i,tH.OAuthResponseType.CODE),nP.addCodeChallengeParams(i,r.codeChallenge,tH.Constants.S256_CODE_CHALLENGE_METHOD),nP.addExtraQueryParameters(i,r.extraQueryParameters||{}),sD.getAuthorizeUrl(t,i,e.auth.encodeExtraQueryParams,r.extraQueryParameters)}async function sY(e,t,r,o,n,i){if(!o.earJwk)throw oi(rf);let s=await sQ(t,r,o,n,i);nP.addResponseType(s,tH.OAuthResponseType.IDTOKEN_TOKEN_REFRESHTOKEN),nP.addEARParameters(s,o.earJwk);let a=new Map;return nP.addExtraQueryParameters(a,o.extraQueryParameters||{}),sZ(e,sD.getAuthorizeUrl(r,a,t.auth.encodeExtraQueryParams,o.extraQueryParameters),s)}async function sX(e,t,r,o,n,i){let s=await sQ(t,r,o,n,i);nP.addResponseType(s,tH.OAuthResponseType.CODE),nP.addCodeChallengeParams(s,o.codeChallenge,o.codeChallengeMethod||tH.C
7onstants.S256_CODE_CHALLENGE_METHOD),nP.addPostBodyParameters(s,o.authorizePostBodyParameters||{});let a=new Map;return nP.addExtraQueryParameters(a,o.extraQueryParameters||{}),sZ(e,sD.getAuthorizeUrl(r,a,t.auth.encodeExtraQueryParams,o.extraQueryParameters),s)}function sZ(e,t,r){let o=e.createElement("form");return o.method="post",o.action=t,r.forEach((t,r)=>{let n=e.createElement("input");n.hidden=!0,n.name=r,n.value=t,o.appendChild(n)}),e.body.appendChild(o),o}async function s0(e,t,r,o,n,i,s,a,c,l){if(a.verbose("Account id found, calling WAM for token"),!l)throw oi(r4);let h=new iq(a,c),u=new sG(o,n,h,a,s,o.system.navigationClient,r,c,l,t,i,e.correlationId),{userRequestState:d}=sC.parseRequestState(h,e.state);return iB(u.acquireToken.bind(u),ef,a,c,e.correlationId)({...e,state:d,prompt:void 0})}async function s1(e,t,r,o,n,i,s,a,c,l,h,u){if(sf.removeThrottle(s,n.auth.clientId,e),t.accountId)return iB(s0,eB,l,h,e.correlationId)(e,t.accountId,o,n,s,a,c,l,h,u);let d=new sq(i,s,{...e,code:t.code||"",codeVerifier:r},l,h);return await iB(d.handleCodeResponse.bind(d),eH,l,h,e.correlationId)(t,e)}async function s2(e,t,r,o,n,i,s,a,c,l,h){if(sf.removeThrottle(i,o.auth.clientId,e),sD.validateAuthorizationResponse(t,e.state),!t.ear_jwe)throw oi(ry);if(!e.earJwk)throw oi(rf);let u=JSON.parse(await iB(n2,"decryptEarResponse",c,l,e.correlationId)(e.earJwk,t.ear_jwe));if(u.accountId)return iB(s0,eB,c,l,e.correlationId)(e,u.accountId,r,o,i,s,a,c,l,h);let d=new s_(o.auth.clientId,i,new iq(c,l),c,null,null,l);d.validateTokenResponse(u);let g={code:"",state:e.state,nonce:e.nonce,client_info:u.client_info,cloud_graph_host_name:u.cloud_graph_host_name,cloud_instance_host_name:u.cloud_instance_host_name,cloud_instance_name:u.cloud_instance_name,msgraph_host:u.msgraph_host};return await iB(d.handleServerTokenResponse.bind(d),eG,c,l,e.correlationId)(u,n,i9.nowSeconds(),e,g,void 0,void 0,void 0,void 0)}async function s4(e,t,r){e.addQueueMeasurement(e7,r);let o=iF(s6,"generateCodeVerifier",t,e,r)(e,t,r),n=await iB(s3,e9,t,e,r)(o,e,t,r);return{verifier:o,challenge:n}}function s6(e,t,r){try{let o=new Uint8Array(32);return iF(nV,"getRandomValues",t,e,r)(o),nN(o)}catch(e){throw oi(rm)}}async function s3(e,t,r,o){t.addQueueMeasurement(e9,o);try{let n=await iB(nW,e5,r,t,o)(e,t,o);return nN(new Uint8Array(n))}catch(e){throw oi(rm)}}var s8=e.i(829897),s8=s8;class s7{constructor(e,t,r,o){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=o,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement("nativeMessageHandlerHandshake"),this.platformAuthType=rg.PlatformAuthConstants.PLATFORM_EXTENSION_PROVIDER}async sendMessage(e){this.logger.trace(this.platformAuthType+" - sendMessage called.");let t={method:rg.NativeExtensionMethod.GetToken,request:e},r={channel:rg.PlatformAuthConstants.CHANNEL_ID,extensionId:this.extensionId,responseId:nQ(),body:t};this.logger.trace(this.platformAuthType+" - Sending request to browser extension"),this.logger.tracePii(this.platformAuthType+` - Sending request to browser extension: ${JSON.stringify(r)}`),this.messageChannel.port1.postMessage(r);let o=await new Promise((e,t)=>{this.resolvers.set(r.responseId,{resolve:e,reject:t})});return this.validatePlatformBrokerResponse(o)}static async createProvider(e,t,r){e.trace("PlatformAuthExtensionHandler - createProvider called.");try{let o=new s7(e,t,r,rg.PlatformAuthConstants.PREFERRED_EXTENSION_ID);return await o.sendHandshakeRequest(),o}catch(n){let o=new s7(e,t,r);return await o.sendHandshakeRequest(),o}}async sendHandshakeRequest(){this.logger.trace(this.platformAuthType+" - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);let e={channel:rg.PlatformAuthConstants.CHANNEL_ID,extensionId:this.extensionId,responseId:nQ(),body:{method:rg.NativeExtensionMethod.HandshakeRequest}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=e=>{this.onChannelMessage(e)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout(()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionH
7andshakeTimedOut:!0,success:!1}),r(oi(r1)),this.handshakeResolvers.delete(e.responseId)},this.handshakeTimeoutMs)})}onWindowMessage(e){if(this.logger.trace(this.platformAuthType+" - onWindowMessage called"),e.source!==window)return;let t=e.data;if(t.channel&&t.channel===rg.PlatformAuthConstants.CHANNEL_ID&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===rg.NativeExtensionMethod.HandshakeRequest){let e=this.handshakeResolvers.get(t.responseId);if(!e)return void this.logger.trace(this.platformAuthType+`.onWindowMessage - resolver can't be found for request ${t.responseId}`);this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),e.reject(oi(r2))}}onChannelMessage(e){this.logger.trace(this.platformAuthType+" - onChannelMessage called.");let t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{let e=t.body.method;if(e===rg.NativeExtensionMethod.Response){if(!r)return;let e=t.body.response;if(this.logger.trace(this.platformAuthType+" - Received response from browser extension"),this.logger.tracePii(this.platformAuthType+` - Received response from browser extension: ${JSON.stringify(e)}`),"Success"!==e.status)r.reject(sz(e.code,e.description,e.ext));else if(e.result)e.result.code&&e.result.description?r.reject(sz(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result);else throw(0,ts.createAuthError)(s8.unexpectedError,"Event does not contain result.");this.resolvers.delete(t.responseId)}else if(e===rg.NativeExtensionMethod.HandshakeResponse){if(!o)return void this.logger.trace(this.platformAuthType+`.onChannelMessage - resolver can't be found for request ${t.responseId}`);clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(this.platformAuthType+` - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(t){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${t}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(t):o&&o.reject(t)}}validatePlatformBrokerResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw(0,ts.createAuthError)(s8.unexpectedError,"Response missing expected properties.")}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}getExtensionName(){return this.getExtensionId()===rg.PlatformAuthConstants.PREFERRED_EXTENSION_ID?"chrome":this.getExtensionId()?.length?"unknown":void 0}}var s8=s8;class s9{constructor(e,t,r){this.logger=e,this.performanceClient=t,this.correlationId=r,this.platformAuthType=rg.PlatformAuthConstants.PLATFORM_DOM_PROVIDER}static async createProvider(e,t,r){if(e.trace("PlatformAuthDOMHandler: createProvider called"),window.navigator?.platformAuthentication){let o=await window.navigator.platformAuthentication.getSupportedContracts(rg.PlatformAuthConstants.MICROSOFT_ENTRA_BROKERID);if(o?.includes(rg.PlatformAuthConstants.PLATFORM_DOM_APIS))return e.trace("Platform auth api available in DOM"),new s9(e,t,r)}}getExtensionId(){return rg.PlatformAuthConstants.MICROSOFT_ENTRA_BROKERID}getExtensionVersion(){return""}getExtensionName(){return rg.PlatformAuthConstants.DOM_API_NAME}async sendMessage(e){this.logger.trace(this.platformAuthType+" - Sending request to browser DOM API");try{let t=this.initializePlatformDOMRequest(e),r=await window.navigator.platformAuthentication.executeGetToken(t);return this.validatePlatformBrokerResponse(r)}catch(e){throw this.logger.error(this.platformAuthType+" - executeGetToken DOM API error"),e}}initializePlatformDOMRequest(e){this.logger.trace(this.platformAuthType+" - initializeNativeDOMRequest called");let{accountId:t,clientId:r,authority:o,scope:n,redirectUri:i,correlationId:s,state:a,storeInCache:c,embeddedClientId:l,extraParameters:h,...u}=e,d=this.getDOMExtraParams(u);return{accountId:t,brokerId:this.getExtensionId(),authority:o,clientId:r,correlationId:s||this.correlationId,extraParameters:{...h,...d},isSecurityTokenService:!1,redirectUri:i,scope:n,state:a,storeInCache:c,embeddedClientId:l}}validatePlatformBrokerResponse(e){if(e.hasOwnProperty("isSuccess")){if(e.hasOwnProperty("accessToken")&&e.hasOwnProperty("idToken")&&e.hasOwnProperty("clientInfo")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scopes")&&e.hasOwnProperty("expiresIn"))return this.logger.trace(this.platformAuthType+" - platform broker returned successful and valid response"),this.convertToPlatformBrokerResponse(e);else if(e.hasOwnProperty("error")&&!1===e.isSuccess&&e.error&&e.error.code)throw this.logger.trace(this.platformAuthType+" - platform broker returned error response"),sz(e.error.code,e.error.description,{error:parseInt(e.error.errorCode),protocol_error:e.error.protocolError,status:e.error.status,properties:e.error.properties})}throw(0,ts.createAuthError)(s8.unexpectedError,"Response missing expected properties.")}convertToPlatformBrokerResponse(e){return this.logger.trace(this.platformAuthType+" - convertToNativeResponse called"),{access_token:e.accessToken,id_token:e.idToken,client_info:e.clientInfo,account:e.account,expires_in:e.expires
7In,scope:e.scopes,state:e.state||"",properties:e.properties||{},extendedLifetimeToken:e.extendedLifetimeToken??!1,shr:e.proofOfPossessionPayload}}getDOMExtraParams(e){return{...Object.entries(e).reduce((e,[t,r])=>(e[t]=String(r),e),{})}}}async function s5(e,t,r,o){let n;e.trace("getPlatformAuthProvider called",r);let i=function(){let e;try{return e=window[rg.BrowserCacheLocation.SessionStorage],e?.getItem(im)==="true"}catch(e){return!1}}();e.trace("Has client allowed platform auth via DOM API: "+i);try{i&&(n=await s9.createProvider(e,t,r)),n||(e.trace("Platform auth via DOM API not available, checking for extension"),n=await s7.createProvider(e,o||2e3,t))}catch(t){e.trace("Platform auth not available",t)}return n}function ae(e,t,r,o){if(t.trace("isPlatformAuthAllowed called"),!e.system.allowPlatformBroker)return t.trace("isPlatformAuthAllowed: allowPlatformBroker is not enabled, returning false"),!1;if(!r)return t.trace("isPlatformAuthAllowed: Platform auth provider is not initialized, returning false"),!1;if(o)switch(o){case tH.AuthenticationScheme.BEARER:case tH.AuthenticationScheme.POP:t.trace("isPlatformAuthAllowed: authenticationScheme is supported, returning true");break;default:return t.trace("isPlatformAuthAllowed: authenticationScheme is not supported, returning false"),!1}return!0}class at extends sN{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,s,c,l),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=a,this.eventHandler=n}acquireToken(e,t){let r;try{if(r={popupName:this.generatePopupName(e.scopes||tH.OIDC_DEFAULT_SCOPES,e.authority||this.config.auth.authority),popupWindowAttributes:e.popupWindowAttributes||{},popupWindowParent:e.popupWindowParent??window},this.performanceClient.addFields({isAsyncPopup:this.config.system.asyncPopups},this.correlationId),this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,r,t);{let o={...e,httpMethod:sO(e,this.config.auth.protocolMode)};return this.logger.verbose("asyncPopup set to false, opening popup before acquiring token"),r.popup=this.openSizedPopup("about:blank",r),this.acquireTokenPopupAsync(o,r,t)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");let t=this.initializeLogoutRequest(e),r={popupName:this.generateLogoutPopupName(t),popupWindowAttributes:e?.popupWindowAttributes||{},popupWindowParent:e?.popupWindowParent??window},o=e&&e.authority,n=e&&e.mainWindowRedirectUri;if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,o,n);return this.logger.verbose("asyncPopup set to false, opening popup"),r.popup=this.openSizedPopup("about:blank",r),this.logoutPopupAsync(t,r,o,n)}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(e,t,r){this.logger.verbose("acquireTokenPopupAsync called");let o=await iB(this.initializeAuthorizationRequest.bind(this),eD,this.logger,this.performanceClient,this.correlationId)(e,rg.InteractionType.Popup);return(t.popup&&il(o.authority),o.platformBroker=ae(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme),this.config.auth.protocolMode===ti.ProtocolMode.EAR)?this.executeEarFlow(o,t):this.executeCodeFlow(o,t,r)}async executeCodeFlow(e,t,r){let o=e.correlationId,n=this.initializeServerTelemetryManager(rg.ApiId.acquireTokenPopup),i=r||await iB(s4,e7,this.logger,this.performanceClient,o)(this.performanceClient,this.logger,o),s={...e,codeChallenge:i.challenge};try{let r=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,o)({serverTelemetryManager:n,requestAuthority:s.authority,requestAzureCloudOptions:s.azureCloudOptions,requestExtraQueryParameters:s.extraQueryParameters,account:s.account});if(s.httpMethod===tH.HttpMethod.POST)return await this.executeCodeFlowWithPost(s,t,r,i.verifier);{let n=await iB(sJ,eq,this.logger,this.performanceClient,o)(this.config,r.authority,s,this.logger,this.performanceClient),a=this.initiateAuthRequest(n,t);this.eventHandler.emitEvent(ea.EventType.POPUP_OPENED,rg.InteractionType.Popup,{popupWindow:a},null);let c=await this.monitorPopupForHash(a,t.popupWindowParent),l=iF(sL,eQ,this.logger,this.performanceClient,this.correlationId)(c,this.config.auth.OIDCOptions.serverResponseType,this.logger);return await iB(s1,eK,this.logger,this.performanceClient,o)(e,l,i.verifier,rg.ApiId.acquireTokenPopup,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}}catch(e){throw t.popup?.close(),e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),e}}async executeEarFlow(e,t){let r=e.correlationId,o=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,r)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),n=await iB(n0,tr,this.logger,this.performanceClient,r)(),i={...e,earJwk:n},s=t.popup||this.openPopup("about:blank",t);(await sY(s.document,this.config,o,i,this.logger,this.performanceClient)).submit();let a=await iB(this.monitorPopupForHash.bind(this),eN,this.logger,this.performanceClient,r)(s,t.popupWindowParent),c=iF(sL,eQ,this.logger,this.performanceClient,this.correlationId)(a,this.config.auth.OIDCOptions.serverResponseType,this.logger);return iB(s2,eF,this.logger,this.performanceClient,r)(i,c,rg.ApiId.acquireTokenPopup,this.config,o,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async executeCodeFlowWithPost(e,t,r,o){let n=e.correlationId,i=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,n)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),s=t.popup||this.openPopup("about:blank",t);(await sX(s.document,this.config,i,e,this.logger,this.performanceClient)).submit();let a=await iB(this.monitorPopupForHash.bind(this),eN,this.logger,this.performanceClient,n)(s,t.popupWindowParent),c=iF(sL,eQ,this.logger,this.performanceClient,this.correlationId)(a,this.config.auth.OIDCOptions.serverResponseType,this.logger);return iB(s1,eK,this.logger,this.performanceClient,n)(e,c,o,rg.ApiId.acquireTokenPopup,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async logoutPopupAsync(e,t,r,o){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ea.EventType.LOGOUT_START,rg.InteractionType.Popup,e);let n=this.initializeServerTelemetryManager(rg.ApiId.logoutPopup);try{await this.clearCacheOnLogout(this.correlationId,e.account);let i=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:n,requestAuthority:r,account:e.account||void 0});try{i.authority.endSessionEndpoint}catch{if(e.account?.homeAccountId&&e.postLogoutRedirectUri&&i.authority.protocolMode===ti.ProtocolMode.OIDC){
7if(this.eventHandler.emitEvent(ea.EventType.LOGOUT_SUCCESS,rg.InteractionType.Popup,e),o){let e={apiId:rg.ApiId.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=tZ.getAbsoluteUrl(o,io());await this.navigationClient.navigateInternal(t,e)}t.popup?.close();return}}let s=i.getLogoutUri(e);this.eventHandler.emitEvent(ea.EventType.LOGOUT_SUCCESS,rg.InteractionType.Popup,e);let a=this.openPopup(s,t);if(this.eventHandler.emitEvent(ea.EventType.POPUP_OPENED,rg.InteractionType.Popup,{popupWindow:a},null),await this.monitorPopupForHash(a,t.popupWindowParent).catch(()=>{}),o){let e={apiId:rg.ApiId.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=tZ.getAbsoluteUrl(o,io());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${t}`),await this.navigationClient.navigateInternal(t,e)}else this.logger.verbose("No main window navigation requested")}catch(e){throw t.popup?.close(),e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.eventHandler.emitEvent(ea.EventType.LOGOUT_FAILURE,rg.InteractionType.Popup,null,e),this.eventHandler.emitEvent(ea.EventType.LOGOUT_END,rg.InteractionType.Popup),e}this.eventHandler.emitEvent(ea.EventType.LOGOUT_END,rg.InteractionType.Popup)}initiateAuthRequest(e,t){if(e)return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t);throw this.logger.error("Navigate url is empty"),oi(rv)}monitorPopupForHash(e,t){return new Promise((t,r)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");let o=setInterval(()=>{if(e.closed){this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(o),r(oi(rb));return}let n="";try{n=e.location.href}catch(e){}if(!n||"about:blank"===n)return;clearInterval(o);let i="",s=this.config.auth.OIDCOptions.serverResponseType;e&&(i=s===tH.ServerResponseType.QUERY?e.location.search:e.location.hash),this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),t(i)},this.config.system.pollIntervalMilliseconds)}).finally(()=>{this.cleanPopup(e,t)})}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):void 0===t.popup&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t)),!r)throw oi(rk);return r.focus&&r.focus(),this.currentWindow=r,t.popupWindowParent.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),oi(rE)}}openSizedPopup(e,{popupName:t,popupWindowAttributes:r,popupWindowParent:o}){let n=o.screenLeft?o.screenLeft:o.screenX,i=o.screenTop?o.screenTop:o.screenY,s=o.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=o.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,c=r.popupSize?.width,l=r.popupSize?.height,h=r.popupPosition?.top,u=r.popupPosition?.left;return(!c||c<0||c>s)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),c=rg.BrowserConstants.POPUP_WIDTH),(!l||l<0||l>a)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),l=rg.BrowserConstants.POPUP_HEIGHT),(!h||h<0||h>a)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),h=Math.max(0,a/2-rg.BrowserConstants.POPUP_HEIGHT/2+i)),(!u||u<0||u>s)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),u=Math.max(0,s/2-rg.BrowserConstants.POPUP_WIDTH/2+n)),o.open(e,t,`width=${c}, height=${l}, top=${h}, left=${u}, scrollbars=yes`)}unloadWindow(e){this.currentWindow&&this.currentWindow.close(),e.preventDefault()}cleanPopup(e,t){e.close(),t.removeEventListener("beforeunload",this.unloadWindow)}generatePopupName(e,t){return`${rg.BrowserConstants.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){let t=e.account&&e.account.homeAccountId;return`${rg.BrowserConstants.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}var sM=sM;class ar extends sN{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,s,c,l),this.nativeStorage=a}async acquireToken(e){let t=await iB(this.initializeAuthorizationRequest.bind(this),eD,this.logger,this.performanceClient,this.correlationId)(e,rg.InteractionType.Redirect);t.platformBroker=ae(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme);let r=e=>{e.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.resetRequestCache(),this.eventHandler.emitEvent(ea.EventType.RESTORE_FROM_BFCACHE,rg.InteractionType.Redirect))},o=this.getRedirectStartPage(e.redirectStartPage);this.logger.verbosePii(`Redirect start page: ${o}`),this.browserStorage.setTemporaryCache(rg.TemporaryCacheKeys.ORIGIN_URI,o,!0),window.addEventListener("pageshow",r);try{this.config.auth.protocolMode===ti.ProtocolMode.EAR?await this.executeEarFlow(t):await this.executeCodeFlow(t,e.onRedirectNavigate)}catch(e){throw e instanceof ts.AuthError&&e.setCorrelationId(this.correlationId),window.removeEventListener("pageshow",r),e}}async executeCodeFlow(e,t){let r=e.correlationId,o=this.initializeServerTelemetryManager(rg.ApiId.acquireTokenRedirect),n=await iB(s4,e7,this.logger,this.performanceClient,r)(this.performanceClient,this.logger,r),i={...e,codeChallenge:n.challenge};this.browserStorage.cacheAuthorizeRequest(i,n.verifier);try{if(i.httpMethod===tH.HttpMethod.POST)return await this.executeCodeFlowWithPost(i);{let r=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:o,requestAuthority:i.authority,requestAzureCloudOptions:i.azureCloudOptions,requestExtraQueryParameters:i.extraQueryParameters,account:i.account}),n=await iB(sJ,eq,this.logger,this.performanceClient,e.correlationId)(this.config,r.authority,i,this.logger,this.performanceClient);return await this.initiateAuthRequest(n,t)}}catch(e){throw e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}async executeEarFlow(e){let t=e.correlationId,r=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,t)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),o=await iB(n0,tr,this.logger,this.performanceClient,t)(),n={...e,earJwk:o};return this.browserStorage.cacheAuthorizeRequest(n),(await sY(document,this.config,r,n,this.logger,this.performanceClient)).submit(),new Promise((e,t)=>
7{setTimeout(()=>{t(oi(ot,"failed_to_redirect"))},this.config.system.redirectNavigationTimeout)})}async executeCodeFlowWithPost(e){let t=e.correlationId,r=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,t)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account});return this.browserStorage.cacheAuthorizeRequest(e),(await sX(document,this.config,r,e,this.logger,this.performanceClient)).submit(),new Promise((e,t)=>{setTimeout(()=>{t(oi(ot,"failed_to_redirect"))},this.config.system.redirectNavigationTimeout)})}async handleRedirectPromise(e="",t,r,o){let n=this.initializeServerTelemetryManager(rg.ApiId.handleRedirectPromise);try{let[i,s]=this.getRedirectResponse(e||"");if(!i)return this.logger.info("handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache."),this.browserStorage.resetRequestCache(),"back_forward"!==function(){if("u"<typeof window||void 0===window.performance||"function"!=typeof window.performance.getEntriesByType)return;let e=window.performance.getEntriesByType("navigation"),t=e.length?e[0]:void 0;return t?.type}()?o.event.errorCode="no_server_response":this.logger.verbose("Back navigation event detected. Muting no_server_response error"),null;let a=this.browserStorage.getTemporaryCache(rg.TemporaryCacheKeys.ORIGIN_URI,!0)||tH.Constants.EMPTY_STRING,c=sM.normalizeUrlForComparison(a),l=sM.normalizeUrlForComparison(window.location.href);if(c===l&&this.config.auth.navigateToLoginRequestUrl){let e;return this.logger.verbose("Current page is loginRequestUrl, handling response"),a.indexOf("#")>-1&&((e=a.split("#")).shift(),window.location.hash=e.length>0?e.join("#"):""),await this.handleResponse(i,t,r,n)}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),await this.handleResponse(i,t,r,n);if(!ir()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(rg.TemporaryCacheKeys.URL_HASH,s,!0);let e={apiId:rg.ApiId.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0},o=!0;if(a&&"null"!==a)this.logger.verbose(`Navigating to loginRequestUrl: ${a}`),o=await this.navigationClient.navigateInternal(a,e);else{let t,r=(t=new tZ(window.location.href).getUrlComponents(),`${t.Protocol}//${t.HostNameAndPort}/`);this.browserStorage.setTemporaryCache(rg.TemporaryCacheKeys.ORIGIN_URI,r,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),o=await this.navigationClient.navigateInternal(r,e)}if(!o)return await this.handleResponse(i,t,r,n)}return null}catch(e){throw e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),e}}getRedirectResponse(e){this.logger.verbose("getRedirectResponseHash called");let t=e;t||(t=this.config.auth.OIDCOptions.serverResponseType===tH.ServerResponseType.QUERY?window.location.search:window.location.hash);let r=sM.getDeserializedResponse(t);if(r){try{!function(e,t,r){if(!e.state)throw oi(rI);let o=function(e,t){if(!t)return null;try{return sC.parseRequestState(e,t).libraryState.meta}catch(e){throw(0,tx.createClientAuthError)(iE.invalidState)}}(t,e.state);if(!o)throw oi(rT);if(o.interactionType!==r)throw oi(rA)}(r,this.browserCrypto,rg.InteractionType.Redirect)}catch(e){return e instanceof ts.AuthError&&this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`),[null,""]}return it(window),this.logger.verbose("Hash contains known properties, returning response hash"),[r,t]}let o=this.browserStorage.getTemporaryCache(rg.TemporaryCacheKeys.URL_HASH,!0);return(this.browserStorage.removeItem(this.browserStorage.generateCacheKey(rg.TemporaryCacheKeys.URL_HASH)),o&&(r=sM.getDeserializedResponse(o)))?(this.logger.verbose("Hash does not contain known properties, returning cached hash"),[r,o]):[null,""]}async handleResponse(e,t,r,o){if(!e.state)throw oi(rI);if(e.ear_jwe){let r=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,t.correlationId)({requestAuthority:t.authority,requestAzureCloudOptions:t.azureCloudOptions,requestExtraQueryParameters:t.extraQueryParameters,account:t.account});return iB(s2,eF,this.logger,this.performanceClient,t.correlationId)(t,e,rg.ApiId.acquireTokenRedirect,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}let n=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:o,requestAuthority:t.authority});return iB(s1,eK,this.logger,this.performanceClient,t.correlationId)(t,e,r,rg.ApiId.acquireTokenRedirect,this.config,n,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),e){this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);let r={apiId:rg.ApiId.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},o=t||this.config.auth.onRedirectNavigate;if("function"==typeof o)return(this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"),!1===o(e))?void this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation"):(this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did n
7ot return false, navigating"),await this.navigationClient.navigateExternal(e,r),void 0);return this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),await this.navigationClient.navigateExternal(e,r),void 0}throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),oi(rv)}async logout(e){this.logger.verbose("logoutRedirect called");let t=this.initializeLogoutRequest(e),r=this.initializeServerTelemetryManager(rg.ApiId.logout);try{this.eventHandler.emitEvent(ea.EventType.LOGOUT_START,rg.InteractionType.Redirect,e),await this.clearCacheOnLogout(this.correlationId,t.account);let o={apiId:rg.ApiId.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},n=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:r,requestAuthority:e&&e.authority,requestExtraQueryParameters:e?.extraQueryParameters,account:e&&e.account||void 0});if(n.authority.protocolMode===ti.ProtocolMode.OIDC)try{n.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId)return void this.eventHandler.emitEvent(ea.EventType.LOGOUT_SUCCESS,rg.InteractionType.Redirect,t)}let i=n.getLogoutUri(t);if(this.eventHandler.emitEvent(ea.EventType.LOGOUT_SUCCESS,rg.InteractionType.Redirect,t),e&&"function"==typeof e.onRedirectNavigate){let t=e.onRedirectNavigate(i);if(!1!==t){this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNOUT),await this.navigationClient.navigateExternal(i,o);return}this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}else{this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNOUT),await this.navigationClient.navigateExternal(i,o);return}}catch(e){throw e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),r.cacheFailedRequest(e)),this.eventHandler.emitEvent(ea.EventType.LOGOUT_FAILURE,rg.InteractionType.Redirect,null,e),this.eventHandler.emitEvent(ea.EventType.LOGOUT_END,rg.InteractionType.Redirect),e}this.eventHandler.emitEvent(ea.EventType.LOGOUT_END,rg.InteractionType.Redirect)}getRedirectStartPage(e){let t=e||window.location.href;return tZ.getAbsoluteUrl(t,io())}}async function ao(e,t,r,o,n){if(t.addQueueMeasurement(eO,o),!e)throw r.info("Navigate url is empty"),oi(rv);return n?iB(aa,eM,r,t,o)(e,n,t,o):iF(ac,"silentHandlerLoadFrameSync",r,t,o)(e)}async function an(e,t,r,o,n){let i=al();if(!i.contentDocument)throw"No document associated with iframe!";return(await sX(i.contentDocument,e,t,r,o,n)).submit(),i}async function ai(e,t,r,o,n){let i=al();if(!i.contentDocument)throw"No document associated with iframe!";return(await sY(i.contentDocument,e,t,r,o,n)).submit(),i}async function as(e,t,r,o,n,i,s){return o.addQueueMeasurement(eN,i),new Promise((o,i)=>{t<1e4&&n.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (10000ms). This may result in timeouts.`);let a=window.setTimeout(()=>{window.clearInterval(c),i(oi(rP))},t),c=window.setInterval(()=>{let t="",r=e.contentWindow;try{t=r?r.location.href:""}catch(e){}if(!t||"about:blank"===t)return;let n="";r&&(n=s===tH.ServerResponseType.QUERY?r.location.search:r.location.hash),window.clearTimeout(a),window.clearInterval(c),o(n)},r)}).finally(()=>{iF(ah,"removeHiddenIframe",n,o,i)(e)})}function aa(e,t,r,o){return r.addQueueMeasurement(eM,o),new Promise((r,o)=>{let n=al();window.setTimeout(()=>{n?(n.src=e,r(n)):o("Unable to load iframe")},t)})}function ac(e){let t=al();return t.src=e,t}function al(){let e=document.createElement("iframe");return e.className="msalSilentIframe",e.style.visibility="hidden",e.style.position="absolute",e.style.width=e.style.height="0",e.style.border="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.body.appendChild(e),e}function ah(e){document.body===e.parentNode&&document.body.removeChild(e)}class au extends sN{constructor(e,t,r,o,n,i,s,a,c,l,h){super(e,t,r,o,n,i,a,l,h),this.apiId=s,this.nativeStorage=c}async acquireToken(e){this.performanceClient.addQueueMeasurement(eg,e.correlationId),e.loginHint||e.sid||e.account&&e.account.username||this.logger.warning("No user hint provided. The authorization server may need more information to complete this request.");let t={...e};t.prompt?t.prompt!==tH.PromptValue.NONE&&t.prompt!==tH.PromptValue.NO_SESSION&&(this.logger.warning(`SilentIframeClient. Replacing invalid prompt ${t.prompt} with ${tH.PromptValue.NONE}`),t.prompt=tH.PromptValue.NONE):t.prompt=tH.PromptValue.NONE;let r=await iB(this.initializeAuthorizationRequest.bind(this),eD,this.logger,this.performanceClient,e.correlationId)(t,rg.InteractionType.Silent);return(r.platformBroker=ae(this.config,this.logger,this.platformAuthProvider,r.authenticationScheme),il(r.authority),this.config.auth.protocolMode===ti.ProtocolMode.EAR)?this.executeEarFlow(r):this.executeCodeFlow(r)}async executeCodeFlow(e){let t,r=this.initializeServerTelemetryManager(this.apiId);try{return t=await iB(this.createAuthCodeClient.bind(this),eL,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:r,requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),await iB(this.silentTokenHelper.bind(this),eP,this.logger,this.performanceClient,e.correlationId)(t,e)}catch(o){if(o instanceof ts.AuthError&&(o.setCorrelationId(this.correlationId),r.cacheFailedRequest(o)),!t||!(o instanceof ts.AuthError)||o.errorCode!==rg.BrowserConstants.INVALID_GRANT_ERROR)throw o;return this.performanceClient.addFields({retryError:o.errorCode},this.correlationId),await iB(this.silentTokenHelper.bind(this),eP,this.logger,this.performanceClient,this.correlationId)(t,e)}}async executeEarFlow(e){let t=e.correlationId,r=await iB(this.getDiscoveredAuthority.bind(this),em,this.logger,this.performanceClient,t)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),o=await iB(n0,tr,this.logger,this.performanceClient,t)(),n={...e,earJwk:o},i=await iB(ai,eO,this.logger,this.performanceClient,t)(this.config,r,n,this.logger,this.performanceClient),s=this.config.auth.OIDCOptions.serverResponseType,a=await iB(as,eN,this.logger,this.performanceClient,t)(i,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,t,s),c=iF(sL,eQ,this.logger,this.performanceClient,t)(a,s,this.logger);return iB(s2,eF,this.logger,this.performanceClient,t)(n,c,this.apiId,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}logout(){return Promise.reject(oi(rx))}async silentTokenHelper(e,t){let r,o=t.correlationId;this.performanceClient.addQueueMeasurement(eP,o);let n=await iB(s4,e7,this.logger,this.performanceClient,o)(this.performanceClient,this.logger,o),i={...t,codeChallenge:n.challenge};if(t.httpMethod===tH.HttpMethod.POST)r=await iB(an,eO,this.logger,this.performanceClient,o)(this.config,e.authority,i,this.logger,this.performanceClient);else{let t=await iB(sJ,eq,this.logger,this.performanceClient,o)(this.config,e.authority,i,this.logger,this.performanceClient);r=await iB(ao,eO,this.logger,this.performanceClient,o)(t,this.performanceClient,this.logger,o,this.config.system.navigateFrameWait)}let s=this.config.auth.OIDCOptions.serverResponseType,a=await iB(as,eN,this.logger,this.performanceClient,o)(r,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,o,s),c=iF(sL,eQ,this.logger,this.performanceClient,o)(a,s,this.logger);return iB(s1,eK,this.logger,this.performanceClient,o)(t,c,n.verifier,this.apiId,this.config,e,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}}var ad=i8;class ag extends sy{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(ew,e.correlationId);let t=i$(),r=await iB(this.executeTokenRequest.bind(this),ev,this.logger,this.performanceClient,e.correlationId)(e,this.authority),o=r.headers?.[tH.HeaderNames.X_MS_REQUEST_ID],n=new s_(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return n.validateTokenResponse(r.body),iB(n.handleServerTokenResponse.bind(n),eG,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,o)}async acquireTokenByRefreshToken(e){if(!e)throw tM(tp);if(this.performanceClient?.addQueueMeasurement(e_,e.correlationId),!e.account)throw(0,tx.createClientAuthError)(tD.noAccountInSilentRequest);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return await iB(this.acquireTokenWithCachedRefreshToken.bind(this),eI,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(r){let e=r instanceof i4.InteractionRequiredAuthError&&r.errorCode===ad.noTokensFound,t=r instanceof sm&&r.errorCode===tH.Errors.INVALID_GRANT_ERROR&&r.subError===tH.Errors.CLIENT_MISMATCH_ERROR;if(e||t);else throw r}return iB(this.acquireTokenWithCachedRefreshToken.bind(this),eI,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(eI,e.correlationId);let r=iF(this.cacheManager.getRefreshToken.bind(this.cacheManager),"cac
7heManagerGetRefreshToken",this.logger,this.performanceClient,e.correlationId)(e.account,t,e.correlationId,void 0,this.performanceClient);if(!r)throw(0,i4.createInteractionRequiredAuthError)(ad.noTokensFound);if(r.expiresOn&&iz(r.expiresOn,e.refreshTokenExpirationOffsetSeconds||300))throw this.performanceClient?.addFields({rtExpiresOnMs:Number(r.expiresOn)},e.correlationId),(0,i4.createInteractionRequiredAuthError)(ad.refreshTokenExpired);let o={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||tH.AuthenticationScheme.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:su}};try{return await iB(this.acquireToken.bind(this),ew,this.logger,this.performanceClient,e.correlationId)(o)}catch(t){if(t instanceof i4.InteractionRequiredAuthError&&(this.performanceClient?.addFields({rtExpiresOnMs:Number(r.expiresOn)},e.correlationId),t.subError===ad.badToken)){this.logger.verbose("acquireTokenWithRefreshToken: bad refresh token, removing from cache");let t=this.cacheManager.generateCredentialKey(r);this.cacheManager.removeRefreshToken(t,e.correlationId)}throw t}}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(ev,e.correlationId);let r=this.createTokenQueryParameters(e),o=tZ.appendQueryString(t.tokenEndpoint,r),n=await iB(this.createTokenRequestBody.bind(this),eT,this.logger,this.performanceClient,e.correlationId)(e),i=this.createTokenRequestHeaders(e.ccsCredential),s=i3(this.config.authOptions.clientId,e);return iB(this.executePostToTokenEndpoint.bind(this),ey,this.logger,this.performanceClient,e.correlationId)(o,n,i,s,e.correlationId,ey)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(eT,e.correlationId);let t=new Map;if(o7(t,e.embeddedClientId||e.tokenBodyParameters?.[og]||this.config.authOptions.clientId),e.redirectUri&&o9(t,e.redirectUri),o8(t,e.scopes,!0,this.config.authOptions.authority.options.OIDCOptions?.defaultScopes),nv(t,tH.GrantType.REFRESH_TOKEN_GRANT),nw(t),nc(t,this.config.libraryInfo),nl(t,this.config.telemetry.application),nk(t),this.serverTelemetryManager&&!rd(this.config)&&nE(t,this.serverTelemetryManager),np(t,e.refreshToken),this.config.clientCredentials.clientSecret&&nf(t,this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){let r=this.config.clientCredentials.clientAssertion;ny(t,await sA(r.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),nC(t,r.assertionType)}if(e.authenticationScheme===tH.AuthenticationScheme.POP){let r=new sv(this.cryptoUtils,this.performanceClient);nA(t,e.popKid?this.cryptoUtils.encodeKid(e.popKid):(await iB(r.generateCnf.bind(r),eV,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString)}else if(e.authenticationScheme===tH.AuthenticationScheme.SSH)if(e.sshJwk)nS(t,e.sshJwk);else throw tM(tI);if((!t$.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&ns(t,e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case su:try{let r=(0,sd.buildClientInfoFromHomeAccountId)(e.ccsCredential.credential);nn(t,r)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case"UPN":no(t,e.ccsCredential.credential)}return e.embeddedClientId&&nR(t,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenBodyParameters&&n_(t,e.tokenBodyParameters),o6(t,e.correlationId,this.performanceClient),tX(t)}}class ap extends sN{async acquireToken(e){this.performanceClient.addQueueMeasurement(ep,e.correlationId);let t=await iB(sR,eb,this.logger,this.performanceClient,e.correlationId)(e,this.config,this.performanceClient,this.logger),r={...e,...t};e.redirectUri&&(r.redirectUri=this.getRedirectUri(e.redirectUri));let o=this.initializeServerTelemetryManager(rg.ApiId.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient({serverTelemetryManager:o,authorityUrl:r.authority,azureCloudOptions:r.azureCloudOptions,account:r.account});return iB(n.acquireTokenByRefreshToken.bind(n),e_,this.logger,this.performanceClient,e.correlationId)(r).catch(e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),e})}logout(){return Promise.reject(oi(rx))}async createRefreshTokenClient(e){return new ag(await iB(this.getClientConfiguration.bind(this),ex,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:e.serverTelemetryManager,requestAuthority:e.authorityUrl,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),this.performanceClient)}}var sH=sH,i7=i7,i9=i9;class am{constructor(e,t,r,o){this.isBrowserEnvironment="u">typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}async loadExternalTokens(e,t,r){if(!this.isBrowserEnvironment)throw oi(rK);let o=e.correlationId||nQ(),n=t.id_token?sH.extractTokenClaims(t.id_token,nx):void 0,i={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},s=e.authority?new i1(i1.generateAuthority(e.authority,e.azureCloudOptions),this.config.system.networkClient,this.storage,i,this.logger,e.correlationId||nQ()):void 0,a=await this.loadAccount(e,r.clientInfo||t.client_info||"",o,n,s),c=await this.loadIdToken(t,a.homeAccountId,a.environment,a.realm,o),l=await this.loadAccessToken(e,t,a.homeAccountId,a.environment,a.realm,r,o),h=await this.loadRefreshToken(t,a.homeAccountId,a.environment,o);return this.generateAuthenticationResult(e,{account:a,idToken:c,accessToken:l,refreshToken:h},n,s)}async loadAccount(e,t,r,o,n){if(this.logger.verbose("TokenCache - loading account"),e.account){let t=i6.AccountEntity.createFromAccountInfo(e.account);return await this.storage.setAccount(t,r),t}if(!n||!t&&!o)throw this.logger.error("TokenCache - if an account is not provided on the request, authority and either clientInfo or idToken must be provided instead."),oi(rG);let i=i6.AccountEntity.generateHomeAccountId(t,n.authorityType,this.logger,this.cryptoObj,o),s=o?.tid,a=sT(this.storage,n,i,nx,r,o,t,n.hostnameAndPort,s,void 0,void 0,this.logger);return await this.storage.setAccount(a,r),a}async loadIdToken(e,t,r,o,n){if(!e.id_token)return this.logger.verbose("TokenCache - no id token found in response"),null;this.logger.verbose("TokenCache - loading id token");let i=i7.createIdTokenEntity(t,r,e.id_token,this.config.auth.clientId,o);return await this.storage.setIdTokenCredential(i,n),i}async loadAccessToken(e,t,r,o,n,i,s){if(!t.access_token)return this.logger.verbose("TokenCache - no access token found in response"),null;if(!t.expires_in)return this.logger.error("TokenCache - no expiration set on the access token. Cannot add it to the cache."),null;if(!t.scope&&(!e.scopes||!e.scopes.length))return this.logger.error("TokenCache - scopes not specified in the request or response. Cannot add token to the cache."),null;this.logger.verbose("TokenCache - loading access token");let a=t.scope?tj.fromString(t.scope):new tj(e.scopes),c=i.expiresOn||t.expires_in+i9.nowSeconds(),l=i.extendedExpiresOn||(t.ext_expires_in||t.expires_in)+i9.nowSeconds(),h=i7.createAccessTokenEntity(r,o,t.access_token,this.config.auth.clientId,n,a.printScopes(),c,l,nx);return await this.storage.setAccessTokenCredential(h,s),h}async loadRefreshToken(e,t,r,o){if(!e.refresh_token)return this.logger.verbose("TokenCache - no refresh token found in response"),null;this.logger.verbose("TokenCache - loading refresh token");let n=i7.createRefreshTokenEntity(t,r,e.refresh_token,this.config.auth.clientId,e.foci,void 0,e.refresh_token_expires_in);return await this.storage.setRefreshTokenCredential(n,o),n}generateAuthenticationResult(e,t,r,o){let n,i="",s=[],a=null;t?.accessToken&&(i=t.accessToken.secret,s=tj.fromString(t.accessToken.target).asArray(),a=i9.toDateFromSeconds(t.accessToken.expiresOn),n=i9.toDateFromSeconds(t.accessToken.extendedExpiresOn));let c=t.account;return{authority:o?o.canonicalAuthority:"",uniqueId:t.account.localAccountId,tenantId:t.account.realm,scopes:s,account:c.getAccountInfo(),idToken:t.idToken?.secret||"",idTokenClaims:r||{},accessToken:i,fromCache:!0,expiresOn:a,correlationId:e.correlationId||"",requestId:"",extExpiresOn:n,familyId:t.refreshToken?.familyId||"",tokenType:t?.accessToken?.tokenType||"",state:e.state||"",cloudGraphHostName:c.cloudGraphHostName||"",msGraphHost:c.msGraphHost||"",fromNativeBroker:!1}}}class af extends sS{constructor(e){super(e),this.includeRedirectUri=!1}}class ay extends sN{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,a,c,l),this.apiId=s}async acquireToken(e){if(!e.code)throw oi(rJ);let t=await iB(this.initializeAuthorizationRequest.bind(this),eD,this.logger,this.performanceClient,e.correlationId)(e,rg.InteractionType.Silent),r=this.initializeServerTelemetryManager(this.apiId);try{let o={...t,code:e.code},n=await iB(this.getClientConfiguration.bind(this),ex,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:r,requestAuthority:t.authority,requestAzureCloudOptions:t.azureCloudOptions,requestExtraQueryParameters:t.extraQueryParameters,account:t.account}),i=new af(n);this.logger.verbose("Auth code client created");let s=new sq(i,this.browserStorage,o,this.logger,this.performanceClient);return await iB(s.handleCodeResponseFromServer.bind(s),eU,this.logger,this.performanceClient,e.correlationId)({code:e.code,msgraph_host:e.msGraphHost,cloud_graph_host_name:e.cloudGraphHostName,cloud_instance_host_name:e.cloudInstanceHostName},t,!1)}catch(e){throw e instanceof ts.AuthError&&(e.setCorrelationId(this.correlationId),r.cacheFailedRequest(e)),e}}logout(){return Promise.reject(oi(rx))}}function aC(e){let t=e?.idTokenClaims;return t?.tfp||t?.acr?"B2C":t?.tid?t?.tid==="9188040d-6c67-4c5b-b112-36a304b66dad"?"MSA":"AAD":void 0}function av(e,t){try{ia(e)}catch(e){throw t.end({success:!1},e),e}}class aw{constructor(e){this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.
7isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new iq(this.logger,this.performanceClient):tU,this.eventHandler=new sh(this.logger),this.browserStorage=this.isBrowserEnvironment?new sc(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger,this.performanceClient,this.eventHandler,function(e){let t,r=e.cloudDiscoveryMetadata;if(r)try{t=JSON.parse(r)}catch(e){throw tM(tC)}return{canonicalAuthority:e.authority?i2(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:t}}(this.config.auth)):((e,t,r,o)=>new sc(e,{cacheLocation:rg.BrowserCacheLocation.MemoryStorage,cacheRetentionDays:5,temporaryCacheLocation:rg.BrowserCacheLocation.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},tU,t,r,o))(this.config.auth.clientId,this.logger,this.performanceClient,this.eventHandler);const t={cacheLocation:rg.BrowserCacheLocation.MemoryStorage,cacheRetentionDays:5,temporaryCacheLocation:rg.BrowserCacheLocation.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new sc(this.config.auth.clientId,t,this.browserCrypto,this.logger,this.performanceClient,this.eventHandler),this.tokenCache=new am(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e,t){let r=new aw(e);return await r.initialize(t),r}trackPageVisibility(e){e&&(this.logger.info("Perf: Visibility change detected"),this.performanceClient.incrementFields({visibilityChangeCount:1},e))}async initialize(e,t){if(this.logger.trace("initialize called"),this.initialized)return void this.logger.info("initialize has already been called, exiting early.");if(!this.isBrowserEnvironment){this.logger.info("in non-browser environment, exiting early."),this.initialized=!0,this.eventHandler.emitEvent(ea.EventType.INITIALIZE_END);return}let r=e?.correlationId||this.getRequestCorrelationId(),o=this.config.system.allowPlatformBroker,n=this.performanceClient.startMeasurement("initializeClientApplication",r);if(this.eventHandler.emitEvent(ea.EventType.INITIALIZE_START),!t)try{this.logMultipleInstances(n)}catch{}if(await iB(this.browserStorage.initialize.bind(this.browserStorage),"initializeCache",this.logger,this.performanceClient,r)(r),o)try{this.platformAuthProvider=await s5(this.logger,this.performanceClient,r,this.config.system.nativeBrokerHandshakeTimeout)}catch(e){this.logger.verbose(e)}this.config.cache.claimsBasedCachingEnabled||(this.logger.verbose("Claims-based caching is disabled. Clearing the previous cache with claims"),iF(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),e8,this.logger,this.performanceClient,r)(r)),this.config.system.asyncPopups&&await this.preGeneratePkceCodes(r),this.initialized=!0,this.eventHandler.emitEvent(ea.EventType.INITIALIZE_END),n.end({allowPlatformBroker:o,success:!0})}async handleRedirectPromise(e){if(this.logger.verbose("handleRedirectPromise called"),is(this.initialized),this.isBrowserEnvironment){let t=e||"",r=this.redirectResponse.get(t);return void 0===r?(r=this.handleRedirectPromiseInternal(e),this.redirectResponse.set(t,r),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise")):this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call"),r}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async handleRedirectPromiseInternal(e){let t,r;if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;if(this.browserStorage.getInteractionInProgress()?.type===rg.INTERACTION_TYPE.SIGNOUT)return this.logger.verbose("handleRedirectPromise remov
7ing interaction_in_progress flag and returning null after sign-out"),this.browserStorage.setInteractionInProgress(!1),Promise.resolve(null);let o=this.getAllAccounts(),n=this.browserStorage.getCachedNativeRequest(),i=n&&this.platformAuthProvider&&!e;this.eventHandler.emitEvent(ea.EventType.HANDLE_REDIRECT_START,rg.InteractionType.Redirect);try{if(i&&this.platformAuthProvider){t=this.performanceClient.startMeasurement(eu,n?.correlationId||""),this.logger.trace("handleRedirectPromise - acquiring token from native platform"),t.add({isPlatformBrokerRequest:!0});let e=new sG(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,rg.ApiId.handleRedirectPromise,this.performanceClient,this.platformAuthProvider,n.accountId,this.nativeInternalStorage,n.correlationId);r=iB(e.handleRedirectPromise.bind(e),"handleNativeRedirectPromise",this.logger,this.performanceClient,t.event.correlationId)(this.performanceClient,t.event.correlationId)}else{let[o,n]=this.browserStorage.getCachedRequest(),i=o.correlationId;t=this.performanceClient.startMeasurement(eu,i),this.logger.trace("handleRedirectPromise - acquiring token from web flow");let s=this.createRedirectClient(i);r=iB(s.handleRedirectPromise.bind(s),"handleRedirectPromise",this.logger,this.performanceClient,t.event.correlationId)(e,o,n,t)}}catch(e){throw this.browserStorage.resetRequestCache(),e}return r.then(e=>(e?(this.browserStorage.resetRequestCache(),o.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(ea.EventType.LOGIN_SUCCESS,rg.InteractionType.Redirect,e),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_SUCCESS,rg.InteractionType.Redirect,e),this.logger.verbose("handleRedirectResponse returned result, acquire token success")),t.end({success:!0,accountType:aC(e.account)})):t.event.errorCode?t.end({success:!1}):t.discard(),this.eventHandler.emitEvent(ea.EventType.HANDLE_REDIRECT_END,rg.InteractionType.Redirect),e)).catch(e=>{throw this.browserStorage.resetRequestCache(),o.length>0?this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_FAILURE,rg.InteractionType.Redirect,null,e):this.eventHandler.emitEvent(ea.EventType.LOGIN_FAILURE,rg.InteractionType.Redirect,null,e),this.eventHandler.emitEvent(ea.EventType.HANDLE_REDIRECT_END,rg.InteractionType.Redirect),t.end({success:!1},e),e})}async acquireTokenRedirect(e){let t=this.getRequestCorrelationId(e);this.logger.verbose("acquireTokenRedirect called",t);let r=this.performanceClient.startMeasurement("acquireTokenPreRedirect",t);r.add({accountType:aC(e.account),scenarioId:e.scenarioId});let o=e.onRedirectNavigate;if(o)e.onRedirectNavigate=e=>{let t="function"==typeof o?o(e):void 0;return r.add({navigateCallbackResult:!1!==t}),r.event=r.end({success:!0})||r.event,t};else{let e=this.config.auth.onRedirectNavigate;this.config.auth.onRedirectNavigate=t=>{let o="function"==typeof e?e(t):void 0;return r.add({navigateCallbackResult:!1!==o}),r.event=r.end({success:!0})||r.event,o}}let n=this.getAllAccounts().length>0;try{let o;return ic(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNIN),n?this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_START,rg.InteractionType.Redirect,e):this.eventHandler.emitEvent(ea.EventType.LOGIN_START,rg.InteractionType.Redirect,e),o=this.platformAuthProvider&&this.canUsePlatformBroker(e)?new sG(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,rg.ApiId.acquireTokenRedirect,this.performanceClient,this.platformAuthProvider,this.getNativeAccountId(e),this.nativeInternalStorage,t).acquireTokenRedirect(e,r).catch(o=>{if(r.add({brokerErrorName:o.name,brokerErrorCode:o.errorCode}),o instanceof s$&&sj(o))return this.platformAuthProvider=void 0,this.createRedirectClient(t).acquireToken(e);if(o instanceof i4.InteractionRequiredAuthError)return this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createRedirectClient(t).acquireToken(e);throw o}):this.createRedirectClient(t).acquireToken(e),await o}catch(e){throw this.browserStorage.resetRequestCache(),2===r.event.status?this.performanceClient.startMeasurement(eu,t).end({success:!1},e):r.end({success:!1},e),n?this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_FAILURE,rg.InteractionType.Redirect,null,e):this.eventHandler.emitEvent(ea.EventType.LOGIN_FAILURE,rg.InteractionType.Redirect,null,e),e}}acquireTokenPopup(e){let t,r=this.getRequestCorrelationId(e),o=this.performanceClient.startMeasurement("acquireTokenPopup",r);o.add({scenarioId:e.scenarioId,accountType:aC(e.account)});try{this.logger.verbose("acquireTokenPopup called",r),av(this.initialized,o),this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNIN)}catch(e){return Promise.reject(e)}let n=this.getAllAccounts();n.length>0?this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_START,rg.InteractionType.Popup,e):this.eventHandler.emitEvent(ea.EventType.LOGIN_START,rg.InteractionType.Popup,e);let i=this.getPreGeneratedPkceCodes(r);return this.canUsePlatformBroker(e)?(o.add({isPlatformBrokerRequest:!0}),t=this.acquireTokenNative({...e,correlationId:r},rg.ApiId.acquireTokenPopup).then(e=>(o.end({success:!0,accountType:aC(e.account)}),e)).catch(t=>{if(o.add({brokerErrorName:t.name,brokerErrorCode:t.errorCode}),t instanceof s$&&sj(t))return this.platformAuthProvider=void 0,this.createPopupClient(r).acquireToken(e,i);if(t instanceof i4.InteractionRequiredAuthError)return this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createPopupClient(r).acquireToken(e,i);throw t})):t=this.createPopupClient(r).acquireToken(e,i),t.then(e=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(ea.EventType.LOGIN_SUCCESS,rg.InteractionType.Popup,e):this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_SUCCESS,rg.InteractionType.Popup,e),o.end({success:!0,accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length,accountType:aC(e.account)}),e)).catch(e=>(n.length>0?this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_FAILURE,rg.InteractionType.Popup,null,e):this.eventHandler.emitEvent(ea.EventType.LOGIN_FAILURE,rg.InteractionType.Popup,null,e),o.end({success:!1},e),Promise.reject(e))).finally(async()=>{this.browserStorage.setInteractionInProgress(!1),this.config.system.asyncPopups&&await this.preGeneratePkceCodes(r)})}trackPageVisibilityWithMeasurement(){let e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(e){let t,r=this.getRequestCorrelationId(e),o={...e,prompt:e.prompt,correlationId:r};return this.ssoSilentMeasurement=this.performanceClient.startMeasurement("ssoSilent",r),this.ssoSilentMeasurement?.add({scenarioId:e.scenarioId,accountType:aC(e.account)}),av(this.initialized,this.ssoSilentMeasurement),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(ea.EventType.SSO_SILENT_START,rg.InteractionType.Silent,o),this.canUsePlatformBroker(o)?(this.ssoSilentMeasurement?.add({isPlatformBrokerRequest:!0}),t=this.acquireTokenNative(o,rg.ApiId.ssoSilent).catch(e=>{if(this.ssoSilentMeasurement?.add({brokerErrorName:e.name,brokerErrorCode:e.errorCode}),e instanceof s$&&sj(e))return this.platformAuthProvider=void 0,this.createSilentIframeClient(o.correlationId).acquireToken(o);throw e})):t=this.createSilentIframeClient(o.correlationId).acquireToken(o),t.then(e=>(this.eventHandler.emitEvent(ea.EventType.SSO_SILENT_SUCCESS,rg.InteractionType.Silent,e),this.ssoSilentMeasurement?.end({success:!0,accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length,accountType:aC(e.account)}),e)).catch(e=>{throw this.eventHandler.emitEvent(ea.EventType.SSO_SILENT_FAILURE,rg.InteractionType.Silent,null,e),this.ssoSilentMeasurement?.end({success:!1},e),e}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenByCode(e){let t=this.getRequestCorrelationId(e);this.logger.trace("acquireTokenByCode called",t);let r=this.performanceClient.startMeasurement("acquireTokenByCode",t);av(this.initialized,r),this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_BY_CODE_START,rg.InteractionType.Silent,e),r.add({scenarioId:e.scenarioId});try{if(e.code&&e.nativeAccountId)throw oi(rX);if(e.code){let o=e.code,n=this.hybridAuthCodeResponses.get(o);return n?(this.logger.verbose("Existing acquireTokenByCode request found",t),r.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",t),n=this.acquireTokenByCodeAsync({...e,correlationId:t}).then(e=>(this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS,rg.InteractionType.Silent,e),this.hybridAuthCodeResponses.delete(o),r.end({success:!0,accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length,accountType:aC(e.account)}),e)).catch(e=>{throw this.hybridAuthCodeResponses.delete(o),this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE,rg.InteractionType.Silent,null,e),r.end({success:!1},e),e}),this.hybridAuthCodeResponses.set(o,n)),await n}if(e.nativeAccountId)if(this.canUsePlatformBroker(e,e.nativeAccountId)){r.add({isPlatformBrokerRequest:!0});let o=await this.acquireTokenNative({...e,correlationId:t},rg.ApiId.acquireTokenByCode,e.nativeAccountId).catch(e=>{throw e instanceof s$&&sj(e)&&(this.platformAuthProvider=void 0),r.add({brokerErrorName:e.name,brokerErrorCode:e.errorCode}),e});return r.end({accountType:aC(o.account),success:!0}),o}else throw oi(r0);else throw oi(rY)}catch(e){throw this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE,rg.InteractionType.Silent,null,e),r.end({success:!1},e),e}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement("acquireTokenByCodeAsync",e.correlationId),this.acquireTokenByCodeAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement);let t=this.createSilentAuthCodeClient(e.correlationId);return await t.acquireToken(e).then(e=>(this.acquireTokenByCodeAsyncMeasurement?.end({success:!0,fromCache:e.fromCache}),e)).catch(e=>{throw this.acquireTokenByCodeAsyncMeasurement?.end({success:!1},e),e}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenFromCache(e,t){switch(this.performanceClient.addQueueMeasurement(eA,e.correlationId),t){case rg.CacheLookupPolicy.Default:case rg.CacheLookupPolicy.Acce
7ssToken:case rg.CacheLookupPolicy.AccessTokenAndRefreshToken:let r=this.createSilentCacheClient(e.correlationId);return iB(r.acquireToken.bind(r),ed,this.logger,this.performanceClient,e.correlationId)(e);default:throw(0,tx.createClientAuthError)(iE.tokenRefreshRequired)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(el,e.correlationId),t){case rg.CacheLookupPolicy.Default:case rg.CacheLookupPolicy.AccessTokenAndRefreshToken:case rg.CacheLookupPolicy.RefreshToken:case rg.CacheLookupPolicy.RefreshTokenAndNetwork:let r=this.createSilentRefreshClient(e.correlationId);return iB(r.acquireToken.bind(r),ep,this.logger,this.performanceClient,e.correlationId)(e);default:throw(0,tx.createClientAuthError)(iE.tokenRefreshRequired)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(ek,e.correlationId);let t=this.createSilentIframeClient(e.correlationId);return iB(t.acquireToken.bind(t),eg,this.logger,this.performanceClient,e.correlationId)(e)}async logout(e){let t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(e){let t=this.getRequestCorrelationId(e);return ic(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNOUT),this.createRedirectClient(t).logout(e)}logoutPopup(e){try{let t=this.getRequestCorrelationId(e);return ia(this.initialized),this.browserStorage.setInteractionInProgress(!0,rg.INTERACTION_TYPE.SIGNOUT),this.createPopupClient(t).logout(e).finally(()=>{this.browserStorage.setInteractionInProgress(!1)})}catch(e){return Promise.reject(e)}}async clearCache(e){if(!this.isBrowserEnvironment)return void this.logger.info("in non-browser environment, returning early.");let t=this.getRequestCorrelationId(e);return this.createSilentCacheClient(t).logout(e)}getAllAccounts(e){var t,r,o;let n=this.getRequestCorrelationId();return t=this.logger,r=this.browserStorage,o=this.isBrowserEnvironment,t.verbose("getAllAccounts called"),o?r.getAllAccounts(e||{},n):[]}getAccount(e){var t,r;let o,n=this.getRequestCorrelationId();return t=this.logger,r=this.browserStorage,(o=r.getAccountInfoFilteredBy(e,n))?(t.verbose("getAccount: Account matching provided filter found, returning"),o):(t.verbose("getAccount: No matching account found, returning null"),null)}getAccountByUsername(e){let t=this.getRequestCorrelationId();return function(e,t,r,o){if(t.trace("getAccountByUsername called"),!e)return t.warning("getAccountByUsername: No username provided"),null;let n=r.getAccountInfoFilteredBy({username:e},o);return n?(t.verbose("getAccountByUsername: Account matching username found, returning"),t.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${e}`),n):(t.verbose("getAccountByUsername: No matching account found, returning null"),null)}(e,this.logger,this.browserStorage,t)}getAccountByHomeId(e){let t=this.getRequestCorrelationId();return function(e,t,r,o){if(t.trace("getAccountByHomeId called"),!e)return t.warning("getAccountByHomeId: No homeAccountId provided"),null;let n=r.getAccountInfoFilteredBy({homeAccountId:e},o);return n?(t.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),t.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${e}`),n):(t.verbose("getAccountByHomeId: No matching account found, returning null"),null)}(e,this.logger,this.browserStorage,t)}getAccountByLocalId(e){let t=this.getRequestCorrelationId();return function(e,t,r,o){if(t.trace("getAccountByLocalId called"),!e)return t.warning("getAccountByLocalId: No localAccountId provided"),null;let n=r.getAccountInfoFilteredBy({localAccountId:e},o);return n?(t.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),t.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${e}`),n):(t.verbose("getAccountByLocalId: No matching account found, returning null"),null)}(e,this.logger,this.browserStorage,t)}setActiveAccount(e){var t;let r=this.getRequestCorrelationId();t=this.browserStorage,t.setActiveAccount(e,r)}getActiveAccount(){var e;let t=this.getRequestCorrelationId();return e=this.browserStorage,e.getActiveAccount(t)}async hydrateCache(e,t){this.logger.verbose("hydrateCache called");let r=i6.AccountEntity.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return(await this.browserStorage.setAccount(r,e.correlationId),e.fromNativeBroker)?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,t)):this.browserStorage.hydrateCache(e,t)}async acquireTokenNative(e,t,r,o){if(this.logger.trace("acquireTokenNative called"),!this.platformAuthProvider)throw oi(r4);return new sG(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.platformAuthProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e,o)}canUsePlatformBroker(e,t){if(this.logger.trace("canUsePlatformBroker called"),!this.platformAuthProvider)return this.logger.trace("canUsePlatformBroker: platform broker unavilable, returning false"),!1;if(!ae(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme))return this.logger.trace("canUsePlatformBroker: isBrokerAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case tH.PromptValue.NONE:case tH.PromptValue.CONSENT:case tH.PromptValue.LOGIN:this.logger.trace("canUsePlatformBroker: prompt is compatible with platform broker flow");break;default:return this.logger.trace(`canUsePlatformBroker: prompt = ${e.prompt} is not compatible with platform broker flow, returning false`),!1}return!!t||!!this.getNativeAccountId(e)||(this.logger.trace("canUsePlatformBroker: nativeAccountId is not available, returning false"),!1)}getNativeAccountId(e){let t=e.account||this.getAccount({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new at(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createRedirectClient(e){return new ar(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createSilentIframeClient(e){return new au(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,rg.ApiId.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createSilentCacheClient(e){return new sV(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.platformAuthProvider,e)}createSilentRefreshClient(e){return new ap(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.platformAuthProvider,e)}createSilentAuthCodeClient(e){return new ay(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,rg.ApiId.acquireTokenByCode,this.performanceClient,this.platformAuthProvider,e)}addEventCallback(e,t){return this.eventHandler.addEventCallback(e,t)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return ii(),this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}
7enableAccountStorageEvents(){this.config.cache.cacheLocation!==rg.BrowserCacheLocation.LocalStorage?this.logger.info("Account storage events are only available when cacheLocation is set to localStorage"):this.eventHandler.subscribeCrossTab()}disableAccountStorageEvents(){this.config.cache.cacheLocation!==rg.BrowserCacheLocation.LocalStorage?this.logger.info("Account storage events are only available when cacheLocation is set to localStorage"):this.eventHandler.unsubscribeCrossTab()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}isBrowserEnv(){return this.isBrowserEnvironment}getRequestCorrelationId(e){return e?.correlationId?e.correlationId:this.isBrowserEnvironment?nQ():tH.Constants.EMPTY_STRING}async loginRedirect(e){let t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||rg.DEFAULT_REQUEST})}loginPopup(e){let t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||rg.DEFAULT_REQUEST})}async acquireTokenSilent(e){let t=this.getRequestCorrelationId(e),r=this.performanceClient.startMeasurement("acquireTokenSilent",t);r.add({cacheLookupPolicy:e.cacheLookupPolicy,scenarioId:e.scenarioId}),av(this.initialized,r),this.logger.verbose("acquireTokenSilent called",t);let o=e.account||this.getActiveAccount();if(!o)throw oi(rD);return r.add({accountType:aC(o)}),this.acquireTokenSilentDeduped(e,o,t).then(o=>(r.end({success:!0,fromCache:o.fromCache,accessTokenSize:o.accessToken.length,idTokenSize:o.idToken.length}),{...o,state:e.state,correlationId:t})).catch(e=>{throw e instanceof ts.AuthError&&e.setCorrelationId(t),r.end({success:!1},e),e})}async acquireTokenSilentDeduped(e,t,r){let o=JSON.stringify(i3(this.config.auth.clientId,{...e,authority:e.authority||this.config.auth.authority,correlationId:r},t.homeAccountId)),n=this.activeSilentTokenRequests.get(o);if(void 0!==n)return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",r),this.performanceClient.addFields({deduped:!0},r),n;{this.logger.verbose("acquireTokenSilent called for the first time, storing active request",r),this.performanceClient.addFields({deduped:!1},r);let n=iB(this.acquireTokenSilentAsync.bind(this),eh,this.logger,this.performanceClient,r)({...e,correlationId:r},t);return this.activeSilentTokenRequests.set(o,n),n.finally(()=>{this.activeSilentTokenRequests.delete(o)})}}async acquireTokenSilentAsync(e,t){let r=()=>this.trackPageVisibility(e.correlationId);this.performanceClient.addQueueMeasurement(eh,e.correlationId),this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_START,rg.InteractionType.Silent,e),e.correlationId&&this.performanceClient.incrementFields({visibilityChangeCount:0},e.correlationId),document.addEventListener("visibilitychange",r);let o=await iB(sP,eR,this.logger,this.performanceClient,e.correlationId)(e,t,this.config,this.performanceClient,this.logger),n=e.cacheLookupPolicy||rg.CacheLookupPolicy.Default;return this.acquireTokenSilentNoIframe(o,n).catch(async e=>{var t,r;let i,s,a,c;if(t=e,r=n,i=!(t instanceof i4.InteractionRequiredAuthError&&t.subError!==i8.badToken),s=t.errorCode===rg.BrowserConstants.INVALID_GRANT_ERROR||t.errorCode===iE.tokenRefreshRequired,a=i&&s||t.errorCode===i8.noTokensFound||t.errorCode===i8.refreshTokenExpired,c=rg.iFrameRenewalPolicies.includes(r),a&&c)if(this.activeIframeRequest)if(n===rg.CacheLookupPolicy.Skip)return this.logger.warning("Another iframe request is currently in progress and CacheLookupPolicy is set to Skip. This may result in degraded performance and/or reliability for both calls. Please consider changing the CacheLookupPolicy to take advantage of request queuing and token cache.",o.correlationId),iB(this.acquireTokenBySilentIframe.bind(this),ek,this.logger,this.performanceClient,o.correlationId)(o);else{let[t,r]=this.activeIframeRequest;this.logger.verbose(`Iframe request is already in progress, awaiting resolution for request with correlationId: ${r}`,o.correlationId);let i=this.performanceClient.startMeasurement("awaitConcurrentIframe",o.
7correlationId);i.add({awaitIframeCorrelationId:r});let s=await t;if(i.end({success:s}),s)return this.logger.verbose(`Parallel iframe request with correlationId: ${r} succeeded. Retrying cache and/or RT redemption`,o.correlationId),this.acquireTokenSilentNoIframe(o,n);throw this.logger.info(`Iframe request with correlationId: ${r} failed. Interaction is required.`),e}else{let e;return this.activeIframeRequest=[new Promise(t=>{e=t}),o.correlationId],this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",o.correlationId),iB(this.acquireTokenBySilentIframe.bind(this),ek,this.logger,this.performanceClient,o.correlationId)(o).then(t=>(e(!0),t)).catch(t=>{throw e(!1),t}).finally(()=>{this.activeIframeRequest=void 0})}throw e}).then(t=>(this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_SUCCESS,rg.InteractionType.Silent,t),e.correlationId&&this.performanceClient.addFields({fromCache:t.fromCache},e.correlationId),t)).catch(e=>{throw this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_FAILURE,rg.InteractionType.Silent,null,e),e}).finally(()=>{document.removeEventListener("visibilitychange",r)})}async acquireTokenSilentNoIframe(e,t){return ae(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme)&&e.account.nativeAccountId?(this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform"),this.performanceClient.addFields({isPlatformBrokerRequest:!0},e.correlationId),this.acquireTokenNative(e,rg.ApiId.acquireTokenSilent_silentFlow,e.account.nativeAccountId,t).catch(async t=>{if(this.performanceClient.addFields({brokerErrorName:t.name,brokerErrorCode:t.errorCode},e.correlationId),t instanceof s$&&sj(t))throw this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.platformAuthProvider=void 0,(0,tx.createClientAuthError)(iE.tokenRefreshRequired);throw t})):(this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow"),t===rg.CacheLookupPolicy.AccessToken&&this.logger.verbose("acquireTokenSilent - cache lookup policy set to AccessToken, attempting to acquire token from local cache"),iB(this.acquireTokenFromCache.bind(this),eA,this.logger,this.performanceClient,e.correlationId)(e,t).catch(r=>{if(t===rg.CacheLookupPolicy.AccessToken)throw r;return this.eventHandler.emitEvent(ea.EventType.ACQUIRE_TOKEN_NETWORK_START,rg.InteractionType.Silent,e),iB(this.acquireTokenByRefreshToken.bind(this),el,this.logger,this.performanceClient,e.correlationId)(e,t)}))}async preGeneratePkceCodes(e){return this.logger.verbose("Generating new PKCE codes"),this.pkceCode=await iB(s4,e7,this.logger,this.performanceClient,e)(this.performanceClient,this.logger,e),Promise.resolve()}getPreGeneratedPkceCodes(e){this.logger.verbose("Attempting to pick up pre-generated PKCE codes");let t=this.pkceCode?{...this.pkceCode}:void 0;return this.pkceCode=void 0,this.logger.verbose(`${t?"Found":"Did not find"} pre-generated PKCE codes`),this.performanceClient.addFields({usePreGeneratedPkce:!!t},e),t}logMultipleInstances(e){var t;let r,o,n,i=this.config.auth.clientId;window&&(window.msal=window.msal||{},window.msal.clientIds=window.msal.clientIds||[],window.msal.clientIds.length>0&&this.logger.verbose("There is already an instance of MSAL.js in the window."),window.msal.clientIds.push(i),t=this.logger,o=(r=window.msal?.clientIds||[]).length,(n=r.filter(e=>e===i).length)>1&&t.warning("There is already an instance of MSAL.js in the window with the same client id."),e.add({msalInstanceCount:o,sameClientIdInstanceCount:n}))}}var i9=i9,nP=nP,iE=tD,i9=i9,sH=sH;async function aI(e,t){let r=new iS(e);return await r.initialize(),aw.createController(r,t)}ts.AuthError,e.i(366509);var a_=e.i(984668),aT=e.i(662537);let{log:aA,logError:aS}=(0,f.createLogger)("authentication:AuthProvider"),aE="auth.token.acquire",ak=(0,H.createAuthFailureReporter)({component:"AuthProvider",discriminatorTag:"outcome",flow:aE}),ab=(0,H.createAuthBreadcrumbRecorder)({component:"AuthProvider",flow:aE}),aR="auth-timeout-redirect-attempted";function aP(){try{sessionStorage.removeItem(aR)}catch(e){aS("Failed to clear timeout redirect marker:",e)}}function aO(){}function aN(e){return!!e&&"object"==typeof e&&!!e.errorCode&&"string"==typeof e.errorCode}async function aM({event:e}){if(!aN(e.error))return void ak(e.error&&"object"==typeof e.error?e.error:Error("ACQUIRE_TOKEN_FAILURE event had a non-AuthError payload"),{discriminator:"unrecognized-error-shape",errorCode:(0,es.getErrorCode)(e.error),extra:{errorPayload:e.error,interactionType:e.interactionType},tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}});if("monitor_window_timeout"===e.error.errorCode){let t=function(){try{return"true"===sessionStorage.getItem(aR)?"attempted":"not-attempted"}catch(e){return aS("Failed to read timeout redirect marker:",e),"storage-unavailable"}}();if("storage-unavailable"===t){ab("monitor_window_timeout occurred but the redirect marker could not be read; staying on the page to avoid a redirect loop"),ak(e.error,{discriminator:"timeout-redirect-marker-read-failed",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}});return}if("attempted"===t){ab("monitor_window_timeout occurred again after a redirect attempt; staying on the page to avoid a redirect loop"),ak(e.error,{discriminator:"monitor-window-timeout-loop-prevented",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}});return}if(!function(){try{return sessionStorage.setItem(aR,"true"),!0}catch(e){return aS("Failed to set timeout redirect marker:",e),!1}}()){ab("monitor_window_timeout occurred but the redirect marker could not be written; staying on the page to avoid a redirect loop"),ak(e.error,{discriminator:"timeout-redirect-marker-write-failed",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}});return}ab("monitor_window_timeout occurred; clearing local cache and redirecting the user to B2C"),Z();try{await ax.clearCache()}catch(e){ak(e,{discriminator:"cache-clear-failed",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}})}try{await ax.loginRedirect({redirectUri:window.location.origin,scopes:i.scopes})}catch(e){ak(e,{discriminator:"login-redirect-failed",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}})}}else ak(e.error,{discriminator:"unhandled-error-code",tags:{eventType:"ACQUIRE_TOKEN_FAILURE"}})}let aL={[ea.EventType.LOGIN_FAILURE]:function({event:e,context:t}){if(!aN(e.error))return void aS("Unexpected event structure in LOGIN_FAILURE event",e);let r=e.error;aA("Login Failure errorCode:",r.errorCode);let o={interaction_required:aO,server_error:()=>(function({context:e,error:t}){e.setIsLoginFailureDialogOpen(!0),aS(`LOGIN_FAILURE:SERVER_ERROR [${t.errorCode}]`,t);try{aT.captureException(t,{extra:{errorCode:t.errorCode,errorMessage:t.errorMessage,timestamp:new Date().toISOString()},tags:{component:"AuthProvider",eventType:"LOGIN_FAILURE:SERVER_ERROR"}})}catch(e){aS("Failed to send error to Sentry:",e)}er("Starting comprehensive authentication storage cleanup"),Z(),ee();try{ax.clearCache(),er("Cleared MSAL cache")}catch(e){eo("Failed to clear MSAL cache:",e)}er("Authentication storage cleanup completed")})({context:t,error:r})}[r.errorCode];o&&o()},[ea.EventType.LOGIN_SUCCESS]:function({event:e,context:t}){var r;if(!((r=e.payload)&&"object"==typeof r&&r.account&&"object"==typeof r.account&&(void 0===r.state||"string"==typeof r.state)&&1))return void aS("Unexpected payload structure in LOGIN_SUCCESS event",e.payload);let o=e.payload,n=o?.account,i=(0,m.tryParseJsonString)(o?.state??"{}");ax.setActiveAccount(n);try{localStorage.getItem(Y)||(localStorage.setItem(Y,Date.now().toString()),J("Login timestamp was set in local storage"))}catch(e){G(e,{discriminator:"setLoginTimestamp",tags:{consequence:"session-recovery-unavailable"}})}aA("set login timestamp"),ee(),aP(),i?.action&&t.handleAuthenticationAction(i)},[ea.EventType.LOGOUT_SUCCESS]:function({event:e,context:t}){t.resetAiChatStore(),t.resetEbtBalanceEnquiry(),Z(),ee(),aP()},[ea.EventType.ACQUIRE_TOKEN_FAILURE]:aM},ax=new class e{static async createPublicClientApplication(t){let r=await aI(t);return new e(t,r)}constructor(e,t){this.isBroker=!1,this.controller=t||new aw(new iS(e))}async initialize(e){return this.controller.initialize(e,this.isBroker)}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}
7acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e,t){return this.controller.addEventCallback(e,t)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccount(e){return this.controller.getAccount(e)}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(e){return this.controller.getAllAccounts(e)}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}clearCache(e){return this.controller.clearCache(e)}}({auth:{authority:"https://myaccount.wegmans.com/wegmansonline.onmicrosoft.com/B2C_1A_WEGMANSSIGNUPSIGNINWITHPHONEVERIFICATION",clientId:"38c78f8d-d124-4796-8430-1cd476d9a982",knownAuthorities:["myaccount.wegmans.com"],postLogoutRedirectUri:"/",redirectUri:"https://www.wegmans.com"},cache:{cacheLocation:"localStorage"}});e.s(["AuthProvider",0,function(e){let i,s,a,c,{children:l}=e,[u,d]=(0,C.useState)(!1),[g,p]=(0,C.useState)(null),{impersonationToken:m}=((s=(i=(window.location.hash||"").replace(/^#/,""))?new URLSearchParams(i).get("access_token")??"":"")&&s!==r?(B("checking for impersonation token"),r=s,t=function(e){let t;try{t=(0,F.default)(e)}catch(t){K(t,{discriminator:"undecodable-token",extra:{accessTokenLength:e.length}});return}return t?.wegmans_displayName?(B("impersonation token detected from URL"),e):void B("access token is not an impersonation token")}(s),$=!0):$||(B("not impersonating"),$=!0),a=t,c=(0,q.useRouter)(),(0,C.useEffect)(()=>{a&&c.replace("/")},[c,a]),{impersonationToken:a}),f=(0,ei.useCheckoutStore)(e=>e.resetEbtBalanceEnquiry),y=(0,en.useAIChatStore)(e=>e.reset);return(0,C.useEffect)(()=>{(async()=>{try{if(aA("Initializing Public Client Application with enhanced account detection"),await ax.initialize(),m)return void aA("Impersonation token found, skipping MSAL account detection and redirect fallback");let e=await et(ax);e&&(aA("Setting active account from enhanced detection"),ax.setActiveAccount(e))}catch(e){aS("Failed to initialize PublicClientApplication:",e)}})()},[m]),(0,C.useEffect)(()=>{let e={setIsLoginFailureDialogOpen:d,resetEbtBalanceEnquiry:f,resetAiChatStore:y,handleAuthenticationAction:p},t=ax.addEventCallback(t=>{aA("pca eventType:",t.eventType),t.eventType in aL&&aL[t.eventType]({event:t,context:e})});return()=>{t&&ax.removeEventCallback(t)}},[f,d,y]),(0,o.jsx)(a_.MsalProvider,{instance:ax,children:(0,o.jsxs)(n.AuthContextProvider,{impersonationToken:m,children:[l,(0,o.jsx)(h,{isOpen:u,onClose:()=>d(!1)}),(0,o.jsx)(U,{}),(0,o.jsx)(R,{action:g,onComplete:()=>p(null)})]})})},"pca",0,ax],432507)},84429,949780,150871,469573,e=>{"use strict";let t=[0,2e3,1e4,3e4,null];class r{constructor(e){this._retryDelays=void 0!==e?[...e,null]:t}nextRetryDelayInMilliseconds(e){return this._retryDelays[e.previousRetryCount]}}class o{}o.Authorization="Authorization",o.Cookie="Cookie";class n{constructor(e,t,r){this.statusCode=e,this.statusText=t,this.content=r}}class i{get(e,t){return this.send({...t,method:"GET",url:e})}post(e,t){return this.send({...t,method:"POST",url:e})}delete(e,t){return this.send({...t,method:"DELETE",url:e})}getCookieString(e){return""}}class s extends i{constructor(e,t){super(),this._innerClient=e,this._accessTokenFactory=t}async send(e){let t=!0;this._accessTokenFactory&&(!this._accessToken||e.url&&e.url.indexOf("/negotiate?")>0)&&(t=!1,this._accessToken=await this._accessTokenFactory()),this._setAuthorizationHeader(e);let r=await this._innerClient.send(e);return t&&401===r.statusCode&&this._accessTokenFactory?(this._accessToken=await this._accessTokenFactory(),this._setAuthorizationHeader(e),await this._innerClient.send(e)):r}_setAuthorizationHeader(e){e.headers||(e.headers={}),this._accessToken?e.headers[o.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[o.Authorization]&&delete e.headers[o.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}}
7class a extends Error{constructor(e,t){const r=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=r}}class c extends Error{constructor(e="A timeout occurred."){const t=new.target.prototype;super(e),this.__proto__=t}}class l extends Error{constructor(e="An abort occurred."){const t=new.target.prototype;super(e),this.__proto__=t}}class h extends Error{constructor(e,t){const r=new.target.prototype;super(e),this.transport=t,this.errorType="UnsupportedTransportError",this.__proto__=r}}class u extends Error{constructor(e,t){const r=new.target.prototype;super(e),this.transport=t,this.errorType="DisabledTransportError",this.__proto__=r}}class d extends Error{constructor(e,t){const r=new.target.prototype;super(e),this.transport=t,this.errorType="FailedToStartTransportError",this.__proto__=r}}class g extends Error{constructor(e){const t=new.target.prototype;super(e),this.errorType="FailedToNegotiateWithServerError",this.__proto__=t}}class p extends Error{constructor(e,t){const r=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=r}}(v=w||(w={}))[v.Trace=0]="Trace",v[v.Debug=1]="Debug",v[v.Information=2]="Information",v[v.Warning=3]="Warning",v[v.Error=4]="Error",v[v.Critical=5]="Critical",v[v.None=6]="None",e.s(["LogLevel",0,w],949780);var m,f,y,C,v,w,I,_,T,A,S=e.i(247167);class E{log(e,t){}}E.instance=new E;class k{static isRequired(e,t){if(null==e)throw Error(`The '${t}' argument is required.`)}static isNotEmpty(e,t){if(!e||e.match(/^\s*$/))throw Error(`The '${t}' argument should not be empty.`)}static isIn(e,t,r){if(!(e in t))throw Error(`Unknown ${r} value: ${e}.`)}}class b{static get isBrowser(){return!b.isNode&&"object"==typeof window&&"object"==typeof window.document}static get isWebWorker(){return!b.isNode&&"object"==typeof self&&"importScripts"in self}static get isReactNative(){return!b.isNode&&"object"==typeof window&&void 0===window.document}static get isNode(){return void 0!==S.default&&S.default.release&&"node"===S.default.release.name}}function R(e,t){let r,o,n="";return P(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${r=new Uint8Array(e),o="",r.forEach(e=>{let t=e<16?"0":"";o+=`0x${t}${e.toString(16)} `}),o.substr(0,o.length-1)}'`)):"string"==typeof e&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function P(e){return e&&"u">typeof ArrayBuffer&&(e instanceof ArrayBuffer||e.constructor&&"ArrayBuffer"===e.constructor.name)}async function O(e,t,r,o,n,i){let s={},[a,c]=L();s[a]=c,e.log(w.Trace,`(${t} transport) sending data. ${R(n,i.logMessageContent)}.`);let l=P(n)?"arraybuffer":"text",h=await r.post(o,{content:n,headers:{...s,...i.headers},responseType:l,timeout:i.timeout,withCredentials:i.withCredentials});e.log(w.Trace,`(${t} transport) request complete. Response status: ${h.statusCode}.`)}class N{constructor(e,t){this._subject=e,this._observer=t}dispose(){let e=this._subject.observers.indexOf(this._observer);e>-1&&this._subject.observers.splice(e,1),0===this._subject.observers.length&&this._subject.cancelCallback&&this._subject.cancelCallback().catch(e=>{})}}class M{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){let r=`[${new Date().toISOString()}] ${w[e]}: ${t}`;switch(e){case w.Critical:case w.Error:this.out.error(r);break;case w.Warning:this.out.warn(r);break;case w.Information:this.out.info(r);break;default:this.out.log(r)}}}}function L(){var e,t,r,o;let n,i,s="X-SignalR-User-Agent";return b.isNode&&(s="User-Agent"),[s,(e="8.0.17",t=function(){if(!b.isNode)return"";switch(S.default.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return S.default.platform}}(),r=b.isNode?"NodeJS":"Browser",o=function(){if(b.isNode)return S.default.versions.node}(),n="Microsoft SignalR/",i=e.split("."),n+=`${i[0]}.${i[1]} (${e}; `,t&&""!==t?n+=`${t}; `:n+="Unknown OS; ",n+=`${r}`,o?n+=`; ${o}`:n+="; Unknown Runtime Version",n+=")")]}function x(e){return e.stack?e.stack:e.message?e.message:`${e}`}class D extends i{constructor(t){if(super(),this._logger=t,"u"<typeof fetch||b.isNode){const t="function"==typeof __webpack_require__?__non_webpack_require__:e.z;this._jar=new(t("tough-cookie")).CookieJar,"u"<typeof fetch?this._fetchType=t("node-fetch"):this._fetchType=fetch,this._fetchType=t("fetch-cookie")(this._fetchType,this._jar)}else this._fetchType=fetch.bind("u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:e.g);if("u"<typeof AbortController){const t="function"==typeof __webpack_require__?__non_webpack_require__:e.z;this._abortControllerType=t("abort-controller")}else this._abortControllerType=AbortController}async send(e){let t,r;if(e.abortSignal&&e.abortSignal.aborted)throw new l;if(!e.method)throw Error("No method defined.");if(!e.url)throw Error("No url defined.");let o=new this._abortControllerType;e.abortSignal&&(e.abortSignal.onabort=()=>{o.abort(),t=new l});let i=null;e.timeout&&(i=setTimeout(()=>{o.abort(),this._logger.log(w.Warning,"Timeout from HTTP request."),t=new c},e.timeout)),""===e.content&&(e.content=void 0),e.content&&(e.headers=e.headers||{},P(e.content)?e.headers["Content-Type"]="application/octet-stream":e.headers["Content-Type"]="text/plain;charset=UTF-8");try{r=await this._fetchType(e.url,{body:e.content,cache:"no-cache",credentials:!0===e.withCredentials?"include":"same-origin",headers:{"X-Requested-With":"XMLHttpRequest",...e.headers},method:e.method,mode:"cors",redirect:"follow",signal:o.signal})}catch(e){if(t)throw t;throw this._logger.log(w.Warning,`Error from HTTP request. ${e}.`),e}finally{i&&clearTimeout(i),e.abortSignal&&(e.abortSignal.onabort=null)}if(!r.ok)throw new a(await q(r,"text")||r.statusText,r.status);let s=q(r,e.responseType),h=await s;return new n(r.status,r.statusText,h)}getCookieString(e){let t="";return b.isNode&&this._jar&&this._jar.getCookies(e,(e,r)=>t=r.join("; ")),t}}function q(e,t){let r;switch(t){case"arraybuffer":r=e.arrayBuffer();break;case"text":default:r=e.text();break;case"blob":case"document":case"json":throw Error(`${t} is not supported.`)}return r}class U extends i{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new l):e.method?e.url?new Promise((t,r)=>{let o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=void 0===e.withCredentials||e.withCredentials,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),""===e.content&&(e.content=void 0),e.content&&(P(e.content)?o.setRequestHeader("Content-Type","application/octet-stream"):o.setRequestHeader("Content-Type","text/plain;charset=UTF-8"));let i=e.headers;
7i&&Object.keys(i).forEach(e=>{o.setRequestHeader(e,i[e])}),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=()=>{o.abort(),r(new l)}),e.timeout&&(o.timeout=e.timeout),o.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?t(new n(o.status,o.statusText,o.response||o.responseText)):r(new a(o.response||o.responseText||o.statusText,o.status))},o.onerror=()=>{this._logger.log(w.Warning,`Error from HTTP request. ${o.status}: ${o.statusText}.`),r(new a(o.statusText,o.status))},o.ontimeout=()=>{this._logger.log(w.Warning,"Timeout from HTTP request."),r(new c)},o.send(e.content)}):Promise.reject(Error("No url defined.")):Promise.reject(Error("No method defined."))}}class H extends i{constructor(e){if(super(),"u">typeof fetch||b.isNode)this._httpClient=new D(e);else if("u">typeof XMLHttpRequest)this._httpClient=new U(e);else throw Error("No usable HttpClient found.")}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new l):e.method?e.url?this._httpClient.send(e):Promise.reject(Error("No url defined.")):Promise.reject(Error("No method defined."))}getCookieString(e){return this._httpClient.getCookieString(e)}}(m=I||(I={}))[m.None=0]="None",m[m.WebSockets=1]="WebSockets",m[m.ServerSentEvents=2]="ServerSentEvents",m[m.LongPolling=4]="LongPolling",(f=_||(_={}))[f.Text=1]="Text",f[f.Binary=2]="Binary",e.s(["HttpTransportType",0,I,"TransferFormat",0,_],150871);class F{constructor(){this._isAborted=!1,this.onabort=null}abort(){!this._isAborted&&(this._isAborted=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this._isAborted}}class B{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,r){this._httpClient=e,this._logger=t,this._pollAbort=new F,this._options=r,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(k.isRequired(e,"url"),k.isRequired(t,"transferFormat"),k.isIn(t,_,"transferFormat"),this._url=e,this._logger.log(w.Trace,"(LongPolling transport) Connecting."),t===_.Binary&&"u">typeof XMLHttpRequest&&"string"!=typeof new XMLHttpRequest().responseType)throw Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");let[r,o]=L(),n={[r]:o,...this._options.headers},i={abortSignal:this._pollAbort.signal,headers:n,timeout:1e5,withCredentials:this._options.withCredentials};t===_.Binary&&(i.responseType="arraybuffer");let s=`${e}&_=${Date.now()}`;this._logger.log(w.Trace,`(LongPolling transport) polling: ${s}.`);let c=await this._httpClient.get(s,i);200!==c.statusCode?(this._logger.log(w.Error,`(LongPolling transport) Unexpected response code: ${c.statusCode}.`),this._closeError=new a(c.statusText||"",c.statusCode),this._running=!1):this._running=!0,this._receiving=this._poll(this._url,i)}async _poll(e,t){try{for(;this._running;)try{let r=`${e}&_=${Date.now()}`;this._logger.log(w.Trace,`(LongPolling transport) polling: ${r}.`);let o=await this._httpClient.get(r,t);204===o.statusCode?(this._logger.log(w.Information,"(LongPolling transport) Poll terminated by server."),this._running=!1):200!==o.statusCode?(this._logger.log(w.Error,`(LongPolling transport) Unexpected response code: ${o.statusCode}.`),this._closeError=new a(o.statusText||"",o.statusCode),this._running=!1):o.content?(this._logger.log(w.Trace,`(LongPolling transport) data received. ${R(o.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(o.content)):this._logger.log(w.Trace,"(LongPolling transport) Poll timed out, reissuing.")}catch(e){this._running?e instanceof c?this._logger.log(w.Trace,"(LongPolling transport) Poll timed out, reissuing."):(this._closeError=e,this._running=!1):this._logger.log(w.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(w.Trace,"(LongPolling transport) Polling complete."),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?O(this._logger,"LongPolling",this._httpClient,this._url,e,this._options):Promise.reject(Error("Cannot send until the transport is connected"))}async stop(){this._logger.log(w.Trace,"(LongPolling transport) Stopping polling."),this._running=!1,this._pollAbort.abort();try{let e;await this._receiving,this._logger.log(w.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);let t={},[r,o]=L();t[r]=o;let n={headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials};try{await this._httpClient.delete(this._url,n)}catch(t){e=t}e?e instanceof a&&(404===e.statusCode?this._logger.log(w.Trace,"(LongPolling transport) A 404 response was returned from sending a DELETE request."):this._logger.log(w.Trace,`(LongPolling transport) Error sending a DELETE request: ${e}`)):this._logger.log(w.Trace,"(LongPolling transport) DELETE request accepted.")}finally{this._logger.log(w.Trace,"(LongPolling transport) Stop finished."),this._raiseOnClose()}}_raiseOnClose(){if(this.onclose){let e="(LongPolling transport) Firing onclose event.";this._closeError&&(e+=" Error: "+this._closeError),this._logger.log(w.Trace,e),this.onclose(this._closeError)}}}class K{constructor(e,t,r,o){this._httpClient=e,this._accessToken=t,this._logger=r,this._options=o,this.onreceive=null,this.onclose
7=null}async connect(e,t){return k.isRequired(e,"url"),k.isRequired(t,"transferFormat"),k.isIn(t,_,"transferFormat"),this._logger.log(w.Trace,"(SSE transport) Connecting."),this._url=e,this._accessToken&&(e+=(0>e.indexOf("?")?"?":"&")+`access_token=${encodeURIComponent(this._accessToken)}`),new Promise((r,o)=>{let n,i=!1;if(t!==_.Text)return void o(Error("The Server-Sent Events transport only supports the 'Text' transfer format"));if(b.isBrowser||b.isWebWorker)n=new this._options.EventSource(e,{withCredentials:this._options.withCredentials});else{let t=this._httpClient.getCookieString(e),r={};r.Cookie=t;let[o,i]=L();r[o]=i,n=new this._options.EventSource(e,{withCredentials:this._options.withCredentials,headers:{...r,...this._options.headers}})}try{n.onmessage=e=>{if(this.onreceive)try{this._logger.log(w.Trace,`(SSE transport) data received. ${R(e.data,this._options.logMessageContent)}.`),this.onreceive(e.data)}catch(e){this._close(e);return}},n.onerror=e=>{i?this._close():o(Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},n.onopen=()=>{this._logger.log(w.Information,`SSE connected to ${this._url}`),this._eventSource=n,i=!0,r()}}catch(e){o(e);return}})}async send(e){return this._eventSource?O(this._logger,"SSE",this._httpClient,this._url,e,this._options):Promise.reject(Error("Cannot send until the transport is connected"))}stop(){return this._close(),Promise.resolve()}_close(e){this._eventSource&&(this._eventSource.close(),this._eventSource=void 0,this.onclose&&this.onclose(e))}}class ${constructor(e,t,r,o,n,i){this._logger=r,this._accessTokenFactory=t,this._logMessageContent=o,this._webSocketConstructor=n,this._httpClient=e,this.onreceive=null,this.onclose=null,this._headers=i}async connect(e,t){let r;return k.isRequired(e,"url"),k.isRequired(t,"transferFormat"),k.isIn(t,_,"transferFormat"),this._logger.log(w.Trace,"(WebSockets transport) Connecting."),this._accessTokenFactory&&(r=await this._accessTokenFactory()),new Promise((n,i)=>{let s;e=e.replace(/^http/,"ws");let a=this._httpClient.getCookieString(e),c=!1;if(b.isNode||b.isReactNative){let t={},[n,i]=L();t[n]=i,r&&(t[o.Authorization]=`Bearer ${r}`),a&&(t[o.Cookie]=a),s=new this._webSocketConstructor(e,void 0,{headers:{...t,...this._headers}})}else r&&(e+=(0>e.indexOf("?")?"?":"&")+`access_token=${encodeURIComponent(r)}`);s||(s=new this._webSocketConstructor(e)),t===_.Binary&&(s.binaryType="arraybuffer"),s.onopen=t=>{this._logger.log(w.Information,`WebSocket connected to ${e}.`),this._webSocket=s,c=!0,n()},s.onerror=e=>{let t=null;t="u">typeof ErrorEvent&&e instanceof ErrorEvent?e.error:"There was an error with the transport",this._logger.log(w.Information,`(WebSockets transport) ${t}.`)},s.onmessage=e=>{if(this._logger.log(w.Trace,`(WebSockets transport) data received. ${R(e.data,this._logMessageContent)}.`),this.onreceive)try{this.onreceive(e.data)}catch(e){this._close(e);return}},s.onclose=e=>{if(c)this._close(e);else i(Error("u">typeof ErrorEvent&&e instanceof ErrorEvent?e.error:"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled."))}})}send(e){return this._webSocket&&this._webSocket.readyState===this._webSocketConstructor.OPEN?(this._logger.log(w.Trace,`(WebSockets transport) sending data. ${R(e,this._logMessageContent)}.`),this._webSocket.send(e),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this._webSocket&&this._close(void 0),Promise.resolve()}_close(e){this._webSocket&&(this._webSocket.onclose=()=>{},this._webSocket.onmessage=()=>{},this._webSocket.onerror=()=>{},this._webSocket.close(),this._webSocket=void 0),this._logger.log(w.Trace,"(WebSockets transport) socket closed."),this.onclose&&(this._isCloseEvent(e)&&(!1===e.wasClean||1e3!==e.code)?this.onclose(Error(`WebSocket closed with status code: ${e.code} (${e.reason||"no reason given"}).`)):e instanceof Error?this.onclose(e):this.onclose())}_isCloseEvent(e){return e&&"boolean"==typeof e.wasClean&&"number"==typeof e.code}}class j{constructor(t,r={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,k.isRequired(t,"url"),this._logger=function(e){return void 0===e?new M(w.Information):null===e?E.instance:void 0!==e.log?e:new M(e)}(r.logger),this.baseUrl=this._resolveUrl(t),(r=r||{}).logMessageContent=void 0!==r.logMessageContent&&r.logMessageContent,"boolean"==typeof r.withCredentials||void 0===r.withCredentials)r.withCredentials=void 0===r.withCredentials||r.withCredentials;else throw Error("withCredentials option was not a 'boolean' or 'undefined' value");r.timeout=void 0===r.timeout?1e5:r.timeout;let o=null,n=null;if(b.isNode&&1){const t="function"==typeof __webpack_require__?__non_webpack_require__:e.z;o=t("ws"),n=t("eventsource")}!b.isNode&&"u">typeof WebSocket&&!r.WebSocket?r.WebSocket=WebSocket:b.isNode&&!r.WebSocket&&o&&(r.WebSocket=o),!b.isNode&&"u">typeof EventSource&&!r.EventSource?r.EventSource=EventSource:b.isNode&&!r.EventSource&&void 0!==n&&(r.EventSource=n),this._httpClient=new s(r.httpClient||new H(this._logger),r.accessTokenFactory),this._connectionState="Disconnected",this._connectionStarted=!1,this._options=r,this.onreceive=null,this.onclose
7=null}async start(e){if(e=e||_.Binary,k.isIn(e,_,"transferFormat"),this._logger.log(w.Debug,`Starting connection with transfer format '${_[e]}'.`),"Disconnected"!==this._connectionState)return Promise.reject(Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this._connectionState="Connecting",this._startInternalPromise=this._startInternal(e),await this._startInternalPromise,"Disconnecting"===this._connectionState){let e="Failed to start the HttpConnection before stop() was called.";return this._logger.log(w.Error,e),await this._stopPromise,Promise.reject(new l(e))}if("Connected"!==this._connectionState){let e="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this._logger.log(w.Error,e),Promise.reject(new l(e))}this._connectionStarted=!0}send(e){return"Connected"!==this._connectionState?Promise.reject(Error("Cannot send data if the connection is not in the 'Connected' State.")):(this._sendQueue||(this._sendQueue=new z(this.transport)),this._sendQueue.send(e))}async stop(e){return"Disconnected"===this._connectionState?(this._logger.log(w.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):"Disconnecting"===this._connectionState?(this._logger.log(w.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise):void(this._connectionState="Disconnecting",this._stopPromise=new Promise(e=>{this._stopPromiseResolver=e}),await this._stopInternal(e),await this._stopPromise)}async _stopInternal(e){this._stopError=e;try{await this._startInternalPromise}catch(e){}if(this.transport){try{await this.transport.stop()}catch(e){this._logger.log(w.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(w.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async _startInternal(e){let t=this.baseUrl;this._accessTokenFactory=this._options.accessTokenFactory,this._httpClient._accessTokenFactory=this._accessTokenFactory;try{if(this._options.skipNegotiation)if(this._options.transport===I.WebSockets)this.transport=this._constructTransport(I.WebSockets),await this._startTransport(t,e);else throw Error("Negotiation can only be skipped when using the WebSocket transport directly.");else{let r=null,o=0;do{if(r=await this._getNegotiationResponse(t),"Disconnecting"===this._connectionState||"Disconnected"===this._connectionState)throw new l("The connection was stopped during negotiation.");if(r.error)throw Error(r.error);if(r.ProtocolVersion)throw Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(r.url&&(t=r.url),r.accessToken){let e=r.accessToken;this._accessTokenFactory=()=>e,this._httpClient._accessToken=e,this._httpClient._accessTokenFactory=void 0}o++}while(r.url&&o<100)if(100===o&&r.url)throw Error("Negotiate redirection limit exceeded.");await this._createTransport(t,this._options.transport,r,e)}this.transport instanceof B&&(this.features.inherentKeepAlive=!0),"Connecting"===this._connectionState&&(this._logger.log(w.Debug,"The HttpConnection connected successfully."),this._connectionState="Connected")}catch(e){return this._logger.log(w.Error,"Failed to start the connection: "+e),this._connectionState="Disconnected",this.transport=void 0,this._stopPromiseResolver(),Promise.reject(e)}}async _getNegotiationResponse(e){let t={},[r,o]=L();t[r]=o;let n=this._resolveNegotiateUrl(e);this._logger.log(w.Debug,`Sending negotiation request: ${n}.`);try{let e=await this._httpClient.post(n,{content:"",headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials});if(200!==e.statusCode)return Promise.reject(Error(`Unexpected status code returned from negotiate '${e.statusCode}'`));let r=JSON.parse(e.content);if((!r.negotiateVersion||r.negotiateVersion<1)&&(r.connectionToken=r.connectionId),r.useStatefulReconnect&&!0!==this._options._useStatefulReconnect)return Promise.reject(new g("Client didn't negotiate Stateful Reconnect but the server did."));return r}catch(t){let e="Failed to complete negotiation with the server: "+t;return t instanceof a&&404===t.statusCode&&(e+=" Either this is not a SignalR endpoint or there is a proxy blocking the connection."),this._logger.log(w.Error,e),Promise.reject(new g(e))}}_createConnectUrl(e,t){return t?e+(-1===e.indexOf("?")?"?":"&")+`id=${t}`:e}async _createTransport(e,t,r,o){let n=this._createConnectUrl(e,r.connectionToken);if(this._isITransport(t)){this._logger.log(w.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=t,await this._startTransport(n,o),this.connectionId=r.connectionId;return}let i=[],s=r.availableTransports||[],a=r;for(let r of s){let s=this._resolveTransportOrError(r,t,o,(null==a?void 0:a.useStatefulReconnect)===!0);if(s instanceof Error)i.push(`${r.transport} failed:`),i.push(s);else if(this._isITransport(s)){if(this.transport=s,!a){try{a=await this._getNegotiationResponse(e)}catch(e){return Promise.reject(e)}n=this._createConnectUrl(e,a.connectionToken)}try{await this._startTransport(n,o),this.connectionId=a.connectionId;return}catch(e){if(this._logger.log(w.Error,`Failed to start the transport '${r.transport}': ${e}`),a=void 0,i.push(new d(`${r.transport} failed: ${e}`,I[r.transport])),"Connecting"!==this._connectionState){let e="Failed to select transport before stop() was called.";return this._logger.log(w.Debug,e),Promise.reject(new l(e))}}}}return i.length>0?Promise.reject(new p(`Unable to connect to the server with any of the available transports. ${i.join(" ")}`,i)):Promise.reject(Error("None of the transports supported by the client are supported by the server."))}
7_constructTransport(e){switch(e){case I.WebSockets:if(!this._options.WebSocket)throw Error("'WebSocket' is not supported in your environment.");return new $(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case I.ServerSentEvents:if(!this._options.EventSource)throw Error("'EventSource' is not supported in your environment.");return new K(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case I.LongPolling:return new B(this._httpClient,this._logger,this._options);default:throw Error(`Unknown transport: ${e}.`)}}_startTransport(e,t){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async r=>{let o=!1;if(!this.features.reconnect)return void this._stopConnection(r);try{this.features.disconnected(),await this.transport.connect(e,t),await this.features.resend()}catch{o=!0}o&&this._stopConnection(r)}:this.transport.onclose=e=>this._stopConnection(e),this.transport.connect(e,t)}_resolveTransportOrError(e,t,r,o){var n,i;let s=I[e.transport];if(null==s)return this._logger.log(w.Debug,`Skipping transport '${e.transport}' because it is not supported by this client.`),Error(`Skipping transport '${e.transport}' because it is not supported by this client.`);if(n=t,i=s,n&&(i&n)==0)return this._logger.log(w.Debug,`Skipping transport '${I[s]}' because it was disabled by the client.`),new u(`'${I[s]}' is disabled by the client.`,s);if(!(e.transferFormats.map(e=>_[e]).indexOf(r)>=0))return this._logger.log(w.Debug,`Skipping transport '${I[s]}' because it does not support the requested transfer format '${_[r]}'.`),Error(`'${I[s]}' does not support ${_[r]}.`);if(s===I.WebSockets&&!this._options.WebSocket||s===I.ServerSentEvents&&!this._options.EventSource)return this._logger.log(w.Debug,`Skipping transport '${I[s]}' because it is not supported in your environment.'`),new h(`'${I[s]}' is not supported in your environment.`,s);this._logger.log(w.Debug,`Selecting transport '${I[s]}'.`);try{return this.features.reconnect=s===I.WebSockets?o:void 0,this._constructTransport(s)}catch(e){return e}}_isITransport(e){return e&&"object"==typeof e&&"connect"in e}_stopConnection(e){if(this._logger.log(w.Debug,`HttpConnection.stopConnection(${e}) called while in state ${this._connectionState}.`),this.transport=void 0,e=this._stopError||e,this._stopError=void 0,"Disconnected"===this._connectionState)return void this._logger.log(w.Debug,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is already in the disconnected state.`);if("Connecting"===this._connectionState)throw this._logger.log(w.Warning,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is still in the connecting state.`),Error(`HttpConnection.stopConnection(${e}) was called while the connection is still in the connecting state.`);if("Disconnecting"===this._connectionState&&this._stopPromiseResolver(),e?this._logger.log(w.Error,`Connection disconnected with error '${e}'.`):this._logger.log(w.Information,"Connection disconnected."),this._sendQueue&&(this._sendQueue.stop().catch(e=>{this._logger.log(w.Error,`TransportSendQueue.stop() threw error '${e}'.`)}),this._sendQueue=void 0),this.connectionId=void 0,this._connectionState="Disconnected",this._connectionStarted){this._connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this._logger.log(w.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}_resolveUrl(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!b.isBrowser)throw Error(`Cannot resolve '${e}'.`);let t=window.document.createElement("a");return t.href=e,this._logger.log(w.Information,`Normalizing '${e}' to '${t.href}'.`),t.href}_resolveNegotiateUrl(e){let t=new URL(e);t.pathname.endsWith("/")?t.pathname+="negotiate":t.pathname+="/negotiate";let r=new URLSearchParams(t.searchParams);return r.has("negotiateVersion")||r.append("negotiateVersion",this._negotiateVersion.toString()),r.has("useStatefulReconnect")?"true"===r.get("useStatefulReconnect")&&(this._options._useStatefulReconnect=!0):!0===this._options._useStatefulReconnect&&r.append("useStatefulReconnect","true"),t.search=r.toString(),t.toString()}}class z{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new W,this._transportResult=new W,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||(this._transportResult=new W),this._transportResult.promise}stop(){return this._executing=!1,this._sendBufferedData.resolve(),this._sendLoopPromise}_bufferData(e){if(this._buffer.length&&typeof this._buffer[0]!=typeof e)throw Error(`Expected data to be of type ${typeof this._buffer} but was of type ${typeof e}`);this._buffer.push(e),this._sendBufferedData.resolve()}async _sendLoop(){for(;;){if(await this._sendBufferedData.promise,!this._executing){this._transportResult&&this._transportResult.reject("Connection stopped.");break}this._sendBufferedData=new W;let e=this._transportResult;this._transportResult=void 0;let t="string"==typeof this._buffer[0]?this._buffer.join(""):z._concatBuffers(this._buffer);this._buffer.length=0;try{await this._transport.send(t),e.resolve()}catch(t){e.reject(t)}}}static _concatBuffers(e){let t=new Uint8Array(e.map(e=>e.byteLength).reduce((e,t)=>
7e+t)),r=0;for(let o of e)t.set(new Uint8Array(o),r),r+=o.byteLength;return t.buffer}}class W{constructor(){this.promise=new Promise((e,t)=>([this._resolver,this._rejecter]=[e,t]))}resolve(){this._resolver()}reject(e){this._rejecter(e)}}class V{static write(e){return`${e}${V.RecordSeparator}`}static parse(e){if(e[e.length-1]!==V.RecordSeparator)throw Error("Message is incomplete.");let t=e.split(V.RecordSeparator);return t.pop(),t}}V.RecordSeparatorCode=30,V.RecordSeparator=String.fromCharCode(V.RecordSeparatorCode);class G{writeHandshakeRequest(e){return V.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,r;if(P(e)){let o=new Uint8Array(e),n=o.indexOf(V.RecordSeparatorCode);if(-1===n)throw Error("Message is incomplete.");let i=n+1;t=String.fromCharCode.apply(null,Array.prototype.slice.call(o.slice(0,i))),r=o.byteLength>i?o.slice(i).buffer:null}else{let o=e.indexOf(V.RecordSeparator);if(-1===o)throw Error("Message is incomplete.");let n=o+1;t=e.substring(0,n),r=e.length>n?e.substring(n):null}let o=JSON.parse(V.parse(t)[0]);if(o.type)throw Error("Expected a handshake response from the server.");return[r,o]}}(y=T||(T={}))[y.Invocation=1]="Invocation",y[y.StreamItem=2]="StreamItem",y[y.Completion=3]="Completion",y[y.StreamInvocation=4]="StreamInvocation",y[y.CancelInvocation=5]="CancelInvocation",y[y.Ping=6]="Ping",y[y.Close=7]="Close",y[y.Ack=8]="Ack",y[y.Sequence=9]="Sequence";class Q{constructor(){this.observers=[]}next(e){for(let t of this.observers)t.next(e)}error(e){for(let t of this.observers)t.error&&t.error(e)}complete(){for(let e of this.observers)e.complete&&e.complete()}subscribe(e){return this.observers.push(e),new N(this,e)}}class J{constructor(e,t,r){this._bufferSize=1e5,this._messages=[],this._totalMessageCount=0,this._waitForSequenceMessage=!1,this._nextReceivingSequenceId=1,this._latestReceivedSequenceId=0,this._bufferedByteCount=0,this._reconnectInProgress=!1,this._protocol=e,this._connection=t,this._bufferSize=r}async _send(e){let t=this._protocol.writeMessage(e),r=Promise.resolve();if(this._isInvocationMessage(e)){this._totalMessageCount++;let e=()=>{},o=()=>{};P(t)?this._bufferedByteCount+=t.byteLength:this._bufferedByteCount+=t.length,this._bufferedByteCount>=this._bufferSize&&(r=new Promise((t,r)=>{e=t,o=r})),this._messages.push(new Y(t,this._totalMessageCount,e,o))}try{this._reconnectInProgress||await this._connection.send(t)}catch{this._disconnected()}await r}_ack(e){let t=-1;for(let r=0;r<this._messages.length;r++){let o=this._messages[r];if(o._id<=e.sequenceId)t=r,P(o._message)?this._bufferedByteCount-=o._message.byteLength:this._bufferedByteCount-=o._message.length,o._resolver();else if(this._bufferedByteCount<this._bufferSize)o._resolver();else break}-1!==t&&(this._messages=this._messages.slice(t+1))}_shouldProcessMessage(e){if(this._waitForSequenceMessage)if(e.type!==T.Sequence)return!1;else return this._waitForSequenceMessage=!1,!0;if(!this._isInvocationMessage(e))return!0;let t=this._nextReceivingSequenceId;return(this._nextReceivingSequenceId++,t<=this._latestReceivedSequenceId)?(t===this._latestReceivedSequenceId&&this._ackTimer(),!1):(this._latestReceivedSequenceId=t,this._ackTimer(),!0)}_resetSequence(e){e.sequenceId>this._nextReceivingSequenceId?this._connection.stop(Error("Sequence ID greater than amount of messages we've received.")):this._nextReceivingSequenceId=e.sequenceId}_disconnected(){this._reconnectInProgress=!0,this._waitForSequenceMessage=!0}async _resend(){let e=0!==this._messages.length?this._messages[0]._id:this._totalMessageCount+1;for(let t of(await this._connection.send(this._protocol.writeMessage({type:T.Sequence,sequenceId:e})),this._messages))await this._connection.send(t._message);this._reconnectInProgress=!1}_dispose(e){for(let t of(null!=e||(e=Error("Unable to reconnect to server.")),this._messages))t._rejector(e)}_isInvocationMessage(e){switch(e.type){case T.Invocation:case T.StreamItem:case T.Completion:case T.StreamInvocation:case T.CancelInvocation:return!0;case T.Close:case T.Sequence:case T.Ping:case T.Ack:return!1}}_ackTimer(){void 0===this._ackTimerHandle&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:T.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}}class Y{constructor(e,t,r,o){this._message=e,this._id=t,this._resolver=r,this._rejector=o}}(C=A||(A={})).Disconnected="Disconnected",C.Connecting="Connecting",C.Connected="Connected",C.Disconnecting="Disconnecting",C.Reconnecting="Reconnecting";class X{static create(e,t,r,o,n,i,s){return new X(e,t,r,o,n,i,s)}constructor(e,t,r,o,n,i,s){this._nextKeepAlive=0,this._freezeEventListener=()=>{this._logger.log(w.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},k.isRequired(e,"connection"),k.isRequired(t,"logger"),k.isRequired(r,"protocol"),this.serverTimeoutInMilliseconds=null!=n?n:3e4,this.keepAliveIntervalInMilliseconds=null!=i?i:15e3,this._statefulReconnectBufferSize=null!=s?s:1e5,this._logger=t,this._protocol=r,this.connection=e,this._reconnectPolicy=o,this._handshakeProtocol=new G,this.connection.onreceive=e=>
7this._processIncomingData(e),this.connection.onclose=e=>this._connectionClosed(e),this._callbacks={},this._methods={},this._closedCallbacks=[],this._reconnectingCallbacks=[],this._reconnectedCallbacks=[],this._invocationId=0,this._receivedHandshakeResponse=!1,this._connectionState=A.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:T.Ping})}get state(){return this._connectionState}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(e){if(this._connectionState!==A.Disconnected&&this._connectionState!==A.Reconnecting)throw Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!e)throw Error("The HubConnection url must be a valid url.");this.connection.baseUrl=e}start(){return this._startPromise=this._startWithStateTransitions(),this._startPromise}async _startWithStateTransitions(){if(this._connectionState!==A.Disconnected)return Promise.reject(Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this._connectionState=A.Connecting,this._logger.log(w.Debug,"Starting HubConnection.");try{await this._startInternal(),b.isBrowser&&window.document.addEventListener("freeze",this._freezeEventListener),this._connectionState=A.Connected,this._connectionStarted=!0,this._logger.log(w.Debug,"HubConnection connected successfully.")}catch(e){return this._connectionState=A.Disconnected,this._logger.log(w.Debug,`HubConnection failed to start successfully because of error '${e}'.`),Promise.reject(e)}}async _startInternal(){this._stopDuringStartError=void 0,this._receivedHandshakeResponse=!1;let e=new Promise((e,t)=>{this._handshakeResolver=e,this._handshakeRejecter=t});await this.connection.start(this._protocol.transferFormat);try{let t=this._protocol.version;this.connection.features.reconnect||(t=1);let r={protocol:this._protocol.name,version:t};if(this._logger.log(w.Debug,"Sending handshake request."),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(r)),this._logger.log(w.Information,`Using HubProtocol '${this._protocol.name}'.`),this._cleanupTimeout(),this._resetTimeoutPeriod(),this._resetKeepAliveInterval(),await e,this._stopDuringStartError)throw this._stopDuringStartError;(this.connection.features.reconnect||0)&&(this._messageBuffer=new J(this._protocol,this.connection,this._statefulReconnectBufferSize),this.connection.features.disconnected=this._messageBuffer._disconnected.bind(this._messageBuffer),this.connection.features.resend=()=>{if(this._messageBuffer)return this._messageBuffer._resend()}),this.connection.features.inherentKeepAlive||await this._sendMessage(this._cachedPingMessage)}catch(e){throw this._logger.log(w.Debug,`Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`),this._cleanupTimeout(),this._cleanupPingTimer(),await this.connection.stop(e),e}}async stop(){let e=this._startPromise;this.connection.features.reconnect=!1,this._stopPromise=this._stopInternal(),await this._stopPromise;try{await e}catch(e){}}_stopInternal(e){if(this._connectionState===A.Disconnected)return this._logger.log(w.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===A.Disconnecting)return this._logger.log(w.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;let t=this._connectionState;return(this._connectionState=A.Disconnecting,this._logger.log(w.Debug,"Stopping HubConnection."),this._reconnectDelayHandle)?(this._logger.log(w.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===A.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new l("The connection was stopped before the hub handshake could complete."),this.connection.stop(e))}async _sendCloseMessage(){try{await this._sendWithProtocol(this._createCloseMessage())}catch{}}stream(e,...t){let r,[o,n]=this._replaceStreamingParams(t),i=this._createStreamInvocation(e,t,n),s=new Q;return s.cancelCallback=()=>{let e=this._createCancelInvocation(i.invocationId);return delete this._callbacks[i.invocationId],r.then(()=>this._sendWithProtocol(e))},this._callbacks[i.invocationId]=(e,t)=>{t?s.error(t):e&&(e.type===T.Completion?e.error?s.error(Error(e.error)):s.complete():s.next(e.item))},r=this._sendWithProtocol(i).catch(e=>{s.error(e),delete this._callbacks[i.invocationId]}),this._launchStreams(o,r),s}_sendMessage(e){return this._resetKeepAliveInterval(),this.connection.send(e)}_sendWithProtocol(e){return this._messageBuffer?this._messageBuffer._send(e):this._sendMessage(this._protocol.writeMessage(e))}send(e,...t){let[r,o]=this._replaceStreamingParams(t),n=this._sendWithProtocol(this._createInvocation(e,t,!0,o));return this._launchStreams(r,n),n}invoke(e,...t){let[r,o]=this._replaceStreamingParams(t),n=this._createInvocation(e,t,!1,o);return new Promise((e,t)=>
7{this._callbacks[n.invocationId]=(r,o)=>{o?t(o):r&&(r.type===T.Completion?r.error?t(Error(r.error)):e(r.result):t(Error(`Unexpected message type: ${r.type}`)))};let o=this._sendWithProtocol(n).catch(e=>{t(e),delete this._callbacks[n.invocationId]});this._launchStreams(r,o)})}on(e,t){e&&t&&(e=e.toLowerCase(),this._methods[e]||(this._methods[e]=[]),-1===this._methods[e].indexOf(t)&&this._methods[e].push(t))}off(e,t){if(!e)return;e=e.toLowerCase();let r=this._methods[e];if(r)if(t){let o=r.indexOf(t);-1!==o&&(r.splice(o,1),0===r.length&&delete this._methods[e])}else delete this._methods[e]}onclose(e){e&&this._closedCallbacks.push(e)}onreconnecting(e){e&&this._reconnectingCallbacks.push(e)}onreconnected(e){e&&this._reconnectedCallbacks.push(e)}_processIncomingData(e){if(this._cleanupTimeout(),this._receivedHandshakeResponse||(e=this._processHandshakeResponse(e),this._receivedHandshakeResponse=!0),e){for(let t of this._protocol.parseMessages(e,this._logger))if(!this._messageBuffer||this._messageBuffer._shouldProcessMessage(t))switch(t.type){case T.Invocation:this._invokeClientMethod(t).catch(e=>{this._logger.log(w.Error,`Invoke client method threw error: ${x(e)}`)});break;case T.StreamItem:case T.Completion:{let e=this._callbacks[t.invocationId];if(e){t.type===T.Completion&&delete this._callbacks[t.invocationId];try{e(t)}catch(e){this._logger.log(w.Error,`Stream callback threw error: ${x(e)}`)}}break}case T.Ping:break;case T.Close:{this._logger.log(w.Information,"Close message received from server.");let e=t.error?Error("Server returned an error on close: "+t.error):void 0;!0===t.allowReconnect?this.connection.stop(e):this._stopPromise=this._stopInternal(e);break}case T.Ack:this._messageBuffer&&this._messageBuffer._ack(t);break;case T.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(t);break;default:this._logger.log(w.Warning,`Invalid message type: ${t.type}.`)}}this._resetTimeoutPeriod()}_processHandshakeResponse(e){let t,r;try{[r,t]=this._handshakeProtocol.parseHandshakeResponse(e)}catch(r){let e="Error parsing handshake response: "+r;this._logger.log(w.Error,e);let t=Error(e);throw this._handshakeRejecter(t),t}if(t.error){let e="Server returned handshake error: "+t.error;this._logger.log(w.Error,e);let r=Error(e);throw this._handshakeRejecter(r),r}return this._logger.log(w.Debug,"Server handshake complete."),this._handshakeResolver(),r}_resetKeepAliveInterval(){this.connection.features.inherentKeepAlive||(this._nextKeepAlive=new Date().getTime()+this.keepAliveIntervalInMilliseconds,this._cleanupPingTimer())}_resetTimeoutPeriod(){if((!this.connection.features||!this.connection.features.inherentKeepAlive)&&(this._timeoutHandle=setTimeout(()=>this.serverTimeout(),this.serverTimeoutInMilliseconds),void 0===this._pingServerHandle)){let e=this._nextKeepAlive-new Date().getTime();e<0&&(e=0),this._pingServerHandle=setTimeout(async()=>{if(this._connectionState===A.Connected)try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}},e)}}serverTimeout(){this.connection.stop(Error("Server timeout elapsed without receiving a message from the server."))}async _invokeClientMethod(e){let t,r,o,n=e.target.toLowerCase(),i=this._methods[n];if(!i){this._logger.log(w.Warning,`No client method with the name '${n}' found.`),e.invocationId&&(this._logger.log(w.Warning,`No result given for '${n}' method and invocation ID '${e.invocationId}'.`),await this._sendWithProtocol(this._createCompletionMessage(e.invocationId,"Client didn't provide a result.",null)));return}let s=i.slice(),a=!!e.invocationId;for(let i of s)try{let s=t;t=await i.apply(this,e.arguments),a&&t&&s&&(this._logger.log(w.Error,`Multiple results provided for '${n}'. Sending error to server.`),o=this._createCompletionMessage(e.invocationId,"Client provided multiple results.",null)),r=void 0}catch(e){r=e,this._logger.log(w.Error,`A callback for the method '${n}' threw error '${e}'.`)}o?await this._sendWithProtocol(o):a?(r?o=this._createCompletionMessage(e.invocationId,`${r}`,null):void 0!==t?o=this._createCompletionMessage(e.invocationId,null,t):(this._logger.log(w.Warning,`No result given for '${n}' method and invocation ID '${e.invocationId}'.`),o=this._createCompletionMessage(e.invocationId,"Client didn't provide a result.",null)),await this._sendWithProtocol(o)):t&&this._logger.log(w.Error,`Result given for '${n}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(w.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new l("The underlying connection was closed before the hub handshake could complete."),this._handshakeResolver&&this._handshakeResolver(),this._cancelCallbacksWithError(e||Error("Invocation canceled due to the underlying connection being closed.")),this._cleanupTimeout(),this._cleanupPingTimer(),this._connectionState===A.Disconnecting?this._completeClose(e):this._connectionState===A.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===A.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=A.Disconnected,this._connectionStarted=!1,this._messageBuffer&&(this._messageBuffer._dispose(null!=e?e:Error("Connection closed.")),this._messageBuffer=void 0),b.isBrowser&&window.document.removeEventListener("freeze",this._freezeEventListener);try{this._closedCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(w.Error,`An onclose callback called with error '${e}' threw error '${t}'.`)}}}async _reconnect(e){let t=Date.now(),r=0,o=void 0!==e?e:Error("Attempting to re
7connect due to a unknown error."),n=this._getNextRetryDelay(r++,0,o);if(null===n){this._logger.log(w.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),this._completeClose(e);return}if(this._connectionState=A.Reconnecting,e?this._logger.log(w.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(w.Information,"Connection reconnecting."),0!==this._reconnectingCallbacks.length){try{this._reconnectingCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(w.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==A.Reconnecting)return void this._logger.log(w.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.")}for(;null!==n;){if(this._logger.log(w.Information,`Reconnect attempt number ${r} will start in ${n} ms.`),await new Promise(e=>{this._reconnectDelayHandle=setTimeout(e,n)}),this._reconnectDelayHandle=void 0,this._connectionState!==A.Reconnecting)return void this._logger.log(w.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");try{if(await this._startInternal(),this._connectionState=A.Connected,this._logger.log(w.Information,"HubConnection reconnected successfully."),0!==this._reconnectedCallbacks.length)try{this._reconnectedCallbacks.forEach(e=>e.apply(this,[this.connection.connectionId]))}catch(e){this._logger.log(w.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(w.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==A.Reconnecting){this._logger.log(w.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===A.Disconnecting&&this._completeClose();return}o=e instanceof Error?e:Error(e.toString()),n=this._getNextRetryDelay(r++,Date.now()-t,o)}}this._logger.log(w.Information,`Reconnect retries have been exhausted after ${Date.now()-t} ms and ${r} failed attempts. Connection disconnecting.`),this._completeClose()}_getNextRetryDelay(e,t,r){try{return this._reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:r})}catch(r){return this._logger.log(w.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${e}, ${t}) threw error '${r}'.`),null}}_cancelCallbacksWithError(e){let t=this._callbacks;this._callbacks={},Object.keys(t).forEach(r=>{let o=t[r];try{o(null,e)}catch(t){this._logger.log(w.Error,`Stream 'error' callback called with '${e}' threw error: ${x(t)}`)}})}_cleanupPingTimer(){this._pingServerHandle&&(clearTimeout(this._pingServerHandle),this._pingServerHandle=void 0)}_cleanupTimeout(){this._timeoutHandle&&clearTimeout(this._timeoutHandle)}_createInvocation(e,t,r,o){if(r)if(0!==o.length)return{arguments:t,streamIds:o,target:e,type:T.Invocation};else return{arguments:t,target:e,type:T.Invocation};{let r=this._invocationId;return(this._invocationId++,0!==o.length)?{arguments:t,invocationId:r.toString(),streamIds:o,target:e,type:T.Invocation}:{arguments:t,invocationId:r.toString(),target:e,type:T.Invocation}}}_launchStreams(e,t){if(0!==e.length)for(let r in t||(t=Promise.resolve()),e)e[r].subscribe({complete:()=>{t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(r)))},error:e=>{let o;o=e instanceof Error?e.message:e&&e.toString?e.toString():"Unknown error",t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(r,o)))},next:e=>{t=t.then(()=>this._sendWithProtocol(this._createStreamItemMessage(r,e)))}})}_replaceStreamingParams(e){let t=[],r=[];for(let o=0;o<e.length;o++){let n=e[o];if(this._isObservable(n)){let i=this._invocationId;this._invocationId++,t[i]=n,r.push(i.toString()),e.splice(o,1)}}return[t,r]}_isObservable(e){return e&&e.subscribe&&"function"==typeof e.subscribe}_createStreamInvocation(e,t,r){let o=this._invocationId;return(this._invocationId++,0!==r.length)?{arguments:t,invocationId:o.toString(),streamIds:r,target:e,type:T.StreamInvocation}:{arguments:t,invocationId:o.toString(),target:e,type:T.StreamInvocation}}_createCancelInvocation(e){return{invocationId:e,type:T.CancelInvocation}}_createStreamItemMessage(e,t){return{invocationId:e,item:t,type:T.StreamItem}}_createCompletionMessage(e,t,r){return t?{error:t,invocationId:e,type:T.Completion}:{invocationId:e,result:r,type:T.Completion}}_createCloseMessage(){return{type:T.Close}}}e.s(["HubConnection",0,X,"HubConnectionState",0,A],469573);class Z{constructor(){this.name="json",this.version=2,this.transferFormat=_.Text}parseMessages(e,t){if("string"!=typeof e)throw Error("Invalid input for JSON hub protocol. Expected a string.");if(!e)return[];null===t&&(t=E.instance);let r=V.parse(e),o=[];for(let e of r){let r=JSON.parse(e);if("number"!=typeof r.type)throw Error("Invalid payload.");switch(r.type){case T.Invocation:this._isInvocationMessage(r);break;case T.StreamItem:this._isStreamItemMessage(r);break;case T.Completion:this._isCompletionMessage(r);break;case T.Ping:case T.Close:break;case T.Ack:this._isAckMessage(r);break;case T.Sequence:this._isSequenceMessage(r);break;default:t.log(w.Information,"Unknown message type '"+r.type+"' ignored.");continue}o.push(r)}return o}writeMessage(e){return V.write(JSON.stringify(e))}_isInvocationMessage(e){this._assertNotEmptyString(e.target,"Invalid payload for Invocation message."),void 0!==e.invocationId&&this._assertNotEmptyString(e.invocationId,"Invalid payload for Invocation message.")}_isStreamItemMessage(e){if(this._assertNotEmptyString(e.invocationId,"Invalid payload for StreamItem message."),void 0===e.item)throw Error("Invalid payload for StreamItem message.")}_isCompletionMessage(e){if(e.result&&e.error)throw Error("Invalid payload for Completion message.");!e.result&&e.error&&this._assertNotEmptyString(e.error,"Invalid payload for Completion message."),this._assertNotEmptyString(e.invocationId,"Invalid payload for Completion message.")}_isAckMessage(e){if("number"!=typeof e.sequenceId)throw Error("Invalid SequenceId for Ack message.")}_isSequenceMessage(e){if("number"!=typeof e.sequenceId)throw Error("Invalid SequenceId for Sequence message.")}_assertNotEmptyString(e,t){if("string"!=typeof e||""===e)throw Error(t)}}let ee={trace:w.Trace,debug:w.Debug,info:w.Information,information:w.Information,warn:w.Warning,warning:w.Warning,error:w.Error,critical:w.Critical,none:w.None};e.s(["HubConnectionBuilder",0,class{configureLogging(e){if(k.isRequired(e,"logging"),void 0!==e.log)this.logger=e;else if("string"==typeof e){let t=function(e){let t=ee[e.toLowerCase()];if(void 0!==t)return t;throw Error(`Unknown log level: ${e}`)}(e);this.logger=new M(t)}else this.logger=new M(e);return this}withUrl(e,t){return k.isRequired(e,"url"),k.isNotEmpty(e,"url"),this.url=e,"object"==typeof t?this.httpConnectionOptions={...this.httpConnectionOptions,...t}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return k.isRequired(e,"protocol"),this.protocol=e,this}withAutomaticReconnect(e){if(this.reconnectPolicy)throw Error("A reconnectPolicy has already been set.");return e?Array.isArray(e)?this.reconnectPolicy=new r(e):this.reconnectPolicy=e:this.reconnectPolicy=new r,this}withServerTimeout(e){return k.isRequired(e,"milliseconds"),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return k.isRequired(e,"milliseconds"),this._keepAliveIntervalInMilliseconds=e,this}withStatefulReconnect(e){return void 0===this.httpConnectionOptions&&(this.httpConnectionOptions={}),this.httpConnectionOptions._useStatefulReconnect=!0,this._statefulReconnectBufferSize=null==e?void 0:e.bufferSize,this}build(){let e=this.httpConnectionOptions||{};if(void 0===e.logger&&(e.logger=this.logger),!this.url)throw Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");let t=new j(this.url,e);return X.create(t,this.logger||E.instance,this.protocol||new Z,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}}],84429)},279459,(e,t,r)=>{t.exports=e.r(618566)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.