{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../src/RequestMethod.ts","../../../../src/middleware/MiddlewareControl.ts","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../../../src/middleware/MiddlewareUtil.ts","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../../../../src/middleware/options/TelemetryHandlerOptions.ts","../../../src/error/AuthError.ts","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../../../../../src/middleware/options/RedirectHandlerOptions.ts","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../../../src/middleware/options/RetryHandlerOptions.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../src/GraphRequestUtil.ts","../../../../src/middleware/AuthenticationHandler.ts","../../../../src/middleware/HTTPMessageHandler.ts","../../../../src/middleware/RetryHandler.ts","../../../../src/middleware/RedirectHandler.ts","../../../../src/middleware/TelemetryHandler.ts","../../../src/Version.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../../../src/Constants.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../../../src/middleware/options/AuthenticationHandlerOptions.ts","../../../src/Range.ts","../../../../src/tasks/LargeFileUploadTask.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../src/HTTPClient.ts","../../../src/error/ServerError.ts","../../../src/error/InteractionRequiredAuthError.ts","../node_modules/buffer/index.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/path-to-regexp/index.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../node_modules/react-is/index.js","../../../../src/content/BatchRequestContent.ts","../../../../src/middleware/MiddlewareFactory.ts","../node_modules/process/browser.js","../../../../src/tasks/OneDriveLargeFileUploadTask.ts","../node_modules/react-dom/index.js","../node_modules/classnames/index.js","../node_modules/gud/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../../src/tasks/OneDriveLargeFileUploadTaskUtil.ts","../../../src/HTTPClientFactory.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/babel-preset-react-app/node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../../../../../src/middleware/options/ChaosStrategy.ts","../../../../src/content/BatchResponseContent.ts","../../../../../src/middleware/options/ChaosHandlerOptions.ts","../../../../../src/middleware/options/ChaosHandlerData.ts","../../../../src/middleware/ChaosHandler.ts","../../../../src/tasks/PageIterator.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../src/CustomAuthenticationProvider.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../../src/GraphError.ts","../../../src/ResponseType.ts","../../../src/GraphResponseHandler.ts","../../../src/GraphErrorHandler.ts","../../../src/GraphRequest.ts","../../../src/Client.ts","../../../src/ValidatePolyFilling.ts","../../../src/ImplicitMSALAuthenticationProvider.ts","../../../src/MSALAuthenticationProviderOptions.ts","../../../src/utils/Constants.ts","../../../src/utils/CryptoUtils.ts","../../../src/authority/Authority.ts","../../../src/utils/StringUtils.ts","../../../src/error/ClientAuthError.ts","../../../src/error/ClientConfigurationError.ts","../../src/ScopeSet.ts","../../../src/utils/UrlUtils.ts","../../../src/cache/AccessTokenKey.ts","../../../src/cache/AccessTokenValue.ts","../../src/ServerRequestParameters.ts","../../src/packageMetadata.ts","../../src/XHRClient.ts","../../../src/authority/TrustedAuthority.ts","../../src/Logger.ts","../../src/ClientInfo.ts","../../../src/utils/TimeUtils.ts","../../../src/utils/TokenUtils.ts","../../src/IdToken.ts","../../../src/cache/AccessTokenCacheItem.ts","../../../src/cache/BrowserStorage.ts","../../../src/utils/RequestUtils.ts","../../../src/cache/AuthCache.ts","../../src/Account.ts","../../../src/utils/WindowUtils.ts","../../../src/utils/ResponseUtils.ts","../../../src/authority/AuthorityFactory.ts","../../src/Configuration.ts","../../src/AuthResponse.ts","../../../src/telemetry/TelemetryConstants.ts","../../../src/telemetry/ApiEvent.ts","../../../src/telemetry/TelemetryUtils.ts","../../../src/telemetry/TelemetryEvent.ts","../../../src/telemetry/DefaultEvent.ts","../../../src/telemetry/HttpEvent.ts","../../../src/telemetry/TelemetryManager.ts","../../../src/utils/AuthCacheUtils.ts","../../src/UserAgentApplication.ts","../node_modules/reactstrap/es/utils.js","../node_modules/reactstrap/es/NavItem.js"],"names":["module","exports","require","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","_assertThisInitialized","self","ReferenceError","_inherits","subClass","superClass","_typeof","obj","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","Super","getPrototypeOf","isNativeReflectConstruct","NewTarget","Reflect","construct","_extends","source","asyncGeneratorStep","gen","_next","_throw","arg","info","error","_asyncToGenerator","fn","args","err","undefined","createEventEmitter","handlers","on","handler","off","filter","h","get","set","newValue","changedBits","forEach","index","React","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","Provider","_Component","_this","emitter","_inheritsLoose","_proto","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","x","render","children","Component","childContextTypes","PropTypes","object","isRequired","Consumer","_Component2","_this2","state","getValue","onUpdate","observedBits","setState","_proto2","componentDidMount","context","componentWillUnmount","isArray","contextTypes","name","createNamedContext","Router","location","computeRootMatch","path","url","params","isExact","pathname","_pendingLocation","unlisten","RouterContext","history","match","staticContext","cache","cacheCount","matchPath","options","exact","strict","sensitive","concat","matched","cacheKey","pathCache","keys","regexp","pathToRegexp","compilePath","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","BrowserRouter","createHistory","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","replace","href","method","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","isActive","locationProp","styleProp","style","toLocation","escapedPath","classnames","joinClassnames","code","desc","condition","message","Error","isAbsolute","charAt","spliceOne","list","k","resolvePathname","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","join","substr","valueOf","valueEqual","a","every","item","aValue","bValue","stripLeadingSlash","prefix","toLowerCase","indexOf","hasBasename","stripTrailingSlash","slice","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","listener","notifyListeners","_len","_key","canUseDOM","window","document","createElement","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","Math","random","toString","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","RetryHandlerOptions","_getPrototypeOf","o","_objectWithoutPropertiesLoose","excluded","sourceKeys","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","F","_e","it","normalCompletion","didErr","_e2","hostName","_setPrototypeOf","_construct","Parent","Class","Function","bind","_arrayLikeToArray","arr","len","arr2","_isNativeReflectConstruct","sham","Proxy","Date","_unsupportedIterableToArray","minLen","test","ServerError","ServerErrorMessage","InteractionRequiredAuthError","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","encodingOrOffset","allocUnsafe","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","isBuffer","checked","copy","buffer","val","type","data","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","isarray","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","tokens","defaultDelimiter","delimiter","exec","escaped","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","encode","pretty","encodeURIComponent","token","segment","JSON","stringify","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","propIsEnumerable","propertyIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","version","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","hasOwn","classNames","classes","argType","inner","default","reactIs","REACT_STATICS","contextType","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","property","receiver","for","q","r","u","w","z","aa","A","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","refs","updater","G","isReactComponent","forceUpdate","H","isPureReactComponent","I","current","J","K","L","ref","__self","__source","M","l","$$typeof","_owner","N","O","Q","keyPrefix","func","count","R","U","S","T","escape","ca","da","V","ba","W","X","Children","toArray","only","createRef","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","lazy","_ctor","_status","_result","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","Profiler","StrictMode","Suspense","cloneElement","createFactory","isValidElement","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Y","Z","ea","extractEvents","eventTypes","fa","phasedRegistrationNames","ha","registrationName","ia","ja","dependencies","ka","onError","la","ma","na","oa","pa","qa","sa","va","wa","currentTarget","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","disabled","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","Xa","tag","_debugOwner","_debugSource","fileName","lineNumber","return","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","Map","lb","mb","nb","ob","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","sb","tb","ub","vb","qb","rb","pb","removeAttribute","setAttribute","setAttributeNS","wb","nodeName","yb","_valueTracker","setValue","stopTracking","xb","zb","Ab","defaultChecked","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Eb","Fb","Gb","ownerDocument","activeElement","Ib","Hb","Jb","selected","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","textContent","xlinkHref","Ob","Pb","Qb","Rb","Sb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","removeChild","appendChild","Tb","lastChild","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","animation","transition","Zb","$b","ac","bc","cc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","child","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","Ac","delete","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","priority","hydrate","containerInfo","Gc","Hc","Ic","Jc","shift","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","parentNode","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","Interface","isDefaultPrevented","defaultPrevented","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","extend","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","view","detail","ad","relatedTarget","bd","keyCode","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","dd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","ed","Alt","Control","Meta","Shift","gd","getModifierState","hd","id","ctrlKey","shiftKey","altKey","metaKey","locale","which","jd","kd","ld","md","nd","screenX","screenY","clientX","clientY","pageX","pageY","button","buttons","fromElement","toElement","movementX","movementY","od","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","touches","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","wd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Jd","Kd","targetInst","ancestors","Ld","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","WeakMap","xc","Set","yc","has","add","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Ud","Vd","Wd","setProperty","Xd","menuitem","area","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","Yd","Zd","is","$d","ae","be","ce","de","node","nextSibling","fe","HTMLIFrameElement","contentWindow","ge","contentEditable","le","me","ne","autoFocus","oe","__html","pe","qe","se","previousSibling","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","documentMode","Ie","Je","Ke","Le","beforeInput","compositionEnd","compositionStart","compositionUpdate","Me","Ne","Oe","Pe","Se","Qe","char","Re","Te","color","date","datetime","email","month","number","password","range","tel","text","time","week","Ue","Ve","change","We","Xe","Ye","Ze","$e","af","bf","cf","detachEvent","df","ef","attachEvent","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","defaultView","parentWindow","of","pf","qf","rf","sf","select","tf","uf","vf","wf","xf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","yf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","payload","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Sg","_reactInternalFiber","Pg","Qg","Rg","Tg","shouldComponentUpdate","Ug","Vg","UNSAFE_componentWillReceiveProps","Wg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Xg","Yg","_stringRef","Zg","$g","ah","bh","mode","elementType","ch","implementation","dh","eh","ta","fh","gh","hh","ih","jh","kh","lh","mh","documentElement","tagName","nh","oh","ph","qh","memoizedProps","revealOrder","rh","responder","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","dispatch","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","destroy","deps","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","pendingProps","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","vi","wi","pendingContext","Hi","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tail","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","stack","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","Qi","Xi","Yi","Zi","$i","insertBefore","_reactRootContainer","aj","wasMultiple","multiple","bj","display","cj","dj","ej","fj","element","gj","hj","ij","componentDidCatch","jj","componentStack","gk","kj","ceil","lj","mj","wj","xj","yj","zj","Aj","Bj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","timeoutMs","Kj","Lj","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createElementNS","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","ee","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Dh","dc","fd","hk","Eh","Fh","xk","Di","Ei","Fi","xd","Gi","kk","lk","mk","hidden","Va","nk","unstable_observedBits","pk","pendingChildren","qk","rk","sk","tk","uk","vk","wc","_internalRoot","wk","zk","hasAttribute","yk","Ak","Bk","unmount","querySelectorAll","form","ak","Ck","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Dk","Ek","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","delay","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bool","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","checkPropTypes","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","log","LN2","_toConsumableArray","arrayLikeToArray","unsupportedIterableToArray","_cache","Wrapper","gError","guidHolder","guidResponse","ClientAuthError","ClientAuthErrorMessage","ClientConfigurationError","ClientConfigurationErrorMessage","scopes","authEndpoint","pathArray","ServerRequestParameters","jsonResponse","policy","round","getTime","claims","BrowserStorage","Logger","logMessage","LogLevel","TelemetryEvent","API_CODE","API_EVENT_IDENTIFIER","apiCode","Constants","logger","verbose","globalCssModule","tagPropType","active","cssModule","NavItem","Tag","attributes","mapToCssModules"],"mappings":"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","file":"static/js/2.978b1a42.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","module.exports = require(\"regenerator-runtime\");\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @enum\r\n * Enum for RequestMethods\r\n * @property {string} GET - The get request type\r\n * @property {string} PATCH - The patch request type\r\n * @property {string} POST - The post request type\r\n * @property {string} PUT - The put request type\r\n * @property {string} DELETE - The delete request type\r\n */\r\nexport var RequestMethod;\r\n(function (RequestMethod) {\r\n RequestMethod[\"GET\"] = \"GET\";\r\n RequestMethod[\"PATCH\"] = \"PATCH\";\r\n RequestMethod[\"POST\"] = \"POST\";\r\n RequestMethod[\"PUT\"] = \"PUT\";\r\n RequestMethod[\"DELETE\"] = \"DELETE\";\r\n})(RequestMethod || (RequestMethod = {}));\r\n//# sourceMappingURL=RequestMethod.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * Class representing MiddlewareControl\r\n */\r\nexport class MiddlewareControl {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of MiddlewareControl\r\n * @param {MiddlewareOptions[]} [middlewareOptions = []] - The array of middlewareOptions\r\n * @returns The instance of MiddlewareControl\r\n */\r\n constructor(middlewareOptions = []) {\r\n // tslint:disable-next-line:ban-types\r\n this.middlewareOptions = new Map();\r\n for (const option of middlewareOptions) {\r\n const fn = option.constructor;\r\n this.middlewareOptions.set(fn, option);\r\n }\r\n }\r\n /**\r\n * @public\r\n * To get the middleware option using the class of the option\r\n * @param {Function} fn - The class of the strongly typed option class\r\n * @returns The middleware option\r\n * @example\r\n * // if you wanted to return the middleware option associated with this class (MiddlewareControl)\r\n * // call this function like this:\r\n * getMiddlewareOptions(MiddlewareControl)\r\n */\r\n // tslint:disable-next-line:ban-types\r\n getMiddlewareOptions(fn) {\r\n return this.middlewareOptions.get(fn);\r\n }\r\n /**\r\n * @public\r\n * To set the middleware options using the class of the option\r\n * @param {Function} fn - The class of the strongly typed option class\r\n * @param {MiddlewareOptions} option - The strongly typed middleware option\r\n * @returns nothing\r\n */\r\n // tslint:disable-next-line:ban-types\r\n setMiddlewareOptions(fn, option) {\r\n this.middlewareOptions.set(fn, option);\r\n }\r\n}\r\n//# sourceMappingURL=MiddlewareControl.js.map","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @constant\r\n * To generate the UUID\r\n * @returns The UUID string\r\n */\r\nexport const generateUUID = () => {\r\n let uuid = \"\";\r\n for (let j = 0; j < 32; j++) {\r\n if (j === 8 || j === 12 || j === 16 || j === 20) {\r\n uuid += \"-\";\r\n }\r\n uuid += Math.floor(Math.random() * 16).toString(16);\r\n }\r\n return uuid;\r\n};\r\n/**\r\n * @constant\r\n * To get the request header from the request\r\n * @param {RequestInfo} request - The request object or the url string\r\n * @param {FetchOptions|undefined} options - The request options object\r\n * @param {string} key - The header key string\r\n * @returns A header value for the given key from the request\r\n */\r\nexport const getRequestHeader = (request, options, key) => {\r\n let value = null;\r\n if (typeof Request !== \"undefined\" && request instanceof Request) {\r\n value = request.headers.get(key);\r\n }\r\n else if (typeof options !== \"undefined\" && options.headers !== undefined) {\r\n if (typeof Headers !== \"undefined\" && options.headers instanceof Headers) {\r\n value = options.headers.get(key);\r\n }\r\n else if (options.headers instanceof Array) {\r\n const headers = options.headers;\r\n for (let i = 0, l = headers.length; i < l; i++) {\r\n if (headers[i][0] === key) {\r\n value = headers[i][1];\r\n break;\r\n }\r\n }\r\n }\r\n else if (options.headers[key] !== undefined) {\r\n value = options.headers[key];\r\n }\r\n }\r\n return value;\r\n};\r\n/**\r\n * @constant\r\n * To set the header value to the given request\r\n * @param {RequestInfo} request - The request object or the url string\r\n * @param {FetchOptions|undefined} options - The request options object\r\n * @param {string} key - The header key string\r\n * @param {string } value - The header value string\r\n * @returns Nothing\r\n */\r\nexport const setRequestHeader = (request, options, key, value) => {\r\n if (typeof Request !== \"undefined\" && request instanceof Request) {\r\n request.headers.set(key, value);\r\n }\r\n else if (typeof options !== \"undefined\") {\r\n if (options.headers === undefined) {\r\n options.headers = new Headers({\r\n [key]: value,\r\n });\r\n }\r\n else {\r\n if (typeof Headers !== \"undefined\" && options.headers instanceof Headers) {\r\n options.headers.set(key, value);\r\n }\r\n else if (options.headers instanceof Array) {\r\n let i = 0;\r\n const l = options.headers.length;\r\n for (; i < l; i++) {\r\n const header = options.headers[i];\r\n if (header[0] === key) {\r\n header[1] = value;\r\n break;\r\n }\r\n }\r\n if (i === l) {\r\n options.headers.push([key, value]);\r\n }\r\n }\r\n else {\r\n Object.assign(options.headers, { [key]: value });\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * @constant\r\n * To append the header value to the given request\r\n * @param {RequestInfo} request - The request object or the url string\r\n * @param {FetchOptions|undefined} options - The request options object\r\n * @param {string} key - The header key string\r\n * @param {string } value - The header value string\r\n * @returns Nothing\r\n */\r\nexport const appendRequestHeader = (request, options, key, value) => {\r\n if (typeof Request !== \"undefined\" && request instanceof Request) {\r\n request.headers.append(key, value);\r\n }\r\n else if (typeof options !== \"undefined\") {\r\n if (options.headers === undefined) {\r\n options.headers = new Headers({\r\n [key]: value,\r\n });\r\n }\r\n else {\r\n if (typeof Headers !== \"undefined\" && options.headers instanceof Headers) {\r\n options.headers.append(key, value);\r\n }\r\n else if (options.headers instanceof Array) {\r\n options.headers.push([key, value]);\r\n }\r\n else if (options.headers === undefined) {\r\n options.headers = { [key]: value };\r\n }\r\n else if (options.headers[key] === undefined) {\r\n options.headers[key] = value;\r\n }\r\n else {\r\n options.headers[key] += `, ${value}`;\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * @constant\r\n * To clone the request with the new url\r\n * @param {string} url - The new url string\r\n * @param {Request} request - The request object\r\n * @returns A promise that resolves to request object\r\n */\r\nexport const cloneRequestWithNewUrl = (newUrl, request) => tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const body = request.headers.get(\"Content-Type\") ? yield request.blob() : yield Promise.resolve(undefined);\r\n const { method, headers, referrer, referrerPolicy, mode, credentials, cache, redirect, integrity, keepalive, signal } = request;\r\n return new Request(newUrl, { method, headers, body, referrer, referrerPolicy, mode, credentials, cache, redirect, integrity, keepalive, signal });\r\n});\r\n//# sourceMappingURL=MiddlewareUtil.js.map","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport { MiddlewareControl } from \"../MiddlewareControl\";\r\n/**\r\n * @enum\r\n * @property {number} NONE - The hexadecimal flag value for nothing enabled\r\n * @property {number} REDIRECT_HANDLER_ENABLED - The hexadecimal flag value for redirect handler enabled\r\n * @property {number} RETRY_HANDLER_ENABLED - The hexadecimal flag value for retry handler enabled\r\n * @property {number} AUTHENTICATION_HANDLER_ENABLED - The hexadecimal flag value for the authentication handler enabled\r\n */\r\nexport var FeatureUsageFlag;\r\n(function (FeatureUsageFlag) {\r\n FeatureUsageFlag[FeatureUsageFlag[\"NONE\"] = 0] = \"NONE\";\r\n FeatureUsageFlag[FeatureUsageFlag[\"REDIRECT_HANDLER_ENABLED\"] = 1] = \"REDIRECT_HANDLER_ENABLED\";\r\n FeatureUsageFlag[FeatureUsageFlag[\"RETRY_HANDLER_ENABLED\"] = 2] = \"RETRY_HANDLER_ENABLED\";\r\n FeatureUsageFlag[FeatureUsageFlag[\"AUTHENTICATION_HANDLER_ENABLED\"] = 4] = \"AUTHENTICATION_HANDLER_ENABLED\";\r\n})(FeatureUsageFlag || (FeatureUsageFlag = {}));\r\n/**\r\n * @class\r\n * @implements MiddlewareOptions\r\n * Class for TelemetryHandlerOptions\r\n */\r\nexport class TelemetryHandlerOptions {\r\n constructor() {\r\n /**\r\n * @private\r\n * A member to hold the OR of feature usage flags\r\n */\r\n this.featureUsage = FeatureUsageFlag.NONE;\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * To update the feature usage in the context object\r\n * @param {Context} context - The request context object containing middleware options\r\n * @param {FeatureUsageFlag} flag - The flag value\r\n * @returns nothing\r\n */\r\n static updateFeatureUsageFlag(context, flag) {\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(TelemetryHandlerOptions);\r\n }\r\n else {\r\n context.middlewareControl = new MiddlewareControl();\r\n }\r\n if (typeof options === \"undefined\") {\r\n options = new TelemetryHandlerOptions();\r\n context.middlewareControl.setMiddlewareOptions(TelemetryHandlerOptions, options);\r\n }\r\n options.setFeatureUsage(flag);\r\n }\r\n /**\r\n * @private\r\n * To set the feature usage flag\r\n * @param {FeatureUsageFlag} flag - The flag value\r\n * @returns nothing\r\n */\r\n setFeatureUsage(flag) {\r\n /* tslint:disable: no-bitwise */\r\n this.featureUsage = this.featureUsage | flag;\r\n /* tslint:enable: no-bitwise */\r\n }\r\n /**\r\n * @public\r\n * To get the feature usage\r\n * @returns A feature usage flag as hexadecimal string\r\n */\r\n getFeatureUsage() {\r\n return this.featureUsage.toString(16);\r\n }\r\n}\r\n//# sourceMappingURL=TelemetryHandlerOptions.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nexport var AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n noWindowObjectError: {\r\n code: \"no_window_object\",\r\n desc: \"No window object available. Details:\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorMessage) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode;\r\n _this.errorMessage = errorMessage;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n AuthError.createNoWindowObjectError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.noWindowObjectError.code, AuthErrorMessage.noWindowObjectError.desc + \" \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\r\nexport { AuthError };\r\n//# sourceMappingURL=AuthError.js.map","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * @implements MiddlewareOptions\r\n * A class representing RedirectHandlerOptions\r\n */\r\nexport class RedirectHandlerOptions {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of RedirectHandlerOptions\r\n * @param {number} [maxRedirects = RedirectHandlerOptions.DEFAULT_MAX_REDIRECTS] - The max redirects value\r\n * @param {ShouldRedirect} [shouldRedirect = RedirectHandlerOptions.DEFAULT_SHOULD_RETRY] - The should redirect callback\r\n * @returns An instance of RedirectHandlerOptions\r\n */\r\n constructor(maxRedirects = RedirectHandlerOptions.DEFAULT_MAX_REDIRECTS, shouldRedirect = RedirectHandlerOptions.DEFAULT_SHOULD_RETRY) {\r\n if (maxRedirects > RedirectHandlerOptions.MAX_MAX_REDIRECTS) {\r\n const error = new Error(`MaxRedirects should not be more than ${RedirectHandlerOptions.MAX_MAX_REDIRECTS}`);\r\n error.name = \"MaxLimitExceeded\";\r\n throw error;\r\n }\r\n if (maxRedirects < 0) {\r\n const error = new Error(`MaxRedirects should not be negative`);\r\n error.name = \"MinExpectationNotMet\";\r\n throw error;\r\n }\r\n this.maxRedirects = maxRedirects;\r\n this.shouldRedirect = shouldRedirect;\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * A member holding default max redirects value\r\n */\r\nRedirectHandlerOptions.DEFAULT_MAX_REDIRECTS = 5;\r\n/**\r\n * @private\r\n * @static\r\n * A member holding maximum max redirects value\r\n */\r\nRedirectHandlerOptions.MAX_MAX_REDIRECTS = 20;\r\n/**\r\n * @private\r\n * A member holding default shouldRedirect callback\r\n */\r\nRedirectHandlerOptions.DEFAULT_SHOULD_RETRY = () => true;\r\n//# sourceMappingURL=RedirectHandlerOptions.js.map","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * @implements MiddlewareOptions\r\n * Class for RetryHandlerOptions\r\n */\r\nexport class RetryHandlerOptions {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of RetryHandlerOptions\r\n * @param {number} [delay = RetryHandlerOptions.DEFAULT_DELAY] - The delay value in seconds\r\n * @param {number} [maxRetries = RetryHandlerOptions.DEFAULT_MAX_RETRIES] - The maxRetries value\r\n * @param {ShouldRetry} [shouldRetry = RetryHandlerOptions.DEFAULT_SHOULD_RETRY] - The shouldRetry callback function\r\n * @returns An instance of RetryHandlerOptions\r\n */\r\n constructor(delay = RetryHandlerOptions.DEFAULT_DELAY, maxRetries = RetryHandlerOptions.DEFAULT_MAX_RETRIES, shouldRetry = RetryHandlerOptions.DEFAULT_SHOULD_RETRY) {\r\n if (delay > RetryHandlerOptions.MAX_DELAY && maxRetries > RetryHandlerOptions.MAX_MAX_RETRIES) {\r\n const error = new Error(`Delay and MaxRetries should not be more than ${RetryHandlerOptions.MAX_DELAY} and ${RetryHandlerOptions.MAX_MAX_RETRIES}`);\r\n error.name = \"MaxLimitExceeded\";\r\n throw error;\r\n }\r\n else if (delay > RetryHandlerOptions.MAX_DELAY) {\r\n const error = new Error(`Delay should not be more than ${RetryHandlerOptions.MAX_DELAY}`);\r\n error.name = \"MaxLimitExceeded\";\r\n throw error;\r\n }\r\n else if (maxRetries > RetryHandlerOptions.MAX_MAX_RETRIES) {\r\n const error = new Error(`MaxRetries should not be more than ${RetryHandlerOptions.MAX_MAX_RETRIES}`);\r\n error.name = \"MaxLimitExceeded\";\r\n throw error;\r\n }\r\n else if (delay < 0 && maxRetries < 0) {\r\n const error = new Error(`Delay and MaxRetries should not be negative`);\r\n error.name = \"MinExpectationNotMet\";\r\n throw error;\r\n }\r\n else if (delay < 0) {\r\n const error = new Error(`Delay should not be negative`);\r\n error.name = \"MinExpectationNotMet\";\r\n throw error;\r\n }\r\n else if (maxRetries < 0) {\r\n const error = new Error(`MaxRetries should not be negative`);\r\n error.name = \"MinExpectationNotMet\";\r\n throw error;\r\n }\r\n this.delay = Math.min(delay, RetryHandlerOptions.MAX_DELAY);\r\n this.maxRetries = Math.min(maxRetries, RetryHandlerOptions.MAX_MAX_RETRIES);\r\n this.shouldRetry = shouldRetry;\r\n }\r\n /**\r\n * @public\r\n * To get the maximum delay\r\n * @returns A maximum delay\r\n */\r\n getMaxDelay() {\r\n return RetryHandlerOptions.MAX_DELAY;\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * A member holding default delay value in seconds\r\n */\r\nRetryHandlerOptions.DEFAULT_DELAY = 3;\r\n/**\r\n * @private\r\n * @static\r\n * A member holding default maxRetries value\r\n */\r\nRetryHandlerOptions.DEFAULT_MAX_RETRIES = 3;\r\n/**\r\n * @private\r\n * @static\r\n * A member holding maximum delay value in seconds\r\n */\r\nRetryHandlerOptions.MAX_DELAY = 180;\r\n/**\r\n * @private\r\n * @static\r\n * A member holding maximum maxRetries value\r\n */\r\nRetryHandlerOptions.MAX_MAX_RETRIES = 10;\r\n/**\r\n * @private\r\n * A member holding default shouldRetry callback\r\n */\r\nRetryHandlerOptions.DEFAULT_SHOULD_RETRY = () => true;\r\n//# sourceMappingURL=RetryHandlerOptions.js.map","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module GraphRequestUtil\r\n */\r\nimport { GRAPH_URLS } from \"./Constants\";\r\n/**\r\n * To hold list of OData query params\r\n */\r\nexport const oDataQueryNames = [\"$select\", \"$expand\", \"$orderby\", \"$filter\", \"$top\", \"$skip\", \"$skipToken\", \"$count\"];\r\n/**\r\n * To construct the URL by appending the segments with \"/\"\r\n * @param {string[]} urlSegments - The array of strings\r\n * @returns The constructed URL string\r\n */\r\nexport const urlJoin = (urlSegments) => {\r\n const removePostSlash = (s) => s.replace(/\\/+$/, \"\");\r\n const removePreSlash = (s) => s.replace(/^\\/+/, \"\");\r\n const joiner = (pre, cur) => [removePostSlash(pre), removePreSlash(cur)].join(\"/\");\r\n const parts = Array.prototype.slice.call(urlSegments);\r\n return parts.reduce(joiner);\r\n};\r\n/**\r\n * Serializes the content\r\n * @param {any} content - The content value that needs to be serialized\r\n * @returns The serialized content\r\n *\r\n * Note:\r\n * This conversion is required due to the following reasons:\r\n * Body parameter of Request method of isomorphic-fetch only accepts Blob, ArrayBuffer, FormData, TypedArrays string.\r\n * Node.js platform does not support Blob, FormData. Javascript File object inherits from Blob so it is also not supported in node. Therefore content of type Blob, File, FormData will only come from browsers.\r\n * Parallel to ArrayBuffer in javascript, node provides Buffer interface. Node's Buffer is able to send the arbitrary binary data to the server successfully for both Browser and Node platform. Whereas sending binary data via ArrayBuffer or TypedArrays was only possible using Browser. To support both Node and Browser, `serializeContent` converts TypedArrays or ArrayBuffer to `Node Buffer`.\r\n * If the data received is in JSON format, `serializeContent` converts the JSON to string.\r\n */\r\nexport const serializeContent = (content) => {\r\n const className = content && content.constructor && content.constructor.name;\r\n if (className === \"Buffer\" || className === \"Blob\" || className === \"File\" || className === \"FormData\" || typeof content === \"string\") {\r\n return content;\r\n }\r\n if (className === \"ArrayBuffer\") {\r\n content = Buffer.from(content);\r\n }\r\n else if (className === \"Int8Array\" || className === \"Int16Array\" || className === \"Int32Array\" || className === \"Uint8Array\" || className === \"Uint16Array\" || className === \"Uint32Array\" || className === \"Uint8ClampedArray\" || className === \"Float32Array\" || className === \"Float64Array\" || className === \"DataView\") {\r\n content = Buffer.from(content.buffer);\r\n }\r\n else {\r\n try {\r\n content = JSON.stringify(content);\r\n }\r\n catch (error) {\r\n throw new Error(\"Unable to stringify the content\");\r\n }\r\n }\r\n return content;\r\n};\r\n/**\r\n * Checks if the url is one of the service root endpoints for Microsoft Graph and Graph Explorer.\r\n * @param {string} url - The url to be verified\r\n * @returns {boolean} - Returns true if the url is a Graph URL\r\n */\r\nexport const isGraphURL = (url) => {\r\n // Valid Graph URL pattern - https://graph.microsoft.com/{version}/{resource}?{query-parameters}\r\n // Valid Graph URL example - https://graph.microsoft.com/v1.0/\r\n url = url.toLowerCase();\r\n if (url.indexOf(\"https://\") !== -1) {\r\n url = url.replace(\"https://\", \"\");\r\n // Find where the host ends\r\n const startofPortNoPos = url.indexOf(\":\");\r\n const endOfHostStrPos = url.indexOf(\"/\");\r\n let hostName = \"\";\r\n if (endOfHostStrPos !== -1) {\r\n if (startofPortNoPos !== -1 && startofPortNoPos < endOfHostStrPos) {\r\n hostName = url.substring(0, startofPortNoPos);\r\n return GRAPH_URLS.has(hostName);\r\n }\r\n // Parse out the host\r\n hostName = url.substring(0, endOfHostStrPos);\r\n return GRAPH_URLS.has(hostName);\r\n }\r\n }\r\n return false;\r\n};\r\n//# sourceMappingURL=GraphRequestUtil.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { MiddlewareControl } from \"./MiddlewareControl\";\r\nimport { appendRequestHeader } from \"./MiddlewareUtil\";\r\nimport { AuthenticationHandlerOptions } from \"./options/AuthenticationHandlerOptions\";\r\nimport { FeatureUsageFlag, TelemetryHandlerOptions } from \"./options/TelemetryHandlerOptions\";\r\n/**\r\n * @class\r\n * @implements Middleware\r\n * Class representing AuthenticationHandler\r\n */\r\nexport class AuthenticationHandler {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of AuthenticationHandler\r\n * @param {AuthenticationProvider} authenticationProvider - The authentication provider for the authentication handler\r\n */\r\n constructor(authenticationProvider) {\r\n this.authenticationProvider = authenticationProvider;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To execute the current middleware\r\n * @param {Context} context - The context object of the request\r\n * @returns A Promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(AuthenticationHandlerOptions);\r\n }\r\n let authenticationProvider;\r\n let authenticationProviderOptions;\r\n if (typeof options !== \"undefined\") {\r\n authenticationProvider = options.authenticationProvider;\r\n authenticationProviderOptions = options.authenticationProviderOptions;\r\n }\r\n if (typeof authenticationProvider === \"undefined\") {\r\n authenticationProvider = this.authenticationProvider;\r\n }\r\n const token = yield authenticationProvider.getAccessToken(authenticationProviderOptions);\r\n const bearerKey = `Bearer ${token}`;\r\n appendRequestHeader(context.request, context.options, AuthenticationHandler.AUTHORIZATION_HEADER, bearerKey);\r\n TelemetryHandlerOptions.updateFeatureUsageFlag(context, FeatureUsageFlag.AUTHENTICATION_HANDLER_ENABLED);\r\n return yield this.nextMiddleware.execute(context);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To set the next middleware in the chain\r\n * @param {Middleware} next - The middleware instance\r\n * @returns Nothing\r\n */\r\n setNext(next) {\r\n this.nextMiddleware = next;\r\n }\r\n}\r\n/**\r\n * @private\r\n * A member representing the authorization header name\r\n */\r\nAuthenticationHandler.AUTHORIZATION_HEADER = \"Authorization\";\r\n//# sourceMappingURL=AuthenticationHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @class\r\n * @implements Middleware\r\n * Class for HTTPMessageHandler\r\n */\r\nexport class HTTPMessageHandler {\r\n /**\r\n * @public\r\n * @async\r\n * To execute the current middleware\r\n * @param {Context} context - The request context object\r\n * @returns A promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n context.response = yield fetch(context.request, context.options);\r\n return;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=HTTPMessageHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { RequestMethod } from \"../RequestMethod\";\r\nimport { MiddlewareControl } from \"./MiddlewareControl\";\r\nimport { getRequestHeader, setRequestHeader } from \"./MiddlewareUtil\";\r\nimport { RetryHandlerOptions } from \"./options/RetryHandlerOptions\";\r\nimport { FeatureUsageFlag, TelemetryHandlerOptions } from \"./options/TelemetryHandlerOptions\";\r\n/**\r\n * @class\r\n * @implements Middleware\r\n * Class for RetryHandler\r\n */\r\nexport class RetryHandler {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of RetryHandler\r\n * @param {RetryHandlerOptions} [options = new RetryHandlerOptions()] - The retry handler options value\r\n * @returns An instance of RetryHandler\r\n */\r\n constructor(options = new RetryHandlerOptions()) {\r\n this.options = options;\r\n }\r\n /**\r\n *\r\n * @private\r\n * To check whether the response has the retry status code\r\n * @param {Response} response - The response object\r\n * @returns Whether the response has retry status code or not\r\n */\r\n isRetry(response) {\r\n return RetryHandler.RETRY_STATUS_CODES.indexOf(response.status) !== -1;\r\n }\r\n /**\r\n * @private\r\n * To check whether the payload is buffered or not\r\n * @param {RequestInfo} request - The url string or the request object value\r\n * @param {FetchOptions} options - The options of a request\r\n * @returns Whether the payload is buffered or not\r\n */\r\n isBuffered(request, options) {\r\n const method = typeof request === \"string\" ? options.method : request.method;\r\n const isPutPatchOrPost = method === RequestMethod.PUT || method === RequestMethod.PATCH || method === RequestMethod.POST;\r\n if (isPutPatchOrPost) {\r\n const isStream = getRequestHeader(request, options, \"Content-Type\") === \"application/octet-stream\";\r\n if (isStream) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * @private\r\n * To get the delay for a retry\r\n * @param {Response} response - The response object\r\n * @param {number} retryAttempts - The current attempt count\r\n * @param {number} delay - The delay value in seconds\r\n * @returns A delay for a retry\r\n */\r\n getDelay(response, retryAttempts, delay) {\r\n const getRandomness = () => Number(Math.random().toFixed(3));\r\n const retryAfter = response.headers !== undefined ? response.headers.get(RetryHandler.RETRY_AFTER_HEADER) : null;\r\n let newDelay;\r\n if (retryAfter !== null) {\r\n // tslint:disable: prefer-conditional-expression\r\n if (Number.isNaN(Number(retryAfter))) {\r\n newDelay = Math.round((new Date(retryAfter).getTime() - Date.now()) / 1000);\r\n }\r\n else {\r\n newDelay = Number(retryAfter);\r\n }\r\n // tslint:enable: prefer-conditional-expression\r\n }\r\n else {\r\n // Adding randomness to avoid retrying at a same\r\n newDelay = retryAttempts >= 2 ? this.getExponentialBackOffTime(retryAttempts) + delay + getRandomness() : delay + getRandomness();\r\n }\r\n return Math.min(newDelay, this.options.getMaxDelay() + getRandomness());\r\n }\r\n /**\r\n * @private\r\n * To get an exponential back off value\r\n * @param {number} attempts - The current attempt count\r\n * @returns An exponential back off value\r\n */\r\n getExponentialBackOffTime(attempts) {\r\n return Math.round((1 / 2) * (Math.pow(2, attempts) - 1));\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * To add delay for the execution\r\n * @param {number} delaySeconds - The delay value in seconds\r\n * @returns Nothing\r\n */\r\n sleep(delaySeconds) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const delayMilliseconds = delaySeconds * 1000;\r\n return new Promise((resolve) => setTimeout(resolve, delayMilliseconds));\r\n });\r\n }\r\n getOptions(context) {\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(this.options.constructor);\r\n }\r\n if (typeof options === \"undefined\") {\r\n options = Object.assign(new RetryHandlerOptions(), this.options);\r\n }\r\n return options;\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * To execute the middleware with retries\r\n * @param {Context} context - The context object\r\n * @param {number} retryAttempts - The current attempt count\r\n * @param {RetryHandlerOptions} options - The retry middleware options instance\r\n * @returns A Promise that resolves to nothing\r\n */\r\n executeWithRetry(context, retryAttempts, options) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n yield this.nextMiddleware.execute(context);\r\n if (retryAttempts < options.maxRetries && this.isRetry(context.response) && this.isBuffered(context.request, context.options) && options.shouldRetry(options.delay, retryAttempts, context.request, context.options, context.response)) {\r\n ++retryAttempts;\r\n setRequestHeader(context.request, context.options, RetryHandler.RETRY_ATTEMPT_HEADER, retryAttempts.toString());\r\n const delay = this.getDelay(context.response, retryAttempts, options.delay);\r\n yield this.sleep(delay);\r\n return yield this.executeWithRetry(context, retryAttempts, options);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To execute the current middleware\r\n * @param {Context} context - The context object of the request\r\n * @returns A Promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const retryAttempts = 0;\r\n const options = this.getOptions(context);\r\n TelemetryHandlerOptions.updateFeatureUsageFlag(context, FeatureUsageFlag.RETRY_HANDLER_ENABLED);\r\n return yield this.executeWithRetry(context, retryAttempts, options);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To set the next middleware in the chain\r\n * @param {Middleware} next - The middleware instance\r\n * @returns Nothing\r\n */\r\n setNext(next) {\r\n this.nextMiddleware = next;\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * A list of status codes that needs to be retried\r\n */\r\nRetryHandler.RETRY_STATUS_CODES = [\r\n 429,\r\n 503,\r\n 504,\r\n];\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the name of retry attempt header\r\n */\r\nRetryHandler.RETRY_ATTEMPT_HEADER = \"Retry-Attempt\";\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the name of retry after header\r\n */\r\nRetryHandler.RETRY_AFTER_HEADER = \"Retry-After\";\r\n//# sourceMappingURL=RetryHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { RequestMethod } from \"../RequestMethod\";\r\nimport { MiddlewareControl } from \"./MiddlewareControl\";\r\nimport { cloneRequestWithNewUrl } from \"./MiddlewareUtil\";\r\nimport { RedirectHandlerOptions } from \"./options/RedirectHandlerOptions\";\r\nimport { FeatureUsageFlag, TelemetryHandlerOptions } from \"./options/TelemetryHandlerOptions\";\r\n/**\r\n * @class\r\n * Class\r\n * @implements Middleware\r\n * Class representing RedirectHandler\r\n */\r\nexport class RedirectHandler {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of RedirectHandler\r\n * @param {RedirectHandlerOptions} [options = new RedirectHandlerOptions()] - The redirect handler options instance\r\n * @returns An instance of RedirectHandler\r\n */\r\n constructor(options = new RedirectHandlerOptions()) {\r\n this.options = options;\r\n }\r\n /**\r\n * @private\r\n * To check whether the response has the redirect status code or not\r\n * @param {Response} response - The response object\r\n * @returns A boolean representing whether the response contains the redirect status code or not\r\n */\r\n isRedirect(response) {\r\n return RedirectHandler.REDIRECT_STATUS_CODES.indexOf(response.status) !== -1;\r\n }\r\n /**\r\n * @private\r\n * To check whether the response has location header or not\r\n * @param {Response} response - The response object\r\n * @returns A boolean representing the whether the response has location header or not\r\n */\r\n hasLocationHeader(response) {\r\n return response.headers.has(RedirectHandler.LOCATION_HEADER);\r\n }\r\n /**\r\n * @private\r\n * To get the redirect url from location header in response object\r\n * @param {Response} response - The response object\r\n * @returns A redirect url from location header\r\n */\r\n getLocationHeader(response) {\r\n return response.headers.get(RedirectHandler.LOCATION_HEADER);\r\n }\r\n /**\r\n * @private\r\n * To check whether the given url is a relative url or not\r\n * @param {string} url - The url string value\r\n * @returns A boolean representing whether the given url is a relative url or not\r\n */\r\n isRelativeURL(url) {\r\n return url.indexOf(\"://\") === -1;\r\n }\r\n /**\r\n * @private\r\n * To check whether the authorization header in the request should be dropped for consequent redirected requests\r\n * @param {string} requestUrl - The request url value\r\n * @param {string} redirectUrl - The redirect url value\r\n * @returns A boolean representing whether the authorization header in the request should be dropped for consequent redirected requests\r\n */\r\n shouldDropAuthorizationHeader(requestUrl, redirectUrl) {\r\n const schemeHostRegex = /^[A-Za-z].+?:\\/\\/.+?(?=\\/|$)/;\r\n const requestMatches = schemeHostRegex.exec(requestUrl);\r\n let requestAuthority;\r\n let redirectAuthority;\r\n if (requestMatches !== null) {\r\n requestAuthority = requestMatches[0];\r\n }\r\n const redirectMatches = schemeHostRegex.exec(redirectUrl);\r\n if (redirectMatches !== null) {\r\n redirectAuthority = redirectMatches[0];\r\n }\r\n return typeof requestAuthority !== \"undefined\" && typeof redirectAuthority !== \"undefined\" && requestAuthority !== redirectAuthority;\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * To update a request url with the redirect url\r\n * @param {string} redirectUrl - The redirect url value\r\n * @param {Context} context - The context object value\r\n * @returns Nothing\r\n */\r\n updateRequestUrl(redirectUrl, context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n context.request = typeof context.request === \"string\" ? redirectUrl : yield cloneRequestWithNewUrl(redirectUrl, context.request);\r\n });\r\n }\r\n /**\r\n * @private\r\n * To get the options for execution of the middleware\r\n * @param {Context} context - The context object\r\n * @returns A options for middleware execution\r\n */\r\n getOptions(context) {\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(RedirectHandlerOptions);\r\n }\r\n if (typeof options === \"undefined\") {\r\n options = Object.assign(new RedirectHandlerOptions(), this.options);\r\n }\r\n return options;\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * To execute the next middleware and to handle in case of redirect response returned by the server\r\n * @param {Context} context - The context object\r\n * @param {number} redirectCount - The redirect count value\r\n * @param {RedirectHandlerOptions} options - The redirect handler options instance\r\n * @returns A promise that resolves to nothing\r\n */\r\n executeWithRedirect(context, redirectCount, options) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n yield this.nextMiddleware.execute(context);\r\n const response = context.response;\r\n if (redirectCount < options.maxRedirects && this.isRedirect(response) && this.hasLocationHeader(response) && options.shouldRedirect(response)) {\r\n ++redirectCount;\r\n if (response.status === RedirectHandler.STATUS_CODE_SEE_OTHER) {\r\n context.options.method = RequestMethod.GET;\r\n delete context.options.body;\r\n }\r\n else {\r\n const redirectUrl = this.getLocationHeader(response);\r\n if (!this.isRelativeURL(redirectUrl) && this.shouldDropAuthorizationHeader(response.url, redirectUrl)) {\r\n delete context.options.headers[RedirectHandler.AUTHORIZATION_HEADER];\r\n }\r\n yield this.updateRequestUrl(redirectUrl, context);\r\n }\r\n yield this.executeWithRedirect(context, redirectCount, options);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To execute the current middleware\r\n * @param {Context} context - The context object of the request\r\n * @returns A Promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const redirectCount = 0;\r\n const options = this.getOptions(context);\r\n context.options.redirect = RedirectHandler.MANUAL_REDIRECT;\r\n TelemetryHandlerOptions.updateFeatureUsageFlag(context, FeatureUsageFlag.REDIRECT_HANDLER_ENABLED);\r\n return yield this.executeWithRedirect(context, redirectCount, options);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To set the next middleware in the chain\r\n * @param {Middleware} next - The middleware instance\r\n * @returns Nothing\r\n */\r\n setNext(next) {\r\n this.nextMiddleware = next;\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the array of redirect status codes\r\n */\r\nRedirectHandler.REDIRECT_STATUS_CODES = [\r\n 301,\r\n 302,\r\n 303,\r\n 307,\r\n 308,\r\n];\r\n/**\r\n * @private\r\n * @static\r\n * A member holding SeeOther status code\r\n */\r\nRedirectHandler.STATUS_CODE_SEE_OTHER = 303;\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the name of the location header\r\n */\r\nRedirectHandler.LOCATION_HEADER = \"Location\";\r\n/**\r\n * @private\r\n * @static\r\n * A member representing the authorization header name\r\n */\r\nRedirectHandler.AUTHORIZATION_HEADER = \"Authorization\";\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the manual redirect value\r\n */\r\nRedirectHandler.MANUAL_REDIRECT = \"manual\";\r\n//# sourceMappingURL=RedirectHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @module TelemetryHandler\r\n */\r\nimport { isGraphURL } from \"../GraphRequestUtil\";\r\nimport { PACKAGE_VERSION } from \"../Version\";\r\nimport { MiddlewareControl } from \"./MiddlewareControl\";\r\nimport { appendRequestHeader, generateUUID, getRequestHeader, setRequestHeader } from \"./MiddlewareUtil\";\r\nimport { TelemetryHandlerOptions } from \"./options/TelemetryHandlerOptions\";\r\n/**\r\n * @class\r\n * @implements Middleware\r\n * Class for TelemetryHandler\r\n */\r\nexport class TelemetryHandler {\r\n /**\r\n * @public\r\n * @async\r\n * To execute the current middleware\r\n * @param {Context} context - The context object of the request\r\n * @returns A Promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const url = typeof context.request === \"string\" ? context.request : context.request.url;\r\n if (isGraphURL(url)) {\r\n // Add telemetry only if the request url is a Graph URL.\r\n // Errors are reported as in issue #265 if headers are present when redirecting to a non Graph URL\r\n let clientRequestId = getRequestHeader(context.request, context.options, TelemetryHandler.CLIENT_REQUEST_ID_HEADER);\r\n if (!clientRequestId) {\r\n clientRequestId = generateUUID();\r\n setRequestHeader(context.request, context.options, TelemetryHandler.CLIENT_REQUEST_ID_HEADER, clientRequestId);\r\n }\r\n let sdkVersionValue = `${TelemetryHandler.PRODUCT_NAME}/${PACKAGE_VERSION}`;\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(TelemetryHandlerOptions);\r\n }\r\n if (options) {\r\n const featureUsage = options.getFeatureUsage();\r\n sdkVersionValue += ` (${TelemetryHandler.FEATURE_USAGE_STRING}=${featureUsage})`;\r\n }\r\n appendRequestHeader(context.request, context.options, TelemetryHandler.SDK_VERSION_HEADER, sdkVersionValue);\r\n }\r\n else {\r\n // Remove telemetry headers if present during redirection.\r\n delete context.options.headers[TelemetryHandler.CLIENT_REQUEST_ID_HEADER];\r\n delete context.options.headers[TelemetryHandler.SDK_VERSION_HEADER];\r\n }\r\n return yield this.nextMiddleware.execute(context);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To set the next middleware in the chain\r\n * @param {Middleware} next - The middleware instance\r\n * @returns Nothing\r\n */\r\n setNext(next) {\r\n this.nextMiddleware = next;\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the name of the client request id header\r\n */\r\nTelemetryHandler.CLIENT_REQUEST_ID_HEADER = \"client-request-id\";\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the name of the sdk version header\r\n */\r\nTelemetryHandler.SDK_VERSION_HEADER = \"SdkVersion\";\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the language prefix for the sdk version header value\r\n */\r\nTelemetryHandler.PRODUCT_NAME = \"graph-js\";\r\n/**\r\n * @private\r\n * @static\r\n * A member holding the key for the feature usage metrics\r\n */\r\nTelemetryHandler.FEATURE_USAGE_STRING = \"featureUsage\";\r\n//# sourceMappingURL=TelemetryHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n// THIS FILE IS AUTO GENERATED\r\n// ANY CHANGES WILL BE LOST DURING BUILD\r\n/**\r\n * @module Version\r\n */\r\nexport const PACKAGE_VERSION = \"2.2.1\";\r\n//# sourceMappingURL=Version.js.map","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module Constants\r\n */\r\n/**\r\n * @constant\r\n * A Default API endpoint version for a request\r\n */\r\nexport const GRAPH_API_VERSION = \"v1.0\";\r\n/**\r\n * @constant\r\n * A Default base url for a request\r\n */\r\nexport const GRAPH_BASE_URL = \"https://graph.microsoft.com/\";\r\n/**\r\n * To hold list of the service root endpoints for Microsoft Graph and Graph Explorer for each national cloud.\r\n * Set(iterable:Object) is not supported in Internet Explorer. The consumer is recommended to use a suitable polyfill.\r\n */\r\nexport const GRAPH_URLS = new Set([\"graph.microsoft.com\", \"graph.microsoft.us\", \"dod-graph.microsoft.us\", \"graph.microsoft.de\", \"microsoftgraph.chinacloudapi.cn\"]);\r\n//# sourceMappingURL=Constants.js.map","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * @implements MiddlewareOptions\r\n * Class representing AuthenticationHandlerOptions\r\n */\r\nexport class AuthenticationHandlerOptions {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of AuthenticationHandlerOptions\r\n * @param {AuthenticationProvider} [authenticationProvider] - The authentication provider instance\r\n * @param {AuthenticationProviderOptions} [authenticationProviderOptions] - The authentication provider options instance\r\n * @returns An instance of AuthenticationHandlerOptions\r\n */\r\n constructor(authenticationProvider, authenticationProviderOptions) {\r\n this.authenticationProvider = authenticationProvider;\r\n this.authenticationProviderOptions = authenticationProviderOptions;\r\n }\r\n}\r\n//# sourceMappingURL=AuthenticationHandlerOptions.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module Range\r\n */\r\n/**\r\n * @class\r\n * Class representing Range\r\n */\r\nexport class Range {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates a range for given min and max values\r\n * @param {number} [minVal = -1] - The minimum value.\r\n * @param {number} [maxVal = -1] - The maximum value.\r\n * @returns An instance of a Range\r\n */\r\n constructor(minVal = -1, maxVal = -1) {\r\n this.minValue = minVal;\r\n this.maxValue = maxVal;\r\n }\r\n}\r\n//# sourceMappingURL=Range.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Range } from \"../Range\";\r\n/**\r\n * @class\r\n * Class representing LargeFileUploadTask\r\n */\r\nexport class LargeFileUploadTask {\r\n /**\r\n * @public\r\n * @constructor\r\n * Constructs a LargeFileUploadTask\r\n * @param {Client} client - The GraphClient instance\r\n * @param {FileObject} file - The FileObject holding details of a file that needs to be uploaded\r\n * @param {LargeFileUploadSession} uploadSession - The upload session to which the upload has to be done\r\n * @param {LargeFileUploadTaskOptions} options - The upload task options\r\n * @returns An instance of LargeFileUploadTask\r\n */\r\n constructor(client, file, uploadSession, options = {}) {\r\n /**\r\n * @private\r\n * Default value for the rangeSize\r\n */\r\n this.DEFAULT_FILE_SIZE = 5 * 1024 * 1024;\r\n this.client = client;\r\n this.file = file;\r\n if (options.rangeSize === undefined) {\r\n options.rangeSize = this.DEFAULT_FILE_SIZE;\r\n }\r\n this.options = options;\r\n this.uploadSession = uploadSession;\r\n this.nextRange = new Range(0, this.options.rangeSize - 1);\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * @async\r\n * Makes request to the server to create an upload session\r\n * @param {Client} client - The GraphClient instance\r\n * @param {any} payload - The payload that needs to be sent\r\n * @param {KeyValuePairObjectStringNumber} headers - The headers that needs to be sent\r\n * @returns The promise that resolves to LargeFileUploadSession\r\n */\r\n static createUploadSession(client, requestUrl, payload, headers = {}) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const session = yield client\r\n .api(requestUrl)\r\n .headers(headers)\r\n .post(payload);\r\n const largeFileUploadSession = {\r\n url: session.uploadUrl,\r\n expiry: new Date(session.expirationDateTime),\r\n };\r\n return largeFileUploadSession;\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @private\r\n * Parses given range string to the Range instance\r\n * @param {string[]} ranges - The ranges value\r\n * @returns The range instance\r\n */\r\n parseRange(ranges) {\r\n const rangeStr = ranges[0];\r\n if (typeof rangeStr === \"undefined\" || rangeStr === \"\") {\r\n return new Range();\r\n }\r\n const firstRange = rangeStr.split(\"-\");\r\n const minVal = parseInt(firstRange[0], 10);\r\n let maxVal = parseInt(firstRange[1], 10);\r\n if (Number.isNaN(maxVal)) {\r\n maxVal = this.file.size - 1;\r\n }\r\n return new Range(minVal, maxVal);\r\n }\r\n /**\r\n * @private\r\n * Updates the expiration date and the next range\r\n * @param {UploadStatusResponse} response - The response of the upload status\r\n * @returns Nothing\r\n */\r\n updateTaskStatus(response) {\r\n this.uploadSession.expiry = new Date(response.expirationDateTime);\r\n this.nextRange = this.parseRange(response.nextExpectedRanges);\r\n }\r\n /**\r\n * @public\r\n * Gets next range that needs to be uploaded\r\n * @returns The range instance\r\n */\r\n getNextRange() {\r\n if (this.nextRange.minValue === -1) {\r\n return this.nextRange;\r\n }\r\n const minVal = this.nextRange.minValue;\r\n let maxValue = minVal + this.options.rangeSize - 1;\r\n if (maxValue >= this.file.size) {\r\n maxValue = this.file.size - 1;\r\n }\r\n return new Range(minVal, maxValue);\r\n }\r\n /**\r\n * @public\r\n * Slices the file content to the given range\r\n * @param {Range} range - The range value\r\n * @returns The sliced ArrayBuffer or Blob\r\n */\r\n sliceFile(range) {\r\n const blob = this.file.content.slice(range.minValue, range.maxValue + 1);\r\n return blob;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Uploads file to the server in a sequential order by slicing the file\r\n * @returns The promise resolves to uploaded response\r\n */\r\n upload() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n while (true) {\r\n const nextRange = this.getNextRange();\r\n if (nextRange.maxValue === -1) {\r\n const err = new Error(\"Task with which you are trying to upload is already completed, Please check for your uploaded file\");\r\n err.name = \"Invalid Session\";\r\n throw err;\r\n }\r\n const fileSlice = this.sliceFile(nextRange);\r\n const response = yield this.uploadSlice(fileSlice, nextRange, this.file.size);\r\n // Upon completion of upload process incase of onedrive, driveItem is returned, which contains id\r\n if (response.id !== undefined) {\r\n return response;\r\n }\r\n else {\r\n this.updateTaskStatus(response);\r\n }\r\n }\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Uploads given slice to the server\r\n * @param {ArrayBuffer | Blob | File} fileSlice - The file slice\r\n * @param {Range} range - The range value\r\n * @param {number} totalSize - The total size of a complete file\r\n */\r\n uploadSlice(fileSlice, range, totalSize) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return yield this.client\r\n .api(this.uploadSession.url)\r\n .headers({\r\n \"Content-Length\": `${range.maxValue - range.minValue + 1}`,\r\n \"Content-Range\": `bytes ${range.minValue}-${range.maxValue}/${totalSize}`,\r\n })\r\n .put(fileSlice);\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Deletes upload session in the server\r\n * @returns The promise resolves to cancelled response\r\n */\r\n cancel() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return yield this.client.api(this.uploadSession.url).delete();\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Gets status for the upload session\r\n * @returns The promise resolves to the status enquiry response\r\n */\r\n getStatus() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const response = yield this.client.api(this.uploadSession.url).get();\r\n this.updateTaskStatus(response);\r\n return response;\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Resumes upload session and continue uploading the file from the last sent range\r\n * @returns The promise resolves to the uploaded response\r\n */\r\n resume() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n yield this.getStatus();\r\n return yield this.upload();\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=LargeFileUploadTask.js.map","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @class\r\n * Class representing HTTPClient\r\n */\r\nexport class HTTPClient {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of a HTTPClient\r\n * @param {...Middleware} middleware - The first middleware of the middleware chain or a sequence of all the Middleware handlers\r\n */\r\n constructor(...middleware) {\r\n if (!middleware || !middleware.length) {\r\n const error = new Error();\r\n error.name = \"InvalidMiddlewareChain\";\r\n error.message = \"Please provide a default middleware chain or custom middleware chain\";\r\n throw error;\r\n }\r\n this.setMiddleware(...middleware);\r\n }\r\n /**\r\n * @private\r\n * Processes the middleware parameter passed to set this.middleware property\r\n * The calling function should validate if middleware is not undefined or not empty.\r\n * @param {...Middleware} middleware - The middleware passed\r\n * @returns Nothing\r\n */\r\n setMiddleware(...middleware) {\r\n if (middleware.length > 1) {\r\n this.parseMiddleWareArray(middleware);\r\n }\r\n else {\r\n this.middleware = middleware[0];\r\n }\r\n }\r\n /**\r\n * @private\r\n * Processes the middleware array to construct the chain\r\n * and sets this.middleware property to the first middlware handler of the array\r\n * The calling function should validate if middleware is not undefined or not empty\r\n * @param {Middleware[]} middlewareArray - The array of middleware handlers\r\n * @returns Nothing\r\n */\r\n parseMiddleWareArray(middlewareArray) {\r\n middlewareArray.forEach((element, index) => {\r\n if (index < middlewareArray.length - 1) {\r\n element.setNext(middlewareArray[index + 1]);\r\n }\r\n });\r\n this.middleware = middlewareArray[0];\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To send the request through the middleware chain\r\n * @param {Context} context - The context of a request\r\n * @returns A promise that resolves to the Context\r\n */\r\n sendRequest(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n if (typeof context.request === \"string\" && context.options === undefined) {\r\n const error = new Error();\r\n error.name = \"InvalidRequestOptions\";\r\n error.message = \"Unable to execute the middleware, Please provide valid options for a request\";\r\n throw error;\r\n }\r\n yield this.middleware.execute(context);\r\n return context;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=HTTPClient.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AuthError } from \"./AuthError\";\r\nexport var ServerErrorMessage = {\r\n serverUnavailable: {\r\n code: \"server_unavailable\",\r\n desc: \"Server is temporarily unavailable.\"\r\n },\r\n unknownServerError: {\r\n code: \"unknown_server_error\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n ServerError.createServerUnavailableError = function () {\r\n return new ServerError(ServerErrorMessage.serverUnavailable.code, ServerErrorMessage.serverUnavailable.desc);\r\n };\r\n ServerError.createUnknownServerError = function (errorDesc) {\r\n return new ServerError(ServerErrorMessage.unknownServerError.code, errorDesc);\r\n };\r\n return ServerError;\r\n}(AuthError));\r\nexport { ServerError };\r\n//# sourceMappingURL=ServerError.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ServerError } from \"./ServerError\";\r\nexport var InteractionRequiredAuthErrorMessage = {\r\n interactionRequired: {\r\n code: \"interaction_required\"\r\n },\r\n consentRequired: {\r\n code: \"consent_required\"\r\n },\r\n loginRequired: {\r\n code: \"login_required\"\r\n },\r\n};\r\n/**\r\n * Error thrown when the user is required to perform an interactive token request.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n return _this;\r\n }\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorString) {\r\n var interactionRequiredCodes = [\r\n InteractionRequiredAuthErrorMessage.interactionRequired.code,\r\n InteractionRequiredAuthErrorMessage.consentRequired.code,\r\n InteractionRequiredAuthErrorMessage.loginRequired.code\r\n ];\r\n return errorString && interactionRequiredCodes.indexOf(errorString) > -1;\r\n };\r\n InteractionRequiredAuthError.createLoginRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.loginRequired.code, errorDesc);\r\n };\r\n InteractionRequiredAuthError.createInteractionRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.interactionRequired.code, errorDesc);\r\n };\r\n InteractionRequiredAuthError.createConsentRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.consentRequired.code, errorDesc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(ServerError));\r\nexport { InteractionRequiredAuthError };\r\n//# sourceMappingURL=InteractionRequiredAuthError.js.map","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @module BatchRequestContent\r\n */\r\nimport { RequestMethod } from \"../RequestMethod\";\r\n/**\r\n * @class\r\n * Class for handling BatchRequestContent\r\n */\r\nexport class BatchRequestContent {\r\n /**\r\n * @public\r\n * @constructor\r\n * Constructs a BatchRequestContent instance\r\n * @param {BatchRequestStep[]} [requests] - Array of requests value\r\n * @returns An instance of a BatchRequestContent\r\n */\r\n constructor(requests) {\r\n this.requests = new Map();\r\n if (typeof requests !== \"undefined\") {\r\n const limit = BatchRequestContent.requestLimit;\r\n if (requests.length > limit) {\r\n const error = new Error(`Maximum requests limit exceeded, Max allowed number of requests are ${limit}`);\r\n error.name = \"Limit Exceeded Error\";\r\n throw error;\r\n }\r\n for (const req of requests) {\r\n this.addRequest(req);\r\n }\r\n }\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * Validates the dependency chain of the requests\r\n *\r\n * Note:\r\n * Individual requests can depend on other individual requests. Currently, requests can only depend on a single other request, and must follow one of these three patterns:\r\n * 1. Parallel - no individual request states a dependency in the dependsOn property.\r\n * 2. Serial - all individual requests depend on the previous individual request.\r\n * 3. Same - all individual requests that state a dependency in the dependsOn property, state the same dependency.\r\n * As JSON batching matures, these limitations will be removed.\r\n * @see {@link https://developer.microsoft.com/en-us/graph/docs/concepts/known_issues#json-batching}\r\n *\r\n * @param {Map} requests - The map of requests.\r\n * @returns The boolean indicating the validation status\r\n */\r\n static validateDependencies(requests) {\r\n const isParallel = (reqs) => {\r\n const iterator = reqs.entries();\r\n let cur = iterator.next();\r\n while (!cur.done) {\r\n const curReq = cur.value[1];\r\n if (curReq.dependsOn !== undefined && curReq.dependsOn.length > 0) {\r\n return false;\r\n }\r\n cur = iterator.next();\r\n }\r\n return true;\r\n };\r\n const isSerial = (reqs) => {\r\n const iterator = reqs.entries();\r\n let cur = iterator.next();\r\n const firstRequest = cur.value[1];\r\n if (firstRequest.dependsOn !== undefined && firstRequest.dependsOn.length > 0) {\r\n return false;\r\n }\r\n let prev = cur;\r\n cur = iterator.next();\r\n while (!cur.done) {\r\n const curReq = cur.value[1];\r\n if (curReq.dependsOn === undefined || curReq.dependsOn.length !== 1 || curReq.dependsOn[0] !== prev.value[1].id) {\r\n return false;\r\n }\r\n prev = cur;\r\n cur = iterator.next();\r\n }\r\n return true;\r\n };\r\n const isSame = (reqs) => {\r\n const iterator = reqs.entries();\r\n let cur = iterator.next();\r\n const firstRequest = cur.value[1];\r\n let dependencyId;\r\n if (firstRequest.dependsOn === undefined || firstRequest.dependsOn.length === 0) {\r\n dependencyId = firstRequest.id;\r\n }\r\n else {\r\n if (firstRequest.dependsOn.length === 1) {\r\n const fDependencyId = firstRequest.dependsOn[0];\r\n if (fDependencyId !== firstRequest.id && reqs.has(fDependencyId)) {\r\n dependencyId = fDependencyId;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n cur = iterator.next();\r\n while (!cur.done) {\r\n const curReq = cur.value[1];\r\n if ((curReq.dependsOn === undefined || curReq.dependsOn.length === 0) && dependencyId !== curReq.id) {\r\n return false;\r\n }\r\n if (curReq.dependsOn !== undefined && curReq.dependsOn.length !== 0) {\r\n if (curReq.dependsOn.length === 1 && (curReq.id === dependencyId || curReq.dependsOn[0] !== dependencyId)) {\r\n return false;\r\n }\r\n if (curReq.dependsOn.length > 1) {\r\n return false;\r\n }\r\n }\r\n cur = iterator.next();\r\n }\r\n return true;\r\n };\r\n if (requests.size === 0) {\r\n const error = new Error(\"Empty requests map, Please provide at least one request.\");\r\n error.name = \"Empty Requests Error\";\r\n throw error;\r\n }\r\n return isParallel(requests) || isSerial(requests) || isSame(requests);\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * @async\r\n * Converts Request Object instance to a JSON\r\n * @param {IsomorphicRequest} request - The IsomorphicRequest Object instance\r\n * @returns A promise that resolves to JSON representation of a request\r\n */\r\n static getRequestData(request) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const requestData = {\r\n url: \"\",\r\n };\r\n const hasHttpRegex = new RegExp(\"^https?://\");\r\n // Stripping off hostname, port and url scheme\r\n requestData.url = hasHttpRegex.test(request.url) ? \"/\" + request.url.split(/.*?\\/\\/.*?\\//)[1] : request.url;\r\n requestData.method = request.method;\r\n const headers = {};\r\n request.headers.forEach((value, key) => {\r\n headers[key] = value;\r\n });\r\n if (Object.keys(headers).length) {\r\n requestData.headers = headers;\r\n }\r\n if (request.method === RequestMethod.PATCH || request.method === RequestMethod.POST || request.method === RequestMethod.PUT) {\r\n requestData.body = yield BatchRequestContent.getRequestBody(request);\r\n }\r\n /**\r\n * TODO: Check any other property needs to be used from the Request object and add them\r\n */\r\n return requestData;\r\n });\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * @async\r\n * Gets the body of a Request object instance\r\n * @param {IsomorphicRequest} request - The IsomorphicRequest object instance\r\n * @returns The Promise that resolves to a body value of a Request\r\n */\r\n static getRequestBody(request) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n let bodyParsed = false;\r\n let body;\r\n try {\r\n const cloneReq = request.clone();\r\n body = yield cloneReq.json();\r\n bodyParsed = true;\r\n }\r\n catch (e) {\r\n // tslint:disable-line: no-empty\r\n }\r\n if (!bodyParsed) {\r\n try {\r\n if (typeof Blob !== \"undefined\") {\r\n const blob = yield request.blob();\r\n const reader = new FileReader();\r\n body = yield new Promise((resolve) => {\r\n reader.addEventListener(\"load\", () => {\r\n const dataURL = reader.result;\r\n /**\r\n * Some valid dataURL schemes:\r\n * 1. data:text/vnd-example+xyz;foo=bar;base64,R0lGODdh\r\n * 2. data:text/plain;charset=UTF-8;page=21,the%20data:1234,5678\r\n * 3. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\r\n * 4. data:image/png,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\r\n * 5. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\r\n * @see Syntax {@link https://en.wikipedia.org/wiki/Data_URI_scheme} for more\r\n */\r\n const regex = new RegExp(\"^s*data:(.+?/.+?(;.+?=.+?)*)?(;base64)?,(.*)s*$\");\r\n const segments = regex.exec(dataURL);\r\n resolve(segments[4]);\r\n }, false);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n else if (typeof Buffer !== \"undefined\") {\r\n const buffer = yield request.buffer();\r\n body = buffer.toString(\"base64\");\r\n }\r\n bodyParsed = true;\r\n }\r\n catch (e) {\r\n // tslint:disable-line: no-empty\r\n }\r\n }\r\n return body;\r\n });\r\n }\r\n /**\r\n * @public\r\n * Adds a request to the batch request content\r\n * @param {BatchRequestStep} request - The request value\r\n * @returns The id of the added request\r\n */\r\n addRequest(request) {\r\n const limit = BatchRequestContent.requestLimit;\r\n if (request.id === \"\") {\r\n const error = new Error(`Id for a request is empty, Please provide an unique id`);\r\n error.name = \"Empty Id For Request\";\r\n throw error;\r\n }\r\n if (this.requests.size === limit) {\r\n const error = new Error(`Maximum requests limit exceeded, Max allowed number of requests are ${limit}`);\r\n error.name = \"Limit Exceeded Error\";\r\n throw error;\r\n }\r\n if (this.requests.has(request.id)) {\r\n const error = new Error(`Adding request with duplicate id ${request.id}, Make the id of the requests unique`);\r\n error.name = \"Duplicate RequestId Error\";\r\n throw error;\r\n }\r\n this.requests.set(request.id, request);\r\n return request.id;\r\n }\r\n /**\r\n * @public\r\n * Removes request from the batch payload and its dependencies from all dependents\r\n * @param {string} requestId - The id of a request that needs to be removed\r\n * @returns The boolean indicating removed status\r\n */\r\n removeRequest(requestId) {\r\n const deleteStatus = this.requests.delete(requestId);\r\n const iterator = this.requests.entries();\r\n let cur = iterator.next();\r\n /**\r\n * Removing dependencies where this request is present as a dependency\r\n */\r\n while (!cur.done) {\r\n const dependencies = cur.value[1].dependsOn;\r\n if (typeof dependencies !== \"undefined\") {\r\n const index = dependencies.indexOf(requestId);\r\n if (index !== -1) {\r\n dependencies.splice(index, 1);\r\n }\r\n if (dependencies.length === 0) {\r\n delete cur.value[1].dependsOn;\r\n }\r\n }\r\n cur = iterator.next();\r\n }\r\n return deleteStatus;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Serialize content from BatchRequestContent instance\r\n * @returns The body content to make batch request\r\n */\r\n getContent() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const requests = [];\r\n const requestBody = {\r\n requests,\r\n };\r\n const iterator = this.requests.entries();\r\n let cur = iterator.next();\r\n if (cur.done) {\r\n const error = new Error(\"No requests added yet, Please add at least one request.\");\r\n error.name = \"Empty Payload\";\r\n throw error;\r\n }\r\n if (!BatchRequestContent.validateDependencies(this.requests)) {\r\n const error = new Error(`Invalid dependency found, Dependency should be:\r\n1. Parallel - no individual request states a dependency in the dependsOn property.\r\n2. Serial - all individual requests depend on the previous individual request.\r\n3. Same - all individual requests that state a dependency in the dependsOn property, state the same dependency.`);\r\n error.name = \"Invalid Dependency\";\r\n throw error;\r\n }\r\n while (!cur.done) {\r\n const requestStep = cur.value[1];\r\n const batchRequestData = (yield BatchRequestContent.getRequestData(requestStep.request));\r\n /**\r\n * @see {@link https://developer.microsoft.com/en-us/graph/docs/concepts/json_batching#request-format}\r\n */\r\n if (batchRequestData.body !== undefined && (batchRequestData.headers === undefined || batchRequestData.headers[\"content-type\"] === undefined)) {\r\n const error = new Error(`Content-type header is not mentioned for request #${requestStep.id}, For request having body, Content-type header should be mentioned`);\r\n error.name = \"Invalid Content-type header\";\r\n throw error;\r\n }\r\n batchRequestData.id = requestStep.id;\r\n if (requestStep.dependsOn !== undefined && requestStep.dependsOn.length > 0) {\r\n batchRequestData.dependsOn = requestStep.dependsOn;\r\n }\r\n requests.push(batchRequestData);\r\n cur = iterator.next();\r\n }\r\n requestBody.requests = requests;\r\n return requestBody;\r\n });\r\n }\r\n /**\r\n * @public\r\n * Adds a dependency for a given dependent request\r\n * @param {string} dependentId - The id of the dependent request\r\n * @param {string} [dependencyId] - The id of the dependency request, if not specified the preceding request will be considered as a dependency\r\n * @returns Nothing\r\n */\r\n addDependency(dependentId, dependencyId) {\r\n if (!this.requests.has(dependentId)) {\r\n const error = new Error(`Dependent ${dependentId} does not exists, Please check the id`);\r\n error.name = \"Invalid Dependent\";\r\n throw error;\r\n }\r\n if (typeof dependencyId !== \"undefined\" && !this.requests.has(dependencyId)) {\r\n const error = new Error(`Dependency ${dependencyId} does not exists, Please check the id`);\r\n error.name = \"Invalid Dependency\";\r\n throw error;\r\n }\r\n if (typeof dependencyId !== \"undefined\") {\r\n const dependent = this.requests.get(dependentId);\r\n if (dependent.dependsOn === undefined) {\r\n dependent.dependsOn = [];\r\n }\r\n if (dependent.dependsOn.indexOf(dependencyId) !== -1) {\r\n const error = new Error(`Dependency ${dependencyId} is already added for the request ${dependentId}`);\r\n error.name = \"Duplicate Dependency\";\r\n throw error;\r\n }\r\n dependent.dependsOn.push(dependencyId);\r\n }\r\n else {\r\n const iterator = this.requests.entries();\r\n let prev;\r\n let cur = iterator.next();\r\n while (!cur.done && cur.value[1].id !== dependentId) {\r\n prev = cur;\r\n cur = iterator.next();\r\n }\r\n if (typeof prev !== \"undefined\") {\r\n const dId = prev.value[0];\r\n if (cur.value[1].dependsOn === undefined) {\r\n cur.value[1].dependsOn = [];\r\n }\r\n if (cur.value[1].dependsOn.indexOf(dId) !== -1) {\r\n const error = new Error(`Dependency ${dId} is already added for the request ${dependentId}`);\r\n error.name = \"Duplicate Dependency\";\r\n throw error;\r\n }\r\n cur.value[1].dependsOn.push(dId);\r\n }\r\n else {\r\n const error = new Error(`Can't add dependency ${dependencyId}, There is only a dependent request in the batch`);\r\n error.name = \"Invalid Dependency Addition\";\r\n throw error;\r\n }\r\n }\r\n }\r\n /**\r\n * @public\r\n * Removes a dependency for a given dependent request id\r\n * @param {string} dependentId - The id of the dependent request\r\n * @param {string} [dependencyId] - The id of the dependency request, if not specified will remove all the dependencies of that request\r\n * @returns The boolean indicating removed status\r\n */\r\n removeDependency(dependentId, dependencyId) {\r\n const request = this.requests.get(dependentId);\r\n if (typeof request === \"undefined\" || request.dependsOn === undefined || request.dependsOn.length === 0) {\r\n return false;\r\n }\r\n if (typeof dependencyId !== \"undefined\") {\r\n const index = request.dependsOn.indexOf(dependencyId);\r\n if (index === -1) {\r\n return false;\r\n }\r\n request.dependsOn.splice(index, 1);\r\n return true;\r\n }\r\n else {\r\n delete request.dependsOn;\r\n return true;\r\n }\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * Limit for number of requests {@link - https://developer.microsoft.com/en-us/graph/docs/concepts/known_issues#json-batching}\r\n */\r\nBatchRequestContent.requestLimit = 20;\r\n//# sourceMappingURL=BatchRequestContent.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport { AuthenticationHandler } from \"./AuthenticationHandler\";\r\nimport { HTTPMessageHandler } from \"./HTTPMessageHandler\";\r\nimport { RedirectHandlerOptions } from \"./options/RedirectHandlerOptions\";\r\nimport { RetryHandlerOptions } from \"./options/RetryHandlerOptions\";\r\nimport { RedirectHandler } from \"./RedirectHandler\";\r\nimport { RetryHandler } from \"./RetryHandler\";\r\nimport { TelemetryHandler } from \"./TelemetryHandler\";\r\n/**\r\n * @private\r\n * To check whether the environment is node or not\r\n * @returns A boolean representing the environment is node or not\r\n */\r\nconst isNodeEnvironment = () => {\r\n return typeof process === \"object\" && typeof require === \"function\";\r\n};\r\n/**\r\n * @class\r\n * Class containing function(s) related to the middleware pipelines.\r\n */\r\nexport class MiddlewareFactory {\r\n /**\r\n * @public\r\n * @static\r\n * Returns the default middleware chain an array with the middleware handlers\r\n * @param {AuthenticationProvider} authProvider - The authentication provider instance\r\n * @returns an array of the middleware handlers of the default middleware chain\r\n */\r\n static getDefaultMiddlewareChain(authProvider) {\r\n const middleware = [];\r\n const authenticationHandler = new AuthenticationHandler(authProvider);\r\n const retryHandler = new RetryHandler(new RetryHandlerOptions());\r\n const telemetryHandler = new TelemetryHandler();\r\n const httpMessageHandler = new HTTPMessageHandler();\r\n middleware.push(authenticationHandler);\r\n middleware.push(retryHandler);\r\n if (isNodeEnvironment()) {\r\n const redirectHandler = new RedirectHandler(new RedirectHandlerOptions());\r\n middleware.push(redirectHandler);\r\n }\r\n middleware.push(telemetryHandler);\r\n middleware.push(httpMessageHandler);\r\n return middleware;\r\n }\r\n}\r\n//# sourceMappingURL=MiddlewareFactory.js.map","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { LargeFileUploadTask } from \"./LargeFileUploadTask\";\r\nimport { getValidRangeSize } from \"./OneDriveLargeFileUploadTaskUtil\";\r\n/**\r\n * @class\r\n * Class representing OneDriveLargeFileUploadTask\r\n */\r\nexport class OneDriveLargeFileUploadTask extends LargeFileUploadTask {\r\n /**\r\n * @public\r\n * @constructor\r\n * Constructs a OneDriveLargeFileUploadTask\r\n * @param {Client} client - The GraphClient instance\r\n * @param {FileObject} file - The FileObject holding details of a file that needs to be uploaded\r\n * @param {LargeFileUploadSession} uploadSession - The upload session to which the upload has to be done\r\n * @param {LargeFileUploadTaskOptions} options - The upload task options\r\n * @returns An instance of OneDriveLargeFileUploadTask\r\n */\r\n constructor(client, file, uploadSession, options) {\r\n super(client, file, uploadSession, options);\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * Constructs the create session url for Onedrive\r\n * @param {string} fileName - The name of the file\r\n * @param {path} [path = OneDriveLargeFileUploadTask.DEFAULT_UPLOAD_PATH] - The path for the upload\r\n * @returns The constructed create session url\r\n */\r\n static constructCreateSessionUrl(fileName, path = OneDriveLargeFileUploadTask.DEFAULT_UPLOAD_PATH) {\r\n fileName = fileName.trim();\r\n path = path.trim();\r\n if (path === \"\") {\r\n path = \"/\";\r\n }\r\n if (path[0] !== \"/\") {\r\n path = `/${path}`;\r\n }\r\n if (path[path.length - 1] !== \"/\") {\r\n path = `${path}/`;\r\n }\r\n // we choose to encode each component of the file path separately because when encoding full URI\r\n // with encodeURI, special characters like # or % in the file name doesn't get encoded as desired\r\n return `/me/drive/root:${path\r\n .split(\"/\")\r\n .map((p) => encodeURIComponent(p))\r\n .join(\"/\")}${encodeURIComponent(fileName)}:/createUploadSession`;\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * @async\r\n * Creates a OneDriveLargeFileUploadTask\r\n * @param {Client} client - The GraphClient instance\r\n * @param {Blob | Buffer | File} file - File represented as Blob, Buffer or File\r\n * @param {OneDriveLargeFileUploadOptions} options - The options for upload task\r\n * @returns The promise that will be resolves to OneDriveLargeFileUploadTask instance\r\n */\r\n static create(client, file, options) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const name = options.fileName;\r\n let content;\r\n let size;\r\n if (typeof Blob !== \"undefined\" && file instanceof Blob) {\r\n content = new File([file], name);\r\n size = content.size;\r\n }\r\n else if (typeof File !== \"undefined\" && file instanceof File) {\r\n content = file;\r\n size = content.size;\r\n }\r\n else if (typeof Buffer !== \"undefined\" && file instanceof Buffer) {\r\n const b = file;\r\n size = b.byteLength - b.byteOffset;\r\n content = b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength);\r\n }\r\n try {\r\n const requestUrl = OneDriveLargeFileUploadTask.constructCreateSessionUrl(options.fileName, options.path);\r\n const session = yield OneDriveLargeFileUploadTask.createUploadSession(client, requestUrl, options.fileName);\r\n const rangeSize = getValidRangeSize(options.rangeSize);\r\n const fileObj = {\r\n name,\r\n content,\r\n size,\r\n };\r\n return new OneDriveLargeFileUploadTask(client, fileObj, session, {\r\n rangeSize,\r\n });\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * @async\r\n * Makes request to the server to create an upload session\r\n * @param {Client} client - The GraphClient instance\r\n * @param {string} requestUrl - The URL to create the upload session\r\n * @param {string} fileName - The name of a file to upload, (with extension)\r\n * @returns The promise that resolves to LargeFileUploadSession\r\n */\r\n static createUploadSession(client, requestUrl, fileName) {\r\n const _super = Object.create(null, {\r\n createUploadSession: { get: () => super.createUploadSession }\r\n });\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const payload = {\r\n item: {\r\n \"@microsoft.graph.conflictBehavior\": \"rename\",\r\n name: fileName,\r\n },\r\n };\r\n try {\r\n return _super.createUploadSession.call(this, client, requestUrl, payload);\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * Commits upload session to end uploading\r\n * @param {string} requestUrl - The URL to commit the upload session\r\n * @returns The promise resolves to committed response\r\n */\r\n commit(requestUrl) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const payload = {\r\n name: this.file.name,\r\n \"@microsoft.graph.conflictBehavior\": \"rename\",\r\n \"@microsoft.graph.sourceUrl\": this.uploadSession.url,\r\n };\r\n return yield this.client.api(requestUrl).put(payload);\r\n }\r\n catch (err) {\r\n throw err;\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * @private\r\n * @static\r\n * Default path for the file being uploaded\r\n */\r\nOneDriveLargeFileUploadTask.DEFAULT_UPLOAD_PATH = \"/\";\r\n//# sourceMappingURL=OneDriveLargeFileUploadTask.js.map","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module OneDriveLargeFileUploadTaskUtil\r\n */\r\n/**\r\n * @constant\r\n * Default value for the rangeSize\r\n * Recommended size is between 5 - 10 MB {@link https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/driveitem_createuploadsession#best-practices}\r\n */\r\nconst DEFAULT_FILE_SIZE = 5 * 1024 * 1024;\r\n/**\r\n * @constant\r\n * Rounds off the given value to a multiple of 320 KB\r\n * @param {number} value - The value\r\n * @returns The rounded off value\r\n */\r\nconst roundTo320KB = (value) => {\r\n if (value > 320 * 1024) {\r\n value = Math.floor(value / (320 * 1024)) * 320 * 1024;\r\n }\r\n return value;\r\n};\r\n/**\r\n * @constant\r\n * Get the valid rangeSize for a file slicing (validity is based on the constrains mentioned in here\r\n * {@link https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/driveitem_createuploadsession#upload-bytes-to-the-upload-session})\r\n *\r\n * @param {number} [rangeSize = DEFAULT_FILE_SIZE] - The rangeSize value.\r\n * @returns The valid rangeSize\r\n */\r\nexport const getValidRangeSize = (rangeSize = DEFAULT_FILE_SIZE) => {\r\n const sixtyMB = 60 * 1024 * 1024;\r\n if (rangeSize > sixtyMB) {\r\n rangeSize = sixtyMB;\r\n }\r\n return roundTo320KB(rangeSize);\r\n};\r\n//# sourceMappingURL=OneDriveLargeFileUploadTaskUtil.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module HTTPClientFactory\r\n */\r\nimport { HTTPClient } from \"./HTTPClient\";\r\nimport { AuthenticationHandler } from \"./middleware/AuthenticationHandler\";\r\nimport { HTTPMessageHandler } from \"./middleware/HTTPMessageHandler\";\r\nimport { RedirectHandlerOptions } from \"./middleware/options/RedirectHandlerOptions\";\r\nimport { RetryHandlerOptions } from \"./middleware/options/RetryHandlerOptions\";\r\nimport { RedirectHandler } from \"./middleware/RedirectHandler\";\r\nimport { RetryHandler } from \"./middleware/RetryHandler\";\r\nimport { TelemetryHandler } from \"./middleware/TelemetryHandler\";\r\n/**\r\n * @private\r\n * To check whether the environment is node or not\r\n * @returns A boolean representing the environment is node or not\r\n */\r\nconst isNodeEnvironment = () => {\r\n return typeof process === \"object\" && typeof require === \"function\";\r\n};\r\n/**\r\n * @class\r\n * Class representing HTTPClientFactory\r\n */\r\nexport class HTTPClientFactory {\r\n /**\r\n * @public\r\n * @static\r\n * Creates HTTPClient with default middleware chain\r\n * @param {AuthenticationProvider} authProvider - The authentication provider instance\r\n * @returns A HTTPClient instance\r\n *\r\n * NOTE: These are the things that we need to remember while doing modifications in the below default pipeline.\r\n * \t\t* HTTPMessageHander should be the last one in the middleware pipeline, because this makes the actual network call of the request\r\n * \t\t* TelemetryHandler should be the one prior to the last middleware in the chain, because this is the one which actually collects and appends the usage flag and placing this handler \t*\t\t before making the actual network call ensures that the usage of all features are recorded in the flag.\r\n * \t\t* The best place for AuthenticationHandler is in the starting of the pipeline, because every other handler might have to work for multiple times for a request but the auth token for\r\n * \t\t them will remain same. For example, Retry and Redirect handlers might be working multiple times for a request based on the response but their auth token would remain same.\r\n */\r\n static createWithAuthenticationProvider(authProvider) {\r\n const authenticationHandler = new AuthenticationHandler(authProvider);\r\n const retryHandler = new RetryHandler(new RetryHandlerOptions());\r\n const telemetryHandler = new TelemetryHandler();\r\n const httpMessageHandler = new HTTPMessageHandler();\r\n authenticationHandler.setNext(retryHandler);\r\n if (isNodeEnvironment()) {\r\n const redirectHandler = new RedirectHandler(new RedirectHandlerOptions());\r\n retryHandler.setNext(redirectHandler);\r\n redirectHandler.setNext(telemetryHandler);\r\n }\r\n else {\r\n retryHandler.setNext(telemetryHandler);\r\n }\r\n telemetryHandler.setNext(httpMessageHandler);\r\n return HTTPClientFactory.createWithMiddleware(authenticationHandler);\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * Creates a middleware chain with the given one\r\n * @property {...Middleware} middleware - The first middleware of the middleware chain or a sequence of all the Middleware handlers\r\n * @returns A HTTPClient instance\r\n */\r\n static createWithMiddleware(...middleware) {\r\n // Middleware should not empty or undefined. This is check is present in the HTTPClient constructor.\r\n return new HTTPClient(...middleware);\r\n }\r\n}\r\n//# sourceMappingURL=HTTPClientFactory.js.map","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","/** @license React v16.12.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;lb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),cc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},dd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},ed={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=ed[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?dd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},wd=0;for(;wd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=\nV.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){do Sj();while(null!==Ej);if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\n\"function\"===typeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.12.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118,x=b?Symbol.for(\"react.scope\"):60119;function y(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m}\nexports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module ChaosStrategy\r\n */\r\n/**\r\n * Strategy used for Testing Handler\r\n * @enum\r\n */\r\nexport var ChaosStrategy;\r\n(function (ChaosStrategy) {\r\n ChaosStrategy[ChaosStrategy[\"MANUAL\"] = 0] = \"MANUAL\";\r\n ChaosStrategy[ChaosStrategy[\"RANDOM\"] = 1] = \"RANDOM\";\r\n})(ChaosStrategy || (ChaosStrategy = {}));\r\n//# sourceMappingURL=ChaosStrategy.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * Class that handles BatchResponseContent\r\n */\r\nexport class BatchResponseContent {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates the BatchResponseContent instance\r\n * @param {BatchResponseBody} response - The response body returned for batch request from server\r\n * @returns An instance of a BatchResponseContent\r\n */\r\n constructor(response) {\r\n this.responses = new Map();\r\n this.update(response);\r\n }\r\n /**\r\n * @private\r\n * Creates native Response object from the json representation of it.\r\n * @param {KeyValuePairObject} responseJSON - The response json value\r\n * @returns The Response Object instance\r\n */\r\n createResponseObject(responseJSON) {\r\n const body = responseJSON.body;\r\n const options = {};\r\n options.status = responseJSON.status;\r\n if (responseJSON.statusText !== undefined) {\r\n options.statusText = responseJSON.statusText;\r\n }\r\n options.headers = responseJSON.headers;\r\n if (options.headers !== undefined && options.headers[\"Content-Type\"] !== undefined) {\r\n if (options.headers[\"Content-Type\"].split(\";\")[0] === \"application/json\") {\r\n const bodyString = JSON.stringify(body);\r\n return new Response(bodyString, options);\r\n }\r\n }\r\n return new Response(body, options);\r\n }\r\n /**\r\n * @public\r\n * Updates the Batch response content instance with given responses.\r\n * @param {BatchResponseBody} response - The response json representing batch response message\r\n * @returns Nothing\r\n */\r\n update(response) {\r\n this.nextLink = response[\"@odata.nextLink\"];\r\n const responses = response.responses;\r\n for (let i = 0, l = responses.length; i < l; i++) {\r\n this.responses.set(responses[i].id, this.createResponseObject(responses[i]));\r\n }\r\n }\r\n /**\r\n * @public\r\n * To get the response of a request for a given request id\r\n * @param {string} requestId - The request id value\r\n * @returns The Response object instance for the particular request\r\n */\r\n getResponseById(requestId) {\r\n return this.responses.get(requestId);\r\n }\r\n /**\r\n * @public\r\n * To get all the responses of the batch request\r\n * @returns The Map of id and Response objects\r\n */\r\n getResponses() {\r\n return this.responses;\r\n }\r\n /**\r\n * @public\r\n * To get the iterator for the responses\r\n * @returns The Iterable generator for the response objects\r\n */\r\n *getResponsesIterator() {\r\n const iterator = this.responses.entries();\r\n let cur = iterator.next();\r\n while (!cur.done) {\r\n yield cur.value;\r\n cur = iterator.next();\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=BatchResponseContent.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module ChaosHandlerOptions\r\n */\r\nimport { ChaosStrategy } from \"./ChaosStrategy\";\r\n/**\r\n * Class representing ChaosHandlerOptions\r\n * @class\r\n * Class\r\n * @implements MiddlewareOptions\r\n */\r\nexport class ChaosHandlerOptions {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of Testing Handler Options\r\n * @param {ChaosStrategy} ChaosStrategy - Specifies the startegy used for the Testing Handler -> RAMDOM/MANUAL\r\n * @param {string} statusMessage - The Message to be returned in the response\r\n * @param {number?} statusCode - The statusCode to be returned in the response\r\n * @param {number?} chaosPercentage - The percentage of randomness/chaos in the handler\r\n * @param {any?} responseBody - The response body to be returned in the response\r\n * @returns An instance of ChaosHandlerOptions\r\n */\r\n constructor(chaosStrategy = ChaosStrategy.RANDOM, statusMessage = \"Some error Happened\", statusCode, chaosPercentage, responseBody) {\r\n this.chaosStrategy = chaosStrategy;\r\n this.statusCode = statusCode;\r\n this.statusMessage = statusMessage;\r\n this.chaosPercentage = chaosPercentage !== undefined ? chaosPercentage : 10;\r\n this.responseBody = responseBody;\r\n if (this.chaosPercentage > 100) {\r\n throw new Error(\"Error Pecentage can not be more than 100\");\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ChaosHandlerOptions.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module ChaosHandlerData\r\n */\r\n/**\r\n * Contains RequestMethod to corresponding array of possible status codes, used for Random mode\r\n */\r\nexport const methodStatusCode = {\r\n GET: [429, 500, 502, 503, 504],\r\n POST: [429, 500, 502, 503, 504, 507],\r\n PUT: [429, 500, 502, 503, 504, 507],\r\n PATCH: [429, 500, 502, 503, 504],\r\n DELETE: [429, 500, 502, 503, 504, 507],\r\n};\r\n/**\r\n * Contains statusCode to statusMessage map\r\n */\r\nexport const httpStatusCode = {\r\n 100: \"Continue\",\r\n 101: \"Switching Protocols\",\r\n 102: \"Processing\",\r\n 103: \"Early Hints\",\r\n 200: \"OK\",\r\n 201: \"Created\",\r\n 202: \"Accepted\",\r\n 203: \"Non-Authoritative Information\",\r\n 204: \"No Content\",\r\n 205: \"Reset Content\",\r\n 206: \"Partial Content\",\r\n 207: \"Multi-Status\",\r\n 208: \"Already Reported\",\r\n 226: \"IM Used\",\r\n 300: \"Multiple Choices\",\r\n 301: \"Moved Permanently\",\r\n 302: \"Found\",\r\n 303: \"See Other\",\r\n 304: \"Not Modified\",\r\n 305: \"Use Proxy\",\r\n 307: \"Temporary Redirect\",\r\n 308: \"Permanent Redirect\",\r\n 400: \"Bad Request\",\r\n 401: \"Unauthorized\",\r\n 402: \"Payment Required\",\r\n 403: \"Forbidden\",\r\n 404: \"Not Found\",\r\n 405: \"Method Not Allowed\",\r\n 406: \"Not Acceptable\",\r\n 407: \"Proxy Authentication Required\",\r\n 408: \"Request Timeout\",\r\n 409: \"Conflict\",\r\n 410: \"Gone\",\r\n 411: \"Length Required\",\r\n 412: \"Precondition Failed\",\r\n 413: \"Payload Too Large\",\r\n 414: \"URI Too Long\",\r\n 415: \"Unsupported Media Type\",\r\n 416: \"Range Not Satisfiable\",\r\n 417: \"Expectation Failed\",\r\n 421: \"Misdirected Request\",\r\n 422: \"Unprocessable Entity\",\r\n 423: \"Locked\",\r\n 424: \"Failed Dependency\",\r\n 425: \"Too Early\",\r\n 426: \"Upgrade Required\",\r\n 428: \"Precondition Required\",\r\n 429: \"Too Many Requests\",\r\n 431: \"Request Header Fields Too Large\",\r\n 451: \"Unavailable For Legal Reasons\",\r\n 500: \"Internal Server Error\",\r\n 501: \"Not Implemented\",\r\n 502: \"Bad Gateway\",\r\n 503: \"Service Unavailable\",\r\n 504: \"Gateway Timeout\",\r\n 505: \"HTTP Version Not Supported\",\r\n 506: \"Variant Also Negotiates\",\r\n 507: \"Insufficient Storage\",\r\n 508: \"Loop Detected\",\r\n 510: \"Not Extended\",\r\n 511: \"Network Authentication Required\",\r\n};\r\n//# sourceMappingURL=ChaosHandlerData.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { MiddlewareControl } from \"./MiddlewareControl\";\r\nimport { generateUUID } from \"./MiddlewareUtil\";\r\nimport { httpStatusCode, methodStatusCode } from \"./options/ChaosHandlerData\";\r\nimport { ChaosHandlerOptions } from \"./options/ChaosHandlerOptions\";\r\nimport { ChaosStrategy } from \"./options/ChaosStrategy\";\r\n/**\r\n * Class representing ChaosHandler\r\n * @class\r\n * Class\r\n * @implements Middleware\r\n */\r\nexport class ChaosHandler {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of Testing Handler\r\n * @param {ChaosHandlerOptions} [options = new ChaosHandlerOptions()] - The testing handler options instance\r\n * @param manualMap - The Map passed by user containing url-statusCode info\r\n * @returns An instance of Testing Handler\r\n */\r\n constructor(options = new ChaosHandlerOptions(), manualMap) {\r\n this.options = options;\r\n this.manualMap = manualMap;\r\n }\r\n /**\r\n * Generates responseHeader\r\n * @private\r\n * @param {number} statusCode - the status code to be returned for the request\r\n * @param {string} requestID - request id\r\n * @param {string} requestDate - date of the request\r\n * @returns response Header\r\n */\r\n createResponseHeaders(statusCode, requestID, requestDate) {\r\n const responseHeader = new Headers();\r\n responseHeader.append(\"Cache-Control\", \"no-store\");\r\n responseHeader.append(\"request-id\", requestID);\r\n responseHeader.append(\"client-request-id\", requestID);\r\n responseHeader.append(\"x-ms-ags-diagnostic\", \"\");\r\n responseHeader.append(\"Date\", requestDate);\r\n responseHeader.append(\"Strict-Transport-Security\", \"\");\r\n if (statusCode === 429) {\r\n // throttling case has to have a timeout scenario\r\n responseHeader.append(\"retry-after\", \"300\");\r\n }\r\n return responseHeader;\r\n }\r\n /**\r\n * Generates responseBody\r\n * @private\r\n * @param {number} statusCode - the status code to be returned for the request\r\n * @param {string} statusMessage - the status message to be returned for the request\r\n * @param {string} requestID - request id\r\n * @param {string} requestDate - date of the request\r\n * @param {any?} requestBody - the request body to be returned for the request\r\n * @returns response body\r\n */\r\n createResponseBody(statusCode, statusMessage, requestID, requestDate, responseBody) {\r\n if (responseBody) {\r\n return responseBody;\r\n }\r\n let body;\r\n if (statusCode >= 400) {\r\n const codeMessage = httpStatusCode[statusCode];\r\n const errMessage = statusMessage;\r\n body = {\r\n error: {\r\n code: codeMessage,\r\n message: errMessage,\r\n innerError: {\r\n \"request-id\": requestID,\r\n date: requestDate,\r\n },\r\n },\r\n };\r\n }\r\n else {\r\n body = {};\r\n }\r\n return body;\r\n }\r\n /**\r\n * creates a response\r\n * @private\r\n * @param {ChaosHandlerOptions} ChaosHandlerOptions - The ChaosHandlerOptions object\r\n * @param {Context} context - Contains the context of the request\r\n */\r\n createResponse(chaosHandlerOptions, context) {\r\n try {\r\n let responseBody;\r\n let responseHeader;\r\n let requestID;\r\n let requestDate;\r\n const requestURL = context.request;\r\n requestID = generateUUID();\r\n requestDate = new Date();\r\n responseHeader = this.createResponseHeaders(chaosHandlerOptions.statusCode, requestID, requestDate.toString());\r\n responseBody = this.createResponseBody(chaosHandlerOptions.statusCode, chaosHandlerOptions.statusMessage, requestID, requestDate.toString(), chaosHandlerOptions.responseBody);\r\n const init = { url: requestURL, status: chaosHandlerOptions.statusCode, statusText: chaosHandlerOptions.statusMessage, headers: responseHeader };\r\n context.response = new Response(responseBody, init);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Decides whether to send the request to the graph or not\r\n * @private\r\n * @param {ChaosHandlerOptions} chaosHandlerOptions - A ChaosHandlerOptions object\r\n * @param {Context} context - Contains the context of the request\r\n * @returns nothing\r\n */\r\n sendRequest(chaosHandlerOptions, context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n this.setStatusCode(chaosHandlerOptions, context.request, context.options.method);\r\n if (!chaosHandlerOptions.statusCode) {\r\n yield this.nextMiddleware.execute(context);\r\n }\r\n else {\r\n this.createResponse(chaosHandlerOptions, context);\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * Fetches a random status code for the RANDOM mode from the predefined array\r\n * @private\r\n * @param {string} requestMethod - the API method for the request\r\n * @returns a random status code from a given set of status codes\r\n */\r\n getRandomStatusCode(requestMethod) {\r\n try {\r\n const statusCodeArray = methodStatusCode[requestMethod];\r\n return statusCodeArray[Math.floor(Math.random() * statusCodeArray.length)];\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * To fetch the relative URL out of the complete URL using a predefined regex pattern\r\n * @private\r\n * @param {string} urlMethod - the complete URL\r\n * @returns the string as relative URL\r\n */\r\n getRelativeURL(urlMethod) {\r\n const pattern = /https?:\\/\\/graph\\.microsoft\\.com\\/[^/]+(.+?)(\\?|$)/;\r\n let relativeURL;\r\n if (pattern.exec(urlMethod) !== null) {\r\n relativeURL = pattern.exec(urlMethod)[1];\r\n }\r\n return relativeURL;\r\n }\r\n /**\r\n * To fetch the status code from the map(if needed), then returns response by calling createResponse\r\n * @private\r\n * @param {ChaosHandlerOptions} ChaosHandlerOptions - The ChaosHandlerOptions object\r\n * @param {string} requestURL - the URL for the request\r\n * @param {string} requestMethod - the API method for the request\r\n */\r\n setStatusCode(chaosHandlerOptions, requestURL, requestMethod) {\r\n try {\r\n if (chaosHandlerOptions.chaosStrategy === ChaosStrategy.MANUAL) {\r\n if (chaosHandlerOptions.statusCode === undefined) {\r\n // manual mode with no status code, can be a global level or request level without statusCode\r\n const relativeURL = this.getRelativeURL(requestURL);\r\n if (this.manualMap.get(relativeURL) !== undefined) {\r\n // checking Manual Map for exact match\r\n if (this.manualMap.get(relativeURL).get(requestMethod) !== undefined) {\r\n chaosHandlerOptions.statusCode = this.manualMap.get(relativeURL).get(requestMethod);\r\n }\r\n // else statusCode would be undefined\r\n }\r\n else {\r\n // checking for regex match if exact match doesn't work\r\n this.manualMap.forEach((value, key) => {\r\n const regexURL = new RegExp(key + \"$\");\r\n if (regexURL.test(relativeURL)) {\r\n if (this.manualMap.get(key).get(requestMethod) !== undefined) {\r\n chaosHandlerOptions.statusCode = this.manualMap.get(key).get(requestMethod);\r\n }\r\n // else statusCode would be undefined\r\n }\r\n });\r\n }\r\n // Case of redirection or request url not in map ---> statusCode would be undefined\r\n }\r\n }\r\n else {\r\n // Handling the case of Random here\r\n if (Math.floor(Math.random() * 100) < chaosHandlerOptions.chaosPercentage) {\r\n chaosHandlerOptions.statusCode = this.getRandomStatusCode(requestMethod);\r\n }\r\n // else statusCode would be undefined\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * To get the options for execution of the middleware\r\n * @private\r\n * @param {Context} context - The context object\r\n * @returns options for middleware execution\r\n */\r\n getOptions(context) {\r\n let options;\r\n if (context.middlewareControl instanceof MiddlewareControl) {\r\n options = context.middlewareControl.getMiddlewareOptions(ChaosHandlerOptions);\r\n }\r\n if (typeof options === \"undefined\") {\r\n options = Object.assign(new ChaosHandlerOptions(), this.options);\r\n }\r\n return options;\r\n }\r\n /**\r\n * To execute the current middleware\r\n * @public\r\n * @async\r\n * @param {Context} context - The context object of the request\r\n * @returns A Promise that resolves to nothing\r\n */\r\n execute(context) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const chaosHandlerOptions = this.getOptions(context);\r\n return yield this.sendRequest(chaosHandlerOptions, context);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To set the next middleware in the chain\r\n * @param {Middleware} next - The middleware instance\r\n * @returns Nothing\r\n */\r\n setNext(next) {\r\n this.nextMiddleware = next;\r\n }\r\n}\r\n//# sourceMappingURL=ChaosHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @class\r\n * Class for PageIterator\r\n */\r\nexport class PageIterator {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates new instance for PageIterator\r\n * @param {Client} client - The graph client instance\r\n * @param {PageCollection} pageCollection - The page collection object\r\n * @param {PageIteratorCallback} callBack - The callback function\r\n * @param {GraphRequestOptions} requestOptions - The request options\r\n * @returns An instance of a PageIterator\r\n */\r\n constructor(client, pageCollection, callback, requestOptions) {\r\n this.client = client;\r\n this.collection = pageCollection.value;\r\n this.nextLink = pageCollection[\"@odata.nextLink\"];\r\n this.deltaLink = pageCollection[\"@odata.deltaLink\"];\r\n this.callback = callback;\r\n this.complete = false;\r\n this.requestOptions = requestOptions;\r\n }\r\n /**\r\n * @private\r\n * Iterates over a collection by enqueuing entries one by one and kicking the callback with the enqueued entry\r\n * @returns A boolean indicating the continue flag to process next page\r\n */\r\n iterationHelper() {\r\n if (this.collection === undefined) {\r\n return false;\r\n }\r\n let advance = true;\r\n while (advance && this.collection.length !== 0) {\r\n const item = this.collection.shift();\r\n advance = this.callback(item);\r\n }\r\n return advance;\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * Helper to make a get request to fetch next page with nextLink url and update the page iterator instance with the returned response\r\n * @returns A promise that resolves to a response data with next page collection\r\n */\r\n fetchAndUpdateNextPageData() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let graphRequest = this.client.api(this.nextLink);\r\n if (this.requestOptions) {\r\n if (this.requestOptions.headers) {\r\n graphRequest = graphRequest.headers(this.requestOptions.headers);\r\n }\r\n if (this.requestOptions.middlewareOptions) {\r\n graphRequest = graphRequest.middlewareOptions(this.requestOptions.middlewareOptions);\r\n }\r\n if (this.requestOptions.options) {\r\n graphRequest = graphRequest.options(this.requestOptions.options);\r\n }\r\n }\r\n const response = yield graphRequest.get();\r\n this.collection = response.value;\r\n this.nextLink = response[\"@odata.nextLink\"];\r\n this.deltaLink = response[\"@odata.deltaLink\"];\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * Getter to get the deltaLink in the current response\r\n * @returns A deltaLink which is being used to make delta requests in future\r\n */\r\n getDeltaLink() {\r\n return this.deltaLink;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Iterates over the collection and kicks callback for each item on iteration. Fetches next set of data through nextLink and iterates over again\r\n * This happens until the nextLink is drained out or the user responds with a red flag to continue from callback\r\n * @returns A Promise that resolves to nothing on completion and throws error incase of any discrepancy.\r\n */\r\n iterate() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let advance = this.iterationHelper();\r\n while (advance) {\r\n if (this.nextLink !== undefined) {\r\n yield this.fetchAndUpdateNextPageData();\r\n advance = this.iterationHelper();\r\n }\r\n else {\r\n advance = false;\r\n }\r\n }\r\n if (this.nextLink === undefined && this.collection.length === 0) {\r\n this.complete = true;\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To resume the iteration\r\n * Note: This internally calls the iterate method, It's just for more readability.\r\n * @returns A Promise that resolves to nothing on completion and throws error incase of any discrepancy\r\n */\r\n resume() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return this.iterate();\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * To get the completeness status of the iterator\r\n * @returns Boolean indicating the completeness\r\n */\r\n isComplete() {\r\n return this.complete;\r\n }\r\n}\r\n//# sourceMappingURL=PageIterator.js.map","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @class\r\n * Class representing CustomAuthenticationProvider\r\n * @extends AuthenticationProvider\r\n */\r\nexport class CustomAuthenticationProvider {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of CustomAuthenticationProvider\r\n * @param {AuthProviderCallback} provider - An authProvider function\r\n * @returns An instance of CustomAuthenticationProvider\r\n */\r\n constructor(provider) {\r\n this.provider = provider;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To get the access token\r\n * @returns The promise that resolves to an access token\r\n */\r\n getAccessToken() {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n this.provider((error, accessToken) => {\r\n if (accessToken) {\r\n resolve(accessToken);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=CustomAuthenticationProvider.js.map","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module GraphError\r\n */\r\n/**\r\n * @class\r\n * Class for GraphError\r\n * @NOTE: This is NOT what is returned from the Graph\r\n * GraphError is created from parsing JSON errors returned from the graph\r\n * Some fields are renamed ie, \"request-id\" => requestId so you can use dot notation\r\n */\r\nexport class GraphError extends Error {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of GraphError\r\n * @param {number} [statusCode = -1] - The status code of the error\r\n * @returns An instance of GraphError\r\n */\r\n constructor(statusCode = -1, message, baseError) {\r\n super(message || (baseError && baseError.message));\r\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, GraphError.prototype);\r\n this.statusCode = statusCode;\r\n this.code = null;\r\n this.requestId = null;\r\n this.date = new Date();\r\n this.body = null;\r\n this.stack = baseError ? baseError.stack : this.stack;\r\n }\r\n}\r\n//# sourceMappingURL=GraphError.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @enum\r\n * Enum for ResponseType values\r\n * @property {string} ARRAYBUFFER - To download response content as an [ArrayBuffer]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer}\r\n * @property {string} BLOB - To download content as a [binary/blob] {@link https://developer.mozilla.org/en-US/docs/Web/API/Blob}\r\n * @property {string} DOCUMENT - This downloads content as a document or stream\r\n * @property {string} JSON - To download response content as a json\r\n * @property {string} STREAM - To download response as a [stream]{@link https://nodejs.org/api/stream.html}\r\n * @property {string} TEXT - For downloading response as a text\r\n */\r\nexport var ResponseType;\r\n(function (ResponseType) {\r\n ResponseType[\"ARRAYBUFFER\"] = \"arraybuffer\";\r\n ResponseType[\"BLOB\"] = \"blob\";\r\n ResponseType[\"DOCUMENT\"] = \"document\";\r\n ResponseType[\"JSON\"] = \"json\";\r\n ResponseType[\"RAW\"] = \"raw\";\r\n ResponseType[\"STREAM\"] = \"stream\";\r\n ResponseType[\"TEXT\"] = \"text\";\r\n})(ResponseType || (ResponseType = {}));\r\n//# sourceMappingURL=ResponseType.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ResponseType } from \"./ResponseType\";\r\n/**\r\n * @enum\r\n * Enum for document types\r\n * @property {string} TEXT_HTML - The text/html content type\r\n * @property {string} TEXT_XML - The text/xml content type\r\n * @property {string} APPLICATION_XML - The application/xml content type\r\n * @property {string} APPLICATION_XHTML - The application/xhml+xml content type\r\n */\r\nexport var DocumentType;\r\n(function (DocumentType) {\r\n DocumentType[\"TEXT_HTML\"] = \"text/html\";\r\n DocumentType[\"TEXT_XML\"] = \"text/xml\";\r\n DocumentType[\"APPLICATION_XML\"] = \"application/xml\";\r\n DocumentType[\"APPLICATION_XHTML\"] = \"application/xhtml+xml\";\r\n})(DocumentType || (DocumentType = {}));\r\n/**\r\n * @enum\r\n * Enum for Content types\r\n * @property {string} TEXT_PLAIN - The text/plain content type\r\n * @property {string} APPLICATION_JSON - The application/json content type\r\n */\r\nvar ContentType;\r\n(function (ContentType) {\r\n ContentType[\"TEXT_PLAIN\"] = \"text/plain\";\r\n ContentType[\"APPLICATION_JSON\"] = \"application/json\";\r\n})(ContentType || (ContentType = {}));\r\n/**\r\n * @enum\r\n * Enum for Content type regex\r\n * @property {string} DOCUMENT - The regex to match document content types\r\n * @property {string} IMAGE - The regex to match image content types\r\n */\r\nvar ContentTypeRegexStr;\r\n(function (ContentTypeRegexStr) {\r\n ContentTypeRegexStr[\"DOCUMENT\"] = \"^(text\\\\/(html|xml))|(application\\\\/(xml|xhtml\\\\+xml))$\";\r\n ContentTypeRegexStr[\"IMAGE\"] = \"^image\\\\/.+\";\r\n})(ContentTypeRegexStr || (ContentTypeRegexStr = {}));\r\n/**\r\n * @class\r\n * Class for GraphResponseHandler\r\n */\r\nexport class GraphResponseHandler {\r\n /**\r\n * @private\r\n * @static\r\n * To parse Document response\r\n * @param {Response} rawResponse - The response object\r\n * @param {DocumentType} type - The type to which the document needs to be parsed\r\n * @returns A promise that resolves to a document content\r\n */\r\n static parseDocumentResponse(rawResponse, type) {\r\n try {\r\n if (typeof DOMParser !== \"undefined\") {\r\n return new Promise((resolve, reject) => {\r\n rawResponse.text().then((xmlString) => {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlString, type);\r\n resolve(xmlDoc);\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n return Promise.resolve(rawResponse.body);\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * @async\r\n * To convert the native Response to response content\r\n * @param {Response} rawResponse - The response object\r\n * @param {ResponseType} [responseType] - The response type value\r\n * @returns A promise that resolves to the converted response content\r\n */\r\n static convertResponse(rawResponse, responseType) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n if (rawResponse.status === 204) {\r\n // NO CONTENT\r\n return Promise.resolve();\r\n }\r\n let responseValue;\r\n try {\r\n switch (responseType) {\r\n case ResponseType.ARRAYBUFFER:\r\n responseValue = yield rawResponse.arrayBuffer();\r\n break;\r\n case ResponseType.BLOB:\r\n responseValue = yield rawResponse.blob();\r\n break;\r\n case ResponseType.DOCUMENT:\r\n responseValue = yield GraphResponseHandler.parseDocumentResponse(rawResponse, DocumentType.TEXT_XML);\r\n break;\r\n case ResponseType.JSON:\r\n responseValue = yield rawResponse.json();\r\n break;\r\n case ResponseType.STREAM:\r\n responseValue = yield Promise.resolve(rawResponse.body);\r\n break;\r\n case ResponseType.TEXT:\r\n responseValue = yield rawResponse.text();\r\n break;\r\n default:\r\n const contentType = rawResponse.headers.get(\"Content-type\");\r\n if (contentType !== null) {\r\n const mimeType = contentType.split(\";\")[0];\r\n if (new RegExp(ContentTypeRegexStr.DOCUMENT).test(mimeType)) {\r\n responseValue = yield GraphResponseHandler.parseDocumentResponse(rawResponse, mimeType);\r\n }\r\n else if (new RegExp(ContentTypeRegexStr.IMAGE).test(mimeType)) {\r\n responseValue = rawResponse.blob();\r\n }\r\n else if (mimeType === ContentType.TEXT_PLAIN) {\r\n responseValue = yield rawResponse.text();\r\n }\r\n else if (mimeType === ContentType.APPLICATION_JSON) {\r\n responseValue = yield rawResponse.json();\r\n }\r\n else {\r\n responseValue = Promise.resolve(rawResponse.body);\r\n }\r\n }\r\n else {\r\n /**\r\n * RFC specification {@link https://tools.ietf.org/html/rfc7231#section-3.1.1.5} says:\r\n * A sender that generates a message containing a payload body SHOULD\r\n * generate a Content-Type header field in that message unless the\r\n * intended media type of the enclosed representation is unknown to the\r\n * sender. If a Content-Type header field is not present, the recipient\r\n * MAY either assume a media type of \"application/octet-stream\"\r\n * ([RFC2046], Section 4.5.1) or examine the data to determine its type.\r\n *\r\n * So assuming it as a stream type so returning the body.\r\n */\r\n responseValue = Promise.resolve(rawResponse.body);\r\n }\r\n break;\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n return responseValue;\r\n });\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * @async\r\n * To get the parsed response\r\n * @param {Response} rawResponse - The response object\r\n * @param {ResponseType} [responseType] - The response type value\r\n * @param {GraphRequestCallback} [callback] - The graph request callback function\r\n * @returns The parsed response\r\n */\r\n static getResponse(rawResponse, responseType, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n if (responseType === ResponseType.RAW) {\r\n return Promise.resolve(rawResponse);\r\n }\r\n else {\r\n const response = yield GraphResponseHandler.convertResponse(rawResponse, responseType);\r\n if (rawResponse.ok) {\r\n // Status Code 2XX\r\n if (typeof callback === \"function\") {\r\n callback(null, response);\r\n }\r\n else {\r\n return response;\r\n }\r\n }\r\n else {\r\n // NOT OK Response\r\n throw response;\r\n }\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=GraphResponseHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @module GraphErrorHandler\r\n */\r\nimport { GraphError } from \"./GraphError\";\r\n/**\r\n * @class\r\n * Class for GraphErrorHandler\r\n */\r\nexport class GraphErrorHandler {\r\n /**\r\n * @private\r\n * @static\r\n * Populates the GraphError instance with Error instance values\r\n * @param {Error} error - The error returned by graph service or some native error\r\n * @param {number} [statusCode] - The status code of the response\r\n * @returns The GraphError instance\r\n */\r\n static constructError(error, statusCode) {\r\n const gError = new GraphError(statusCode, \"\", error);\r\n if (error.name !== undefined) {\r\n gError.code = error.name;\r\n }\r\n gError.body = error.toString();\r\n gError.date = new Date();\r\n return gError;\r\n }\r\n /**\r\n * @private\r\n * @static\r\n * @async\r\n * Populates the GraphError instance from the Error returned by graph service\r\n * @param {any} error - The error returned by graph service or some native error\r\n * @param {number} statusCode - The status code of the response\r\n * @returns A promise that resolves to GraphError instance\r\n *\r\n * Example error for https://graph.microsoft.com/v1.0/me/events?$top=3&$search=foo\r\n * {\r\n * \"error\": {\r\n * \"code\": \"SearchEvents\",\r\n * \"message\": \"The parameter $search is not currently supported on the Events resource.\",\r\n * \"innerError\": {\r\n * \"request-id\": \"b31c83fd-944c-4663-aa50-5d9ceb367e19\",\r\n * \"date\": \"2016-11-17T18:37:45\"\r\n * }\r\n * }\r\n * }\r\n */\r\n static constructErrorFromResponse(error, statusCode) {\r\n error = error.error;\r\n const gError = new GraphError(statusCode, error.message);\r\n gError.code = error.code;\r\n if (error.innerError !== undefined) {\r\n gError.requestId = error.innerError[\"request-id\"];\r\n gError.date = new Date(error.innerError.date);\r\n }\r\n try {\r\n gError.body = JSON.stringify(error);\r\n }\r\n catch (error) {\r\n // tslint:disable-line: no-empty\r\n }\r\n return gError;\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * @async\r\n * To get the GraphError object\r\n * @param {any} [error = null] - The error returned by graph service or some native error\r\n * @param {number} [statusCode = -1] - The status code of the response\r\n * @param {GraphRequestCallback} [callback] - The graph request callback function\r\n * @returns A promise that resolves to GraphError instance\r\n */\r\n static getError(error = null, statusCode = -1, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n let gError;\r\n if (error && error.error) {\r\n gError = GraphErrorHandler.constructErrorFromResponse(error, statusCode);\r\n }\r\n else if (typeof Error !== \"undefined\" && error instanceof Error) {\r\n gError = GraphErrorHandler.constructError(error, statusCode);\r\n }\r\n else {\r\n gError = new GraphError(statusCode);\r\n }\r\n if (typeof callback === \"function\") {\r\n callback(gError, null);\r\n }\r\n else {\r\n return gError;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=GraphErrorHandler.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { GraphErrorHandler } from \"./GraphErrorHandler\";\r\nimport { oDataQueryNames, serializeContent, urlJoin } from \"./GraphRequestUtil\";\r\nimport { GraphResponseHandler } from \"./GraphResponseHandler\";\r\nimport { MiddlewareControl } from \"./middleware/MiddlewareControl\";\r\nimport { RequestMethod } from \"./RequestMethod\";\r\nimport { ResponseType } from \"./ResponseType\";\r\n/**\r\n * @class\r\n * A Class representing GraphRequest\r\n */\r\nexport class GraphRequest {\r\n /* tslint:enable: variable-name */\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of GraphRequest\r\n * @param {HTTPClient} httpClient - The HTTPClient instance\r\n * @param {ClientOptions} config - The options for making request\r\n * @param {string} path - A path string\r\n */\r\n constructor(httpClient, config, path) {\r\n /**\r\n * @private\r\n * Parses the path string and creates URLComponents out of it\r\n * @param {string} path - The request path string\r\n * @returns Nothing\r\n */\r\n this.parsePath = (path) => {\r\n // Strips out the base of the url if they passed in\r\n if (path.indexOf(\"https://\") !== -1) {\r\n path = path.replace(\"https://\", \"\");\r\n // Find where the host ends\r\n const endOfHostStrPos = path.indexOf(\"/\");\r\n if (endOfHostStrPos !== -1) {\r\n // Parse out the host\r\n this.urlComponents.host = \"https://\" + path.substring(0, endOfHostStrPos);\r\n // Strip the host from path\r\n path = path.substring(endOfHostStrPos + 1, path.length);\r\n }\r\n // Remove the following version\r\n const endOfVersionStrPos = path.indexOf(\"/\");\r\n if (endOfVersionStrPos !== -1) {\r\n // Parse out the version\r\n this.urlComponents.version = path.substring(0, endOfVersionStrPos);\r\n // Strip version from path\r\n path = path.substring(endOfVersionStrPos + 1, path.length);\r\n }\r\n }\r\n // Strip out any leading \"/\"\r\n if (path.charAt(0) === \"/\") {\r\n path = path.substr(1);\r\n }\r\n const queryStrPos = path.indexOf(\"?\");\r\n if (queryStrPos === -1) {\r\n // No query string\r\n this.urlComponents.path = path;\r\n }\r\n else {\r\n this.urlComponents.path = path.substr(0, queryStrPos);\r\n // Capture query string into oDataQueryParams and otherURLQueryParams\r\n const queryParams = path.substring(queryStrPos + 1, path.length).split(\"&\");\r\n for (const queryParam of queryParams) {\r\n this.parseQueryParameter(queryParam);\r\n }\r\n }\r\n };\r\n this.httpClient = httpClient;\r\n this.config = config;\r\n this.urlComponents = {\r\n host: this.config.baseUrl,\r\n version: this.config.defaultVersion,\r\n oDataQueryParams: {},\r\n otherURLQueryParams: {},\r\n otherURLQueryOptions: [],\r\n };\r\n this._headers = {};\r\n this._options = {};\r\n this._middlewareOptions = [];\r\n this.parsePath(path);\r\n }\r\n /**\r\n * @private\r\n * Adds the query parameter as comma separated values\r\n * @param {string} propertyName - The name of a property\r\n * @param {string|string[]} propertyValue - The vale of a property\r\n * @param {IArguments} additionalProperties - The additional properties\r\n * @returns Nothing\r\n */\r\n addCsvQueryParameter(propertyName, propertyValue, additionalProperties) {\r\n // If there are already $propertyName value there, append a \",\"\r\n this.urlComponents.oDataQueryParams[propertyName] = this.urlComponents.oDataQueryParams[propertyName] ? this.urlComponents.oDataQueryParams[propertyName] + \",\" : \"\";\r\n let allValues = [];\r\n if (additionalProperties.length > 1 && typeof propertyValue === \"string\") {\r\n allValues = Array.prototype.slice.call(additionalProperties);\r\n }\r\n else if (typeof propertyValue === \"string\") {\r\n allValues.push(propertyValue);\r\n }\r\n else {\r\n allValues = allValues.concat(propertyValue);\r\n }\r\n this.urlComponents.oDataQueryParams[propertyName] += allValues.join(\",\");\r\n }\r\n /**\r\n * @private\r\n * Builds the full url from the URLComponents to make a request\r\n * @returns The URL string that is qualified to make a request to graph endpoint\r\n */\r\n buildFullUrl() {\r\n const url = urlJoin([this.urlComponents.host, this.urlComponents.version, this.urlComponents.path]) + this.createQueryString();\r\n if (this.config.debugLogging) {\r\n console.log(url); // tslint:disable-line: no-console\r\n }\r\n return url;\r\n }\r\n /**\r\n * @private\r\n * Builds the query string from the URLComponents\r\n * @returns The Constructed query string\r\n */\r\n createQueryString() {\r\n // Combining query params from oDataQueryParams and otherURLQueryParams\r\n const urlComponents = this.urlComponents;\r\n const query = [];\r\n if (Object.keys(urlComponents.oDataQueryParams).length !== 0) {\r\n for (const property in urlComponents.oDataQueryParams) {\r\n if (urlComponents.oDataQueryParams.hasOwnProperty(property)) {\r\n query.push(property + \"=\" + urlComponents.oDataQueryParams[property]);\r\n }\r\n }\r\n }\r\n if (Object.keys(urlComponents.otherURLQueryParams).length !== 0) {\r\n for (const property in urlComponents.otherURLQueryParams) {\r\n if (urlComponents.otherURLQueryParams.hasOwnProperty(property)) {\r\n query.push(property + \"=\" + urlComponents.otherURLQueryParams[property]);\r\n }\r\n }\r\n }\r\n if (urlComponents.otherURLQueryOptions.length !== 0) {\r\n for (const str of urlComponents.otherURLQueryOptions) {\r\n query.push(str);\r\n }\r\n }\r\n return query.length > 0 ? \"?\" + query.join(\"&\") : \"\";\r\n }\r\n /**\r\n * @private\r\n * Parses the query parameters to set the urlComponents property of the GraphRequest object\r\n * @param {string|KeyValuePairObjectStringNumber} queryDictionaryOrString - The query parameter\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n parseQueryParameter(queryDictionaryOrString) {\r\n if (typeof queryDictionaryOrString === \"string\") {\r\n if (queryDictionaryOrString.charAt(0) === \"?\") {\r\n queryDictionaryOrString = queryDictionaryOrString.substring(1);\r\n }\r\n if (queryDictionaryOrString.indexOf(\"&\") !== -1) {\r\n const queryParams = queryDictionaryOrString.split(\"&\");\r\n for (const str of queryParams) {\r\n this.parseQueryParamenterString(str);\r\n }\r\n }\r\n else {\r\n this.parseQueryParamenterString(queryDictionaryOrString);\r\n }\r\n }\r\n else if (queryDictionaryOrString.constructor === Object) {\r\n for (const key in queryDictionaryOrString) {\r\n if (queryDictionaryOrString.hasOwnProperty(key)) {\r\n this.setURLComponentsQueryParamater(key, queryDictionaryOrString[key]);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * @private\r\n * Parses the query parameter of string type to set the urlComponents property of the GraphRequest object\r\n * @param {string} queryParameter - the query parameters\r\n * returns nothing\r\n */\r\n parseQueryParamenterString(queryParameter) {\r\n /* The query key-value pair must be split on the first equals sign to avoid errors in parsing nested query parameters.\r\n Example-> \"/me?$expand=home($select=city)\" */\r\n if (this.isValidQueryKeyValuePair(queryParameter)) {\r\n const indexOfFirstEquals = queryParameter.indexOf(\"=\");\r\n const paramKey = queryParameter.substring(0, indexOfFirstEquals);\r\n const paramValue = queryParameter.substring(indexOfFirstEquals + 1);\r\n this.setURLComponentsQueryParamater(paramKey, paramValue);\r\n }\r\n else {\r\n /* Push values which are not of key-value structure.\r\n Example-> Handle an invalid input->.query(test), .query($select($select=name)) and let the Graph API respond with the error in the URL*/\r\n this.urlComponents.otherURLQueryOptions.push(queryParameter);\r\n }\r\n }\r\n /**\r\n * @private\r\n * Sets values into the urlComponents property of GraphRequest object.\r\n * @param {string} paramKey - the query parameter key\r\n * @param {string} paramValue - the query paramter value\r\n * @returns nothing\r\n */\r\n setURLComponentsQueryParamater(paramKey, paramValue) {\r\n if (oDataQueryNames.indexOf(paramKey) !== -1) {\r\n const currentValue = this.urlComponents.oDataQueryParams[paramKey];\r\n const isValueAppendable = currentValue && (paramKey === \"$expand\" || paramKey === \"$select\" || paramKey === \"$orderby\");\r\n this.urlComponents.oDataQueryParams[paramKey] = isValueAppendable ? currentValue + \",\" + paramValue : paramValue;\r\n }\r\n else {\r\n this.urlComponents.otherURLQueryParams[paramKey] = paramValue;\r\n }\r\n }\r\n /**\r\n * @private\r\n * Check if the query parameter string has a valid key-value structure\r\n * @param {string} queryString - the query parameter string. Example -> \"name=value\"\r\n * #returns true if the query string has a valid key-value structure else false\r\n */\r\n isValidQueryKeyValuePair(queryString) {\r\n const indexofFirstEquals = queryString.indexOf(\"=\");\r\n if (indexofFirstEquals === -1) {\r\n return false;\r\n }\r\n const indexofOpeningParanthesis = queryString.indexOf(\"(\");\r\n if (indexofOpeningParanthesis !== -1 && queryString.indexOf(\"(\") < indexofFirstEquals) {\r\n // Example -> .query($select($expand=true));\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * @private\r\n * Updates the custom headers and options for a request\r\n * @param {FetchOptions} options - The request options object\r\n * @returns Nothing\r\n */\r\n updateRequestOptions(options) {\r\n const optionsHeaders = Object.assign({}, options.headers);\r\n if (this.config.fetchOptions !== undefined) {\r\n const fetchOptions = Object.assign({}, this.config.fetchOptions);\r\n Object.assign(options, fetchOptions);\r\n if (typeof this.config.fetchOptions.headers !== undefined) {\r\n options.headers = Object.assign({}, this.config.fetchOptions.headers);\r\n }\r\n }\r\n Object.assign(options, this._options);\r\n if (options.headers !== undefined) {\r\n Object.assign(optionsHeaders, options.headers);\r\n }\r\n Object.assign(optionsHeaders, this._headers);\r\n options.headers = optionsHeaders;\r\n }\r\n /**\r\n * @private\r\n * @async\r\n * Adds the custom headers and options to the request and makes the HTTPClient send request call\r\n * @param {RequestInfo} request - The request url string or the Request object value\r\n * @param {FetchOptions} options - The options to make a request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the response content\r\n */\r\n send(request, options, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n let rawResponse;\r\n const middlewareControl = new MiddlewareControl(this._middlewareOptions);\r\n this.updateRequestOptions(options);\r\n try {\r\n const context = yield this.httpClient.sendRequest({\r\n request,\r\n options,\r\n middlewareControl,\r\n });\r\n rawResponse = context.response;\r\n const response = yield GraphResponseHandler.getResponse(rawResponse, this._responseType, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n let statusCode;\r\n if (typeof rawResponse !== \"undefined\") {\r\n statusCode = rawResponse.status;\r\n }\r\n const gError = yield GraphErrorHandler.getError(error, statusCode, callback);\r\n throw gError;\r\n }\r\n });\r\n }\r\n /**\r\n * @private\r\n * Checks if the content-type is present in the _headers property. If not present, defaults the content-type to application/json\r\n * @param none\r\n * @returns nothing\r\n */\r\n setHeaderContentType() {\r\n if (!this._headers) {\r\n this.header(\"Content-Type\", \"application/json\");\r\n return;\r\n }\r\n const headerKeys = Object.keys(this._headers);\r\n for (const headerKey of headerKeys) {\r\n if (headerKey.toLowerCase() === \"content-type\") {\r\n return;\r\n }\r\n }\r\n // Default the content-type to application/json in case the content-type is not present in the header\r\n this.header(\"Content-Type\", \"application/json\");\r\n }\r\n /**\r\n * @public\r\n * Sets the custom header for a request\r\n * @param {string} headerKey - A header key\r\n * @param {string} headerValue - A header value\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n header(headerKey, headerValue) {\r\n this._headers[headerKey] = headerValue;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the custom headers for a request\r\n * @param {KeyValuePairObjectStringNumber | HeadersInit} headers - The request headers\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n headers(headers) {\r\n for (const key in headers) {\r\n if (headers.hasOwnProperty(key)) {\r\n this._headers[key] = headers[key];\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the option for making a request\r\n * @param {string} key - The key value\r\n * @param {any} value - The value\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n option(key, value) {\r\n this._options[key] = value;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the options for making a request\r\n * @param {{ [key: string]: any }} options - The options key value pair\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n options(options) {\r\n for (const key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n this._options[key] = options[key];\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the middleware options for a request\r\n * @param {MiddlewareOptions[]} options - The array of middleware options\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n middlewareOptions(options) {\r\n this._middlewareOptions = options;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the api endpoint version for a request\r\n * @param {string} version - The version value\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n version(version) {\r\n this.urlComponents.version = version;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Sets the api endpoint version for a request\r\n * @param {ResponseType} responseType - The response type value\r\n * @returns The same GraphRequest instance that is being called with\r\n */\r\n responseType(responseType) {\r\n this._responseType = responseType;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add properties for select OData Query param\r\n * @param {string|string[]} properties - The Properties value\r\n * @returns The same GraphRequest instance that is being called with, after adding the properties for $select query\r\n */\r\n /*\r\n * Accepts .select(\"displayName,birthday\")\r\n * and .select([\"displayName\", \"birthday\"])\r\n * and .select(\"displayName\", \"birthday\")\r\n *\r\n */\r\n select(properties) {\r\n this.addCsvQueryParameter(\"$select\", properties, arguments);\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add properties for expand OData Query param\r\n * @param {string|string[]} properties - The Properties value\r\n * @returns The same GraphRequest instance that is being called with, after adding the properties for $expand query\r\n */\r\n expand(properties) {\r\n this.addCsvQueryParameter(\"$expand\", properties, arguments);\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add properties for orderby OData Query param\r\n * @param {string|string[]} properties - The Properties value\r\n * @returns The same GraphRequest instance that is being called with, after adding the properties for $orderby query\r\n */\r\n orderby(properties) {\r\n this.addCsvQueryParameter(\"$orderby\", properties, arguments);\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add query string for filter OData Query param. The request URL accepts only one $filter Odata Query option and its value is set to the most recently passed filter query string.\r\n * @param {string} filterStr - The filter query string\r\n * @returns The same GraphRequest instance that is being called with, after adding the $filter query\r\n */\r\n filter(filterStr) {\r\n this.urlComponents.oDataQueryParams.$filter = filterStr;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add criterion for search OData Query param. The request URL accepts only one $search Odata Query option and its value is set to the most recently passed search criterion string.\r\n * @param {string} searchStr - The search criterion string\r\n * @returns The same GraphRequest instance that is being called with, after adding the $search query criteria\r\n */\r\n search(searchStr) {\r\n this.urlComponents.oDataQueryParams.$search = searchStr;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add number for top OData Query param. The request URL accepts only one $top Odata Query option and its value is set to the most recently passed number value.\r\n * @param {number} n - The number value\r\n * @returns The same GraphRequest instance that is being called with, after adding the number for $top query\r\n */\r\n top(n) {\r\n this.urlComponents.oDataQueryParams.$top = n;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add number for skip OData Query param. The request URL accepts only one $skip Odata Query option and its value is set to the most recently passed number value.\r\n * @param {number} n - The number value\r\n * @returns The same GraphRequest instance that is being called with, after adding the number for the $skip query\r\n */\r\n skip(n) {\r\n this.urlComponents.oDataQueryParams.$skip = n;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add token string for skipToken OData Query param. The request URL accepts only one $skipToken Odata Query option and its value is set to the most recently passed token value.\r\n * @param {string} token - The token value\r\n * @returns The same GraphRequest instance that is being called with, after adding the token string for $skipToken query option\r\n */\r\n skipToken(token) {\r\n this.urlComponents.oDataQueryParams.$skipToken = token;\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * To add boolean for count OData Query param. The URL accepts only one $count Odata Query option and its value is set to the most recently passed boolean value.\r\n * @param {boolean} isCount - The count boolean\r\n * @returns The same GraphRequest instance that is being called with, after adding the boolean value for the $count query option\r\n */\r\n count(isCount = false) {\r\n this.urlComponents.oDataQueryParams.$count = isCount.toString();\r\n return this;\r\n }\r\n /**\r\n * @public\r\n * Appends query string to the urlComponent\r\n * @param {string|KeyValuePairObjectStringNumber} queryDictionaryOrString - The query value\r\n * @returns The same GraphRequest instance that is being called with, after appending the query string to the url component\r\n */\r\n /*\r\n * Accepts .query(\"displayName=xyz\")\r\n * and .select({ name: \"value\" })\r\n */\r\n query(queryDictionaryOrString) {\r\n return this.parseQueryParameter(queryDictionaryOrString);\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes a http request with GET method\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the get response\r\n */\r\n get(callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n const options = {\r\n method: RequestMethod.GET,\r\n };\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes a http request with POST method\r\n * @param {any} content - The content that needs to be sent with the request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the post response\r\n */\r\n post(content, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n const options = {\r\n method: RequestMethod.POST,\r\n body: serializeContent(content),\r\n };\r\n const className = content && content.constructor && content.constructor.name;\r\n if (className === \"FormData\") {\r\n // Content-Type headers should not be specified in case the of FormData type content\r\n options.headers = {};\r\n }\r\n else {\r\n this.setHeaderContentType();\r\n options.headers = this._headers;\r\n }\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Alias for Post request call\r\n * @param {any} content - The content that needs to be sent with the request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the post response\r\n */\r\n create(content, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return yield this.post(content, callback);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes http request with PUT method\r\n * @param {any} content - The content that needs to be sent with the request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the put response\r\n */\r\n put(content, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n this.setHeaderContentType();\r\n const options = {\r\n method: RequestMethod.PUT,\r\n body: serializeContent(content),\r\n };\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes http request with PATCH method\r\n * @param {any} content - The content that needs to be sent with the request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the patch response\r\n */\r\n patch(content, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n this.setHeaderContentType();\r\n const options = {\r\n method: RequestMethod.PATCH,\r\n body: serializeContent(content),\r\n };\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Alias for PATCH request\r\n * @param {any} content - The content that needs to be sent with the request\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the patch response\r\n */\r\n update(content, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return yield this.patch(content, callback);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes http request with DELETE method\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the delete response\r\n */\r\n delete(callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n const options = {\r\n method: RequestMethod.DELETE,\r\n };\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Alias for delete request call\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the delete response\r\n */\r\n del(callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return yield this.delete(callback);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes a http request with GET method to read response as a stream.\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the getStream response\r\n */\r\n getStream(callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n const options = {\r\n method: RequestMethod.GET,\r\n };\r\n this.responseType(ResponseType.STREAM);\r\n try {\r\n const stream = yield this.send(url, options, callback);\r\n return stream;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * Makes a http request with GET method to read response as a stream.\r\n * @param {any} stream - The stream instance\r\n * @param {GraphRequestCallback} [callback] - The callback function to be called in response with async call\r\n * @returns A promise that resolves to the putStream response\r\n */\r\n putStream(stream, callback) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const url = this.buildFullUrl();\r\n const options = {\r\n method: RequestMethod.PUT,\r\n headers: {\r\n \"Content-Type\": \"application/octet-stream\",\r\n },\r\n body: stream,\r\n };\r\n try {\r\n const response = yield this.send(url, options, callback);\r\n return response;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=GraphRequest.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @module Client\r\n */\r\nimport { GRAPH_API_VERSION, GRAPH_BASE_URL } from \"./Constants\";\r\nimport { CustomAuthenticationProvider } from \"./CustomAuthenticationProvider\";\r\nimport { GraphRequest } from \"./GraphRequest\";\r\nimport { HTTPClient } from \"./HTTPClient\";\r\nimport { HTTPClientFactory } from \"./HTTPClientFactory\";\r\nimport { validatePolyFilling } from \"./ValidatePolyFilling\";\r\nexport class Client {\r\n /**\r\n * @private\r\n * @constructor\r\n * Creates an instance of Client\r\n * @param {ClientOptions} clientOptions - The options to instantiate the client object\r\n */\r\n constructor(clientOptions) {\r\n /**\r\n * @private\r\n * A member which stores the Client instance options\r\n */\r\n this.config = {\r\n baseUrl: GRAPH_BASE_URL,\r\n debugLogging: false,\r\n defaultVersion: GRAPH_API_VERSION,\r\n };\r\n try {\r\n validatePolyFilling();\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n for (const key in clientOptions) {\r\n if (clientOptions.hasOwnProperty(key)) {\r\n this.config[key] = clientOptions[key];\r\n }\r\n }\r\n let httpClient;\r\n if (clientOptions.authProvider !== undefined && clientOptions.middleware !== undefined) {\r\n const error = new Error();\r\n error.name = \"AmbiguityInInitialization\";\r\n error.message = \"Unable to Create Client, Please provide either authentication provider for default middleware chain or custom middleware chain not both\";\r\n throw error;\r\n }\r\n else if (clientOptions.authProvider !== undefined) {\r\n httpClient = HTTPClientFactory.createWithAuthenticationProvider(clientOptions.authProvider);\r\n }\r\n else if (clientOptions.middleware !== undefined) {\r\n httpClient = new HTTPClient(...[].concat(clientOptions.middleware));\r\n }\r\n else {\r\n const error = new Error();\r\n error.name = \"InvalidMiddlewareChain\";\r\n error.message = \"Unable to Create Client, Please provide either authentication provider for default middleware chain or custom middleware chain\";\r\n throw error;\r\n }\r\n this.httpClient = httpClient;\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * To create a client instance with options and initializes the default middleware chain\r\n * @param {Options} options - The options for client instance\r\n * @returns The Client instance\r\n */\r\n static init(options) {\r\n const clientOptions = {};\r\n for (const i in options) {\r\n if (options.hasOwnProperty(i)) {\r\n clientOptions[i] = i === \"authProvider\" ? new CustomAuthenticationProvider(options[i]) : options[i];\r\n }\r\n }\r\n return Client.initWithMiddleware(clientOptions);\r\n }\r\n /**\r\n * @public\r\n * @static\r\n * To create a client instance with the Client Options\r\n * @param {ClientOptions} clientOptions - The options object for initializing the client\r\n * @returns The Client instance\r\n */\r\n static initWithMiddleware(clientOptions) {\r\n try {\r\n return new Client(clientOptions);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n /**\r\n * @public\r\n * Entry point to make requests\r\n * @param {string} path - The path string value\r\n * @returns The graph request instance\r\n */\r\n api(path) {\r\n return new GraphRequest(this.httpClient, this.config, path);\r\n }\r\n}\r\n//# sourceMappingURL=Client.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @constant\r\n * @function\r\n * Validates availability of Promise and fetch in global context\r\n * @returns The true in case the Promise and fetch available, otherwise throws error\r\n */\r\nexport const validatePolyFilling = () => {\r\n if (typeof Promise === \"undefined\" && typeof fetch === \"undefined\") {\r\n const error = new Error(\"Library cannot function without Promise and fetch. So, please provide polyfill for them.\");\r\n error.name = \"PolyFillNotAvailable\";\r\n throw error;\r\n }\r\n else if (typeof Promise === \"undefined\") {\r\n const error = new Error(\"Library cannot function without Promise. So, please provide polyfill for it.\");\r\n error.name = \"PolyFillNotAvailable\";\r\n throw error;\r\n }\r\n else if (typeof fetch === \"undefined\") {\r\n const error = new Error(\"Library cannot function without fetch. So, please provide polyfill for it.\");\r\n error.name = \"PolyFillNotAvailable\";\r\n throw error;\r\n }\r\n return true;\r\n};\r\n//# sourceMappingURL=ValidatePolyFilling.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @module ImplicitMSALAuthenticationProvider\r\n */\r\nimport { InteractionRequiredAuthError } from \"msal\";\r\n/**\r\n * @class\r\n * Class representing ImplicitMSALAuthenticationProvider\r\n * @extends AuthenticationProvider\r\n */\r\nexport class ImplicitMSALAuthenticationProvider {\r\n /**\r\n * @public\r\n * @constructor\r\n * Creates an instance of ImplicitMSALAuthenticationProvider\r\n * @param {UserAgentApplication} msalApplication - An instance of MSAL UserAgentApplication\r\n * @param {MSALAuthenticationProviderOptions} options - An instance of MSALAuthenticationProviderOptions\r\n * @returns An instance of ImplicitMSALAuthenticationProvider\r\n */\r\n constructor(msalApplication, options) {\r\n this.options = options;\r\n this.msalApplication = msalApplication;\r\n }\r\n /**\r\n * @public\r\n * @async\r\n * To get the access token\r\n * @param {AuthenticationProviderOptions} authenticationProviderOptions - The authentication provider options object\r\n * @returns The promise that resolves to an access token\r\n */\r\n getAccessToken(authenticationProviderOptions) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\r\n const options = authenticationProviderOptions;\r\n let scopes;\r\n if (typeof options !== \"undefined\") {\r\n scopes = options.scopes;\r\n }\r\n if (typeof scopes === \"undefined\" || scopes.length === 0) {\r\n scopes = this.options.scopes;\r\n }\r\n if (scopes.length === 0) {\r\n const error = new Error();\r\n error.name = \"EmptyScopes\";\r\n error.message = \"Scopes cannot be empty, Please provide a scopes\";\r\n throw error;\r\n }\r\n if (this.msalApplication.getAccount()) {\r\n const tokenRequest = {\r\n scopes,\r\n };\r\n try {\r\n const authResponse = yield this.msalApplication.acquireTokenSilent(tokenRequest);\r\n return authResponse.accessToken;\r\n }\r\n catch (error) {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n try {\r\n const authResponse = yield this.msalApplication.acquireTokenPopup(tokenRequest);\r\n return authResponse.accessToken;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n }\r\n else {\r\n try {\r\n const tokenRequest = {\r\n scopes,\r\n };\r\n yield this.msalApplication.loginPopup(tokenRequest);\r\n const authResponse = yield this.msalApplication.acquireTokenSilent(tokenRequest);\r\n return authResponse.accessToken;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=ImplicitMSALAuthenticationProvider.js.map","/**\r\n * -------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.\r\n * See License in the project root for license information.\r\n * -------------------------------------------------------------------------------------------\r\n */\r\n/**\r\n * @class\r\n * @implements AuthenticationProviderOptions\r\n * Class representing MSALAuthenticationProviderOptions\r\n */\r\nexport class MSALAuthenticationProviderOptions {\r\n /**\r\n * @public\r\n * @constructor\r\n * To create an instance of MSALAuthenticationProviderOptions\r\n * @param {string[]} scopes - An array of scopes\r\n * @returns An instance of MSALAuthenticationProviderOptions\r\n */\r\n constructor(scopes) {\r\n this.scopes = scopes;\r\n }\r\n}\r\n//# sourceMappingURL=MSALAuthenticationProviderOptions.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n * Constants\r\n */\r\nvar Constants = /** @class */ (function () {\r\n function Constants() {\r\n }\r\n Object.defineProperty(Constants, \"libraryName\", {\r\n get: function () { return \"Msal.js\"; } // used in telemetry sdkName\r\n ,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"claims\", {\r\n get: function () { return \"claims\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"clientId\", {\r\n get: function () { return \"clientId\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"adalIdToken\", {\r\n get: function () { return \"adal.idtoken\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"cachePrefix\", {\r\n get: function () { return \"msal\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"scopes\", {\r\n get: function () { return \"scopes\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"no_account\", {\r\n get: function () { return \"NO_ACCOUNT\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"upn\", {\r\n get: function () { return \"upn\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"domain_hint\", {\r\n get: function () { return \"domain_hint\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt_select_account\", {\r\n get: function () { return \"&prompt=select_account\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt_none\", {\r\n get: function () { return \"&prompt=none\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt\", {\r\n get: function () { return \"prompt\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"response_mode_fragment\", {\r\n get: function () { return \"&response_mode=fragment\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"resourceDelimiter\", {\r\n get: function () { return \"|\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"cacheDelimiter\", {\r\n get: function () { return \".\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"popUpWidth\", {\r\n get: function () { return this._popUpWidth; },\r\n set: function (width) {\r\n this._popUpWidth = width;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"popUpHeight\", {\r\n get: function () { return this._popUpHeight; },\r\n set: function (height) {\r\n this._popUpHeight = height;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"login\", {\r\n get: function () { return \"LOGIN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"renewToken\", {\r\n get: function () { return \"RENEW_TOKEN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"unknown\", {\r\n get: function () { return \"UNKNOWN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"ADFS\", {\r\n get: function () { return \"adfs\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"homeAccountIdentifier\", {\r\n get: function () { return \"homeAccountIdentifier\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"common\", {\r\n get: function () { return \"common\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"openidScope\", {\r\n get: function () { return \"openid\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"profileScope\", {\r\n get: function () { return \"profile\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"oidcScopes\", {\r\n get: function () { return [this.openidScope, this.profileScope]; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypeRedirect\", {\r\n get: function () { return \"redirectInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypePopup\", {\r\n get: function () { return \"popupInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypeSilent\", {\r\n get: function () { return \"silentInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"inProgress\", {\r\n get: function () { return \"inProgress\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Constants._popUpWidth = 483;\r\n Constants._popUpHeight = 600;\r\n return Constants;\r\n}());\r\nexport { Constants };\r\n/**\r\n * Keys in the hashParams\r\n */\r\nexport var ServerHashParamKeys;\r\n(function (ServerHashParamKeys) {\r\n ServerHashParamKeys[\"SCOPE\"] = \"scope\";\r\n ServerHashParamKeys[\"STATE\"] = \"state\";\r\n ServerHashParamKeys[\"ERROR\"] = \"error\";\r\n ServerHashParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n ServerHashParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ServerHashParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n ServerHashParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n ServerHashParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n ServerHashParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n})(ServerHashParamKeys || (ServerHashParamKeys = {}));\r\n/**\r\n * @hidden\r\n * @ignore\r\n * response_type from OpenIDConnect\r\n * References: https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html & https://tools.ietf.org/html/rfc6749#section-4.2.1\r\n *\r\n */\r\nexport var ResponseTypes = {\r\n id_token: \"id_token\",\r\n token: \"token\",\r\n id_token_token: \"id_token token\"\r\n};\r\n/**\r\n * @hidden\r\n * CacheKeys for MSAL\r\n */\r\nexport var TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireTokenAccount\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"STATE_LOGIN\"] = \"state.login\";\r\n TemporaryCacheKeys[\"STATE_ACQ_TOKEN\"] = \"state.acquireToken\";\r\n TemporaryCacheKeys[\"STATE_RENEW\"] = \"state.renew\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.idtoken\";\r\n TemporaryCacheKeys[\"LOGIN_REQUEST\"] = \"login.request\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS\"] = \"interaction_status\";\r\n TemporaryCacheKeys[\"REDIRECT_REQUEST\"] = \"redirect_request\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\nexport var PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"IDTOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\nexport var ErrorCacheKeys;\r\n(function (ErrorCacheKeys) {\r\n ErrorCacheKeys[\"LOGIN_ERROR\"] = \"login.error\";\r\n ErrorCacheKeys[\"ERROR\"] = \"error\";\r\n ErrorCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n})(ErrorCacheKeys || (ErrorCacheKeys = {}));\r\nexport var DEFAULT_AUTHORITY = \"https://login.microsoftonline.com/common/\";\r\nexport var AAD_INSTANCE_DISCOVERY_ENDPOINT = DEFAULT_AUTHORITY + \"/discovery/instance?api-version=1.1&authorization_endpoint=\";\r\nexport var WELL_KNOWN_SUFFIX = \".well-known/openid-configuration\";\r\n/**\r\n * @hidden\r\n * SSO Types - generated to populate hints\r\n */\r\nexport var SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * @hidden\r\n */\r\nexport var BlacklistedEQParams = [\r\n SSOTypes.SID,\r\n SSOTypes.LOGIN_HINT\r\n];\r\nexport var NetworkRequestType = {\r\n GET: \"GET\",\r\n POST: \"POST\"\r\n};\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n * @hidden\r\n */\r\nexport var PromptState = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\"\r\n};\r\n/**\r\n * Frame name prefixes for the hidden iframe created in silent frames\r\n */\r\nexport var FramePrefix = {\r\n ID_TOKEN_FRAME: \"msalIdTokenFrame\",\r\n TOKEN_FRAME: \"msalRenewFrame\"\r\n};\r\n//# sourceMappingURL=Constants.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar CryptoUtils = /** @class */ (function () {\r\n function CryptoUtils() {\r\n }\r\n /**\r\n * Creates a new random GUID\r\n * @returns string (GUID)\r\n */\r\n CryptoUtils.createNewGuid = function () {\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n var cryptoObj = window.crypto; // for IE 11\r\n if (cryptoObj && cryptoObj.getRandomValues) {\r\n var buffer = new Uint8Array(16);\r\n cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return CryptoUtils.decimalToHex(buffer[0]) + CryptoUtils.decimalToHex(buffer[1])\r\n + CryptoUtils.decimalToHex(buffer[2]) + CryptoUtils.decimalToHex(buffer[3])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[4]) + CryptoUtils.decimalToHex(buffer[5])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[6]) + CryptoUtils.decimalToHex(buffer[7])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[8]) + CryptoUtils.decimalToHex(buffer[9])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[10]) + CryptoUtils.decimalToHex(buffer[11])\r\n + CryptoUtils.decimalToHex(buffer[12]) + CryptoUtils.decimalToHex(buffer[13])\r\n + CryptoUtils.decimalToHex(buffer[14]) + CryptoUtils.decimalToHex(buffer[15]);\r\n }\r\n else {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = \"\";\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n CryptoUtils.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n CryptoUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_4_%E2%80%93_escaping_the_string_before_encoding_it\r\n /**\r\n * encoding string to base64 - platform specific check\r\n *\r\n * @param input\r\n */\r\n CryptoUtils.base64Encode = function (input) {\r\n return btoa(encodeURIComponent(input).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\r\n return String.fromCharCode(Number(\"0x\" + p1));\r\n }));\r\n };\r\n /**\r\n * Decodes a base64 encoded string.\r\n *\r\n * @param input\r\n */\r\n CryptoUtils.base64Decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n return decodeURIComponent(atob(encodedString).split(\"\").map(function (c) {\r\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(\"\"));\r\n };\r\n /**\r\n * deserialize a string\r\n *\r\n * @param query\r\n */\r\n CryptoUtils.deserialize = function (query) {\r\n var match; // Regex for replacing addition symbol with a space\r\n var pl = /\\+/g;\r\n var search = /([^&=]+)=([^&]*)/g;\r\n var decode = function (s) { return decodeURIComponent(s.replace(pl, \" \")); };\r\n var obj = {};\r\n match = search.exec(query);\r\n while (match) {\r\n obj[decode(match[1])] = decode(match[2]);\r\n match = search.exec(query);\r\n }\r\n return obj;\r\n };\r\n return CryptoUtils;\r\n}());\r\nexport { CryptoUtils };\r\n//# sourceMappingURL=CryptoUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ClientConfigurationErrorMessage, ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { XhrClient } from \"../XHRClient\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nimport { TrustedAuthority } from \"./TrustedAuthority\";\r\nimport { NetworkRequestType, Constants, WELL_KNOWN_SUFFIX } from \"../utils/Constants\";\r\n/**\r\n * @hidden\r\n */\r\nexport var AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\r\n/**\r\n * @hidden\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, validateAuthority, authorityMetadata) {\r\n this.IsValidationEnabled = validateAuthority;\r\n this.CanonicalAuthority = authority;\r\n this.validateAsUri();\r\n this.tenantDiscoveryResponse = authorityMetadata;\r\n }\r\n Authority.isAdfs = function (authorityUrl) {\r\n var components = UrlUtils.GetUrlComponents(authorityUrl);\r\n var pathSegments = components.PathSegments;\r\n return (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS);\r\n };\r\n Object.defineProperty(Authority.prototype, \"AuthorityType\", {\r\n get: function () {\r\n return Authority.isAdfs(this.canonicalAuthority) ? AuthorityType.Adfs : AuthorityType.Default;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"Tenant\", {\r\n get: function () {\r\n return this.CanonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"AuthorizationEndpoint\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.AuthorizationEndpoint.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"EndSessionEndpoint\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.EndSessionEndpoint.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"SelfSignedJwtAudience\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.Issuer.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Authority.prototype.validateResolved = function () {\r\n if (!this.hasCachedMetadata()) {\r\n throw \"Please call ResolveEndpointsAsync first\";\r\n }\r\n };\r\n Object.defineProperty(Authority.prototype, \"CanonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this.canonicalAuthority;\r\n },\r\n set: function (url) {\r\n this.canonicalAuthority = UrlUtils.CanonicalizeUri(url);\r\n this.canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"CanonicalAuthorityUrlComponents\", {\r\n get: function () {\r\n if (!this.canonicalAuthorityUrlComponents) {\r\n this.canonicalAuthorityUrlComponents = UrlUtils.GetUrlComponents(this.CanonicalAuthority);\r\n }\r\n return this.canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"DefaultOpenIdConfigurationEndpoint\", {\r\n // http://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\r\n get: function () {\r\n return (this.AuthorityType === AuthorityType.Adfs) ? \"\" + this.CanonicalAuthority + WELL_KNOWN_SUFFIX : this.CanonicalAuthority + \"v2.0/\" + WELL_KNOWN_SUFFIX;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Given a string, validate that it is of the form https://domain/path\r\n */\r\n Authority.prototype.validateAsUri = function () {\r\n var components;\r\n try {\r\n components = this.CanonicalAuthorityUrlComponents;\r\n }\r\n catch (e) {\r\n throw ClientConfigurationErrorMessage.invalidAuthorityType;\r\n }\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationErrorMessage.authorityUriInsecure;\r\n }\r\n if (!components.PathSegments || components.PathSegments.length < 1) {\r\n throw ClientConfigurationErrorMessage.authorityUriInvalidPath;\r\n }\r\n };\r\n /**\r\n * Calls the OIDC endpoint and returns the response\r\n */\r\n Authority.prototype.DiscoverEndpoints = function (openIdConfigurationEndpoint, telemetryManager, correlationId) {\r\n var client = new XhrClient();\r\n var httpMethod = NetworkRequestType.GET;\r\n var httpEvent = telemetryManager.createAndStartHttpEvent(correlationId, httpMethod, openIdConfigurationEndpoint, \"openIdConfigurationEndpoint\");\r\n return client.sendRequestAsync(openIdConfigurationEndpoint, httpMethod, /* enableCaching: */ true)\r\n .then(function (response) {\r\n httpEvent.httpResponseStatus = response.statusCode;\r\n telemetryManager.stopEvent(httpEvent);\r\n return {\r\n AuthorizationEndpoint: response.body[\"authorization_endpoint\"],\r\n EndSessionEndpoint: response.body[\"end_session_endpoint\"],\r\n Issuer: response.body[\"issuer\"]\r\n };\r\n })\r\n .catch(function (err) {\r\n httpEvent.serverErrorCode = err;\r\n telemetryManager.stopEvent(httpEvent);\r\n throw err;\r\n });\r\n };\r\n /**\r\n * Returns a promise.\r\n * Checks to see if the authority is in the cache\r\n * Discover endpoints via openid-configuration\r\n * If successful, caches the endpoint for later use in OIDC\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function (telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var host, openIdConfigurationEndpointResponse, _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.IsValidationEnabled) return [3 /*break*/, 3];\r\n host = this.canonicalAuthorityUrlComponents.HostNameAndPort;\r\n if (!(TrustedAuthority.getTrustedHostList().length === 0)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, TrustedAuthority.setTrustedAuthoritiesFromNetwork(this.canonicalAuthority, telemetryManager, correlationId)];\r\n case 1:\r\n _b.sent();\r\n _b.label = 2;\r\n case 2:\r\n if (!TrustedAuthority.IsInTrustedHostList(host)) {\r\n throw ClientConfigurationError.createUntrustedAuthorityError(host);\r\n }\r\n _b.label = 3;\r\n case 3:\r\n openIdConfigurationEndpointResponse = this.GetOpenIdConfigurationEndpoint();\r\n _a = this;\r\n return [4 /*yield*/, this.DiscoverEndpoints(openIdConfigurationEndpointResponse, telemetryManager, correlationId)];\r\n case 4:\r\n _a.tenantDiscoveryResponse = _b.sent();\r\n return [2 /*return*/, this.tenantDiscoveryResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if there is a cached tenant discovery response with required fields.\r\n */\r\n Authority.prototype.hasCachedMetadata = function () {\r\n return !!(this.tenantDiscoveryResponse &&\r\n this.tenantDiscoveryResponse.AuthorizationEndpoint &&\r\n this.tenantDiscoveryResponse.EndSessionEndpoint &&\r\n this.tenantDiscoveryResponse.Issuer);\r\n };\r\n /**\r\n * Returns a promise which resolves to the OIDC endpoint\r\n * Only responds with the endpoint\r\n */\r\n Authority.prototype.GetOpenIdConfigurationEndpoint = function () {\r\n return this.DefaultOpenIdConfigurationEndpoint;\r\n };\r\n return Authority;\r\n}());\r\nexport { Authority };\r\n//# sourceMappingURL=Authority.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * Check if a string is empty\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if a string's value is a valid JSON object\r\n *\r\n * @param str\r\n */\r\n StringUtils.validateAndParseJsonCacheKey = function (str) {\r\n try {\r\n var parsedKey = JSON.parse(str);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedKey && typeof parsedKey === \"object\") ? parsedKey : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n return StringUtils;\r\n}());\r\nexport { StringUtils };\r\n//# sourceMappingURL=StringUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AuthError } from \"./AuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nexport var ClientAuthErrorMessage = {\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n popUpWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n tokenRenewalError: {\r\n code: \"token_renewal_error\",\r\n desc: \"Token renewal operation failed due to timeout.\"\r\n },\r\n invalidIdToken: {\r\n code: \"invalid_id_token\",\r\n desc: \"Invalid ID token format.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state_error\",\r\n desc: \"Invalid state.\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch_error\",\r\n desc: \"Nonce is not matching, Nonce received: \"\r\n },\r\n loginProgressError: {\r\n code: \"login_progress_error\",\r\n desc: \"Login_In_Progress: Error during login call - login is already in progress.\"\r\n },\r\n acquireTokenProgressError: {\r\n code: \"acquiretoken_progress_error\",\r\n desc: \"AcquireToken_In_Progress: Error during login call - login is already in progress.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n callbackError: {\r\n code: \"callback_error\",\r\n desc: \"Error occurred in token received callback function.\"\r\n },\r\n userLoginRequiredError: {\r\n code: \"user_login_error\",\r\n desc: \"User login is required. For silent calls, request must contain either sid or login_hint\"\r\n },\r\n userDoesNotExistError: {\r\n code: \"user_non_existent\",\r\n desc: \"User object does not exist. Please call a login API.\"\r\n },\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoNotPopulatedError: {\r\n code: \"client_info_not_populated_error\",\r\n desc: \"The service did not populate client_info in the response, Please verify with the service team\"\r\n },\r\n nullOrEmptyIdToken: {\r\n code: \"null_or_empty_id_token\",\r\n desc: \"The idToken is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n idTokenNotParsed: {\r\n code: \"id_token_parsing_error\",\r\n desc: \"ID token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n tokenEncodingError: {\r\n code: \"token_encoding_error\",\r\n desc: \"The token to be decoded is not encoded correctly.\"\r\n },\r\n invalidInteractionType: {\r\n code: \"invalid_interaction_type\",\r\n desc: \"The interaction type passed to the handler was incorrect or unknown\"\r\n },\r\n cacheParseError: {\r\n code: \"cannot_parse_cache\",\r\n desc: \"The cached token key is not a valid JSON and cannot be parsed\"\r\n },\r\n blockTokenRequestsInHiddenIframe: {\r\n code: \"block_token_requests\",\r\n desc: \"Token calls are blocked in hidden iframes\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n ClientAuthError.createEndpointResolutionError = function (errDetail) {\r\n var errorMessage = ClientAuthErrorMessage.endpointResolutionError.desc;\r\n if (errDetail && !StringUtils.isEmpty(errDetail)) {\r\n errorMessage += \" Details: \" + errDetail;\r\n }\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, errorMessage);\r\n };\r\n ClientAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = ClientAuthErrorMessage.popUpWindowError.desc;\r\n if (errDetail && !StringUtils.isEmpty(errDetail)) {\r\n errorMessage += \" Details: \" + errDetail;\r\n }\r\n return new ClientAuthError(ClientAuthErrorMessage.popUpWindowError.code, errorMessage);\r\n };\r\n ClientAuthError.createTokenRenewalTimeoutError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRenewalError.code, ClientAuthErrorMessage.tokenRenewalError.desc);\r\n };\r\n ClientAuthError.createInvalidIdTokenError = function (idToken) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidIdToken.code, ClientAuthErrorMessage.invalidIdToken.desc + \" Given token: \" + idToken);\r\n };\r\n // TODO: Is this not a security flaw to send the user the state expected??\r\n ClientAuthError.createInvalidStateError = function (invalidState, actualState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" \" + invalidState + \", state expected : \" + actualState + \".\");\r\n };\r\n // TODO: Is this not a security flaw to send the user the Nonce expected??\r\n ClientAuthError.createNonceMismatchError = function (invalidNonce, actualNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc + \" \" + invalidNonce + \", nonce expected : \" + actualNonce + \".\");\r\n };\r\n ClientAuthError.createLoginInProgressError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.loginProgressError.code, ClientAuthErrorMessage.loginProgressError.desc);\r\n };\r\n ClientAuthError.createAcquireTokenInProgressError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.acquireTokenProgressError.code, ClientAuthErrorMessage.acquireTokenProgressError.desc);\r\n };\r\n ClientAuthError.createUserCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userCancelledError.code, ClientAuthErrorMessage.userCancelledError.desc);\r\n };\r\n ClientAuthError.createErrorInCallbackFunction = function (errorDesc) {\r\n return new ClientAuthError(ClientAuthErrorMessage.callbackError.code, ClientAuthErrorMessage.callbackError.desc + \" \" + errorDesc + \".\");\r\n };\r\n ClientAuthError.createUserLoginRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userLoginRequiredError.code, ClientAuthErrorMessage.userLoginRequiredError.desc);\r\n };\r\n ClientAuthError.createUserDoesNotExistError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userDoesNotExistError.code, ClientAuthErrorMessage.userDoesNotExistError.desc);\r\n };\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n ClientAuthError.createClientInfoNotPopulatedError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoNotPopulatedError.code, ClientAuthErrorMessage.clientInfoNotPopulatedError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n ClientAuthError.createIdTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyIdToken.code, ClientAuthErrorMessage.nullOrEmptyIdToken.desc + \" Raw ID Token Value: \" + invalidRawTokenString);\r\n };\r\n ClientAuthError.createIdTokenParsingError = function (caughtParsingError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.idTokenNotParsed.code, ClientAuthErrorMessage.idTokenNotParsed.desc + \" Failed with error: \" + caughtParsingError);\r\n };\r\n ClientAuthError.createTokenEncodingError = function (incorrectlyEncodedToken) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenEncodingError.code, ClientAuthErrorMessage.tokenEncodingError.desc + \" Attempted to decode: \" + incorrectlyEncodedToken);\r\n };\r\n ClientAuthError.createInvalidInteractionTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidInteractionType.code, ClientAuthErrorMessage.invalidInteractionType.desc);\r\n };\r\n ClientAuthError.createCacheParseError = function (key) {\r\n var errorMessage = \"invalid key: \" + key + \", \" + ClientAuthErrorMessage.cacheParseError.desc;\r\n return new ClientAuthError(ClientAuthErrorMessage.cacheParseError.code, errorMessage);\r\n };\r\n ClientAuthError.createBlockTokenRequestsInHiddenIframeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.blockTokenRequestsInHiddenIframe.code, ClientAuthErrorMessage.blockTokenRequestsInHiddenIframe.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\r\nexport { ClientAuthError };\r\n//# sourceMappingURL=ClientAuthError.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ClientAuthError } from \"./ClientAuthError\";\r\nexport var ClientConfigurationErrorMessage = {\r\n configurationNotSet: {\r\n code: \"no_config_set\",\r\n desc: \"Configuration has not been set. Please call the UserAgentApplication constructor with a valid Configuration object.\"\r\n },\r\n storageNotSupported: {\r\n code: \"storage_not_supported\",\r\n desc: \"The value for the cacheLocation is not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call handleRedirectCallback() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n scopesRequired: {\r\n code: \"scopes_required\",\r\n desc: \"Scopes are required to obtain an access token.\"\r\n },\r\n emptyScopes: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as empty array.\"\r\n },\r\n nonArrayScopes: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent' and 'none'\",\r\n },\r\n invalidAuthorityType: {\r\n code: \"invalid_authority_type\",\r\n desc: \"The given authority is not a valid type of authority supported by MSAL. Please see here for valid authorities: .\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https.\"\r\n },\r\n authorityUriInvalidPath: {\r\n code: \"authority_uri_invalid_path\",\r\n desc: \"Given authority URI is invalid.\"\r\n },\r\n unsupportedAuthorityValidation: {\r\n code: \"unsupported_authority_validation\",\r\n desc: \"The authority validation is not supported for this authority type.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter or set validateAuthority=false.\"\r\n },\r\n b2cAuthorityUriInvalidPath: {\r\n code: \"b2c_authority_uri_invalid_path\",\r\n desc: \"The given URI for the B2C authority is invalid.\"\r\n },\r\n b2cKnownAuthoritiesNotSet: {\r\n code: \"b2c_known_authorities_not_set\",\r\n desc: \"Must set known authorities when validateAuthority is set to True and using B2C\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n emptyRequestError: {\r\n code: \"empty_request_error\",\r\n desc: \"Request object is required.\"\r\n },\r\n invalidCorrelationIdError: {\r\n code: \"invalid_guid_sent_as_correlationId\",\r\n desc: \"Please set the correlationId as a valid guid\"\r\n },\r\n telemetryConfigError: {\r\n code: \"telemetry_config_error\",\r\n desc: \"Telemetry config is not configured with required values\"\r\n },\r\n ssoSilentError: {\r\n code: \"sso_silent_error\",\r\n desc: \"request must contain either sid or login_hint\"\r\n },\r\n invalidAuthorityMetadataError: {\r\n code: \"authority_metadata_error\",\r\n desc: \"Invalid authorityMetadata. Must be a JSON object containing authorization_endpoint, end_session_endpoint, and issuer fields.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the .js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n ClientConfigurationError.createNoSetConfigurationError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.configurationNotSet.code, \"\" + ClientConfigurationErrorMessage.configurationNotSet.desc);\r\n };\r\n ClientConfigurationError.createStorageNotSupportedError = function (givenCacheLocation) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.storageNotSupported.code, ClientConfigurationErrorMessage.storageNotSupported.desc + \" Given location: \" + givenCacheLocation);\r\n };\r\n ClientConfigurationError.createRedirectCallbacksNotSetError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.noRedirectCallbacksSet.code, ClientConfigurationErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n ClientConfigurationError.createInvalidCallbackObjectError = function (callbackObject) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCallbackObject.code, ClientConfigurationErrorMessage.invalidCallbackObject.desc + \" Given value for callback function: \" + callbackObject);\r\n };\r\n ClientConfigurationError.createEmptyScopesArrayError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopes.code, ClientConfigurationErrorMessage.emptyScopes.desc + \" Given value: \" + scopesValue + \".\");\r\n };\r\n ClientConfigurationError.createScopesNonArrayError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.nonArrayScopes.code, ClientConfigurationErrorMessage.nonArrayScopes.desc + \" Given value: \" + scopesValue + \".\");\r\n };\r\n ClientConfigurationError.createScopesRequiredError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.scopesRequired.code, ClientConfigurationErrorMessage.scopesRequired.desc + \" Given value: \" + scopesValue);\r\n };\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n ClientConfigurationError.createEmptyRequestError = function () {\r\n var _a = ClientConfigurationErrorMessage.emptyRequestError, code = _a.code, desc = _a.desc;\r\n return new ClientConfigurationError(code, desc);\r\n };\r\n ClientConfigurationError.createInvalidCorrelationIdError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCorrelationIdError.code, ClientConfigurationErrorMessage.invalidCorrelationIdError.desc);\r\n };\r\n ClientConfigurationError.createKnownAuthoritiesNotSetError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.b2cKnownAuthoritiesNotSet.code, ClientConfigurationErrorMessage.b2cKnownAuthoritiesNotSet.desc);\r\n };\r\n ClientConfigurationError.createInvalidAuthorityTypeError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityType.code, ClientConfigurationErrorMessage.invalidAuthorityType.desc);\r\n };\r\n ClientConfigurationError.createUntrustedAuthorityError = function (host) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc + \" Provided Authority: \" + host);\r\n };\r\n ClientConfigurationError.createTelemetryConfigError = function (config) {\r\n var _a = ClientConfigurationErrorMessage.telemetryConfigError, code = _a.code, desc = _a.desc;\r\n var requiredKeys = {\r\n applicationName: \"string\",\r\n applicationVersion: \"string\",\r\n telemetryEmitter: \"function\"\r\n };\r\n var missingKeys = Object.keys(requiredKeys)\r\n .reduce(function (keys, key) {\r\n return config[key] ? keys : keys.concat([key + \" (\" + requiredKeys[key] + \")\"]);\r\n }, []);\r\n return new ClientConfigurationError(code, desc + \" mising values: \" + missingKeys.join(\",\"));\r\n };\r\n ClientConfigurationError.createSsoSilentError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.ssoSilentError.code, ClientConfigurationErrorMessage.ssoSilentError.desc);\r\n };\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadataError.code, ClientConfigurationErrorMessage.invalidAuthorityMetadataError.desc);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\r\nexport { ClientConfigurationError };\r\n//# sourceMappingURL=ClientConfigurationError.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientConfigurationError } from \"./error/ClientConfigurationError\";\r\nimport { Constants } from \"./utils/Constants\";\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet() {\r\n }\r\n /**\r\n * Check if there are dup scopes in a given request\r\n *\r\n * @param cachedScopes\r\n * @param scopes\r\n */\r\n // TODO: Rename this, intersecting scopes isn't a great name for duplicate checker\r\n ScopeSet.isIntersectingScopes = function (cachedScopes, scopes) {\r\n var convertedCachedScopes = this.trimAndConvertArrayToLowerCase(cachedScopes.slice());\r\n var requestScopes = this.trimAndConvertArrayToLowerCase(scopes.slice());\r\n for (var i = 0; i < requestScopes.length; i++) {\r\n if (convertedCachedScopes.indexOf(requestScopes[i].toLowerCase()) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Check if a given scope is present in the request\r\n *\r\n * @param cachedScopes\r\n * @param scopes\r\n */\r\n ScopeSet.containsScope = function (cachedScopes, scopes) {\r\n var convertedCachedScopes = this.trimAndConvertArrayToLowerCase(cachedScopes.slice());\r\n var requestScopes = this.trimAndConvertArrayToLowerCase(scopes.slice());\r\n return requestScopes.every(function (value) { return convertedCachedScopes.indexOf(value.toString().toLowerCase()) >= 0; });\r\n };\r\n /**\r\n * Trims and converts string to lower case\r\n *\r\n * @param scopes\r\n */\r\n // TODO: Rename this, too generic name for a function that only deals with scopes\r\n ScopeSet.trimAndConvertToLowerCase = function (scope) {\r\n return scope.trim().toLowerCase();\r\n };\r\n /**\r\n * Performs trimAndConvertToLowerCase on string array\r\n * @param scopes\r\n */\r\n ScopeSet.trimAndConvertArrayToLowerCase = function (scopes) {\r\n var _this = this;\r\n return scopes.map(function (scope) { return _this.trimAndConvertToLowerCase(scope); });\r\n };\r\n /**\r\n * Trims each scope in scopes array\r\n * @param scopes\r\n */\r\n ScopeSet.trimScopes = function (scopes) {\r\n return scopes.map(function (scope) { return scope.trim(); });\r\n };\r\n /**\r\n * Remove one element from a scope array\r\n *\r\n * @param scopes\r\n * @param scope\r\n */\r\n // TODO: Rename this, too generic name for a function that only deals with scopes\r\n ScopeSet.removeElement = function (scopes, scope) {\r\n var scopeVal = this.trimAndConvertToLowerCase(scope);\r\n return scopes.filter(function (value) { return value !== scopeVal; });\r\n };\r\n /**\r\n * Parse the scopes into a formatted scopeList\r\n * @param scopes\r\n */\r\n ScopeSet.parseScope = function (scopes) {\r\n var scopeList = \"\";\r\n if (scopes) {\r\n for (var i = 0; i < scopes.length; ++i) {\r\n scopeList += (i !== scopes.length - 1) ? scopes[i] + \" \" : scopes[i];\r\n }\r\n }\r\n return scopeList;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} scopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n * @ignore\r\n */\r\n ScopeSet.validateInputScope = function (scopes, scopesRequired) {\r\n if (!scopes) {\r\n if (scopesRequired) {\r\n throw ClientConfigurationError.createScopesRequiredError(scopes);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // Check that scopes is an array object (also throws error if scopes == null)\r\n if (!Array.isArray(scopes)) {\r\n throw ClientConfigurationError.createScopesNonArrayError(scopes);\r\n }\r\n // Check that scopes is not an empty array\r\n if (scopes.length < 1 && scopesRequired) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError(scopes.toString());\r\n }\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Extracts scope value from the state sent with the authentication request.\r\n * @param {string} state\r\n * @returns {string} scope.\r\n * @ignore\r\n */\r\n ScopeSet.getScopeFromState = function (state) {\r\n if (state) {\r\n var splitIndex = state.indexOf(Constants.resourceDelimiter);\r\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\r\n return state.substring(splitIndex + 1);\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * @ignore\r\n * Appends extraScopesToConsent if passed\r\n * @param {@link AuthenticationParameters}\r\n */\r\n ScopeSet.appendScopes = function (reqScopes, reqExtraScopesToConsent) {\r\n if (reqScopes) {\r\n var convertedExtraScopes = reqExtraScopesToConsent ? this.trimAndConvertArrayToLowerCase(reqExtraScopesToConsent.slice()) : null;\r\n var convertedReqScopes = this.trimAndConvertArrayToLowerCase(reqScopes.slice());\r\n return convertedExtraScopes ? convertedReqScopes.concat(convertedExtraScopes) : convertedReqScopes;\r\n }\r\n return null;\r\n };\r\n // #endregion\r\n /**\r\n * @ignore\r\n * Returns true if the scopes array only contains openid and/or profile\r\n */\r\n ScopeSet.onlyContainsOidcScopes = function (scopes) {\r\n var scopesCount = scopes.length;\r\n var oidcScopesFound = 0;\r\n if (scopes.indexOf(Constants.openidScope) > -1) {\r\n oidcScopesFound += 1;\r\n }\r\n if (scopes.indexOf(Constants.profileScope) > -1) {\r\n oidcScopesFound += 1;\r\n }\r\n return (scopesCount > 0 && scopesCount === oidcScopesFound);\r\n };\r\n /**\r\n * @ignore\r\n * Returns true if the scopes array only contains openid and/or profile\r\n */\r\n ScopeSet.containsAnyOidcScopes = function (scopes) {\r\n var containsOpenIdScope = scopes.indexOf(Constants.openidScope) > -1;\r\n var containsProfileScope = scopes.indexOf(Constants.profileScope) > -1;\r\n return (containsOpenIdScope || containsProfileScope);\r\n };\r\n /**\r\n * @ignore\r\n * Returns true if the clientId is the only scope in the array\r\n */\r\n ScopeSet.onlyContainsClientId = function (scopes, clientId) {\r\n // Double negation to force false value returned in case scopes is null\r\n return !!scopes && (scopes.indexOf(clientId) > -1 && scopes.length === 1);\r\n };\r\n /**\r\n * @ignore\r\n * Adds missing OIDC scopes to scopes array without duplication. Since STS requires OIDC scopes for\r\n * all implicit flow requests, 'openid' and 'profile' should always be included in the final request\r\n */\r\n ScopeSet.appendDefaultScopes = function (scopes) {\r\n var extendedScopes = scopes;\r\n if (extendedScopes.indexOf(Constants.openidScope) === -1) {\r\n extendedScopes.push(Constants.openidScope);\r\n }\r\n if (extendedScopes.indexOf(Constants.profileScope) === -1) {\r\n extendedScopes.push(Constants.profileScope);\r\n }\r\n return extendedScopes;\r\n };\r\n /**\r\n * @ignore\r\n * Removes present OIDC scopes from scopes array.\r\n */\r\n ScopeSet.removeDefaultScopes = function (scopes) {\r\n return scopes.filter(function (scope) {\r\n return (scope !== Constants.openidScope && scope !== Constants.profileScope);\r\n });\r\n };\r\n /**\r\n * @ignore\r\n * Removes clientId from scopes array if included as only scope. If it's not the only scope, it is treated as a resource scope.\r\n * @param scopes Array: Pre-normalized scopes array\r\n * @param clientId string: The application's clientId that is searched for in the scopes array\r\n */\r\n ScopeSet.translateClientIdIfSingleScope = function (scopes, clientId) {\r\n return this.onlyContainsClientId(scopes, clientId) ? Constants.oidcScopes : scopes;\r\n };\r\n return ScopeSet;\r\n}());\r\nexport { ScopeSet };\r\n//# sourceMappingURL=ScopeSet.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Constants, SSOTypes, ServerHashParamKeys } from \"./Constants\";\r\nimport { ScopeSet } from \"../ScopeSet\";\r\nimport { StringUtils } from \"./StringUtils\";\r\nimport { CryptoUtils } from \"./CryptoUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar UrlUtils = /** @class */ (function () {\r\n function UrlUtils() {\r\n }\r\n /**\r\n * generates the URL with QueryString Parameters\r\n * @param scopes\r\n */\r\n UrlUtils.createNavigateUrl = function (serverRequestParams) {\r\n var str = this.createNavigationUrlString(serverRequestParams);\r\n var authEndpoint = serverRequestParams.authorityInstance.AuthorizationEndpoint;\r\n // if the endpoint already has queryparams, lets add to it, otherwise add the first one\r\n if (authEndpoint.indexOf(\"?\") < 0) {\r\n authEndpoint += \"?\";\r\n }\r\n else {\r\n authEndpoint += \"&\";\r\n }\r\n var requestUrl = \"\" + authEndpoint + str.join(\"&\");\r\n return requestUrl;\r\n };\r\n /**\r\n * Generate the array of all QueryStringParams to be sent to the server\r\n * @param scopes\r\n */\r\n UrlUtils.createNavigationUrlString = function (serverRequestParams) {\r\n var scopes = ScopeSet.appendDefaultScopes(serverRequestParams.scopes);\r\n var str = [];\r\n str.push(\"response_type=\" + serverRequestParams.responseType);\r\n str.push(\"scope=\" + encodeURIComponent(ScopeSet.parseScope(scopes)));\r\n str.push(\"client_id=\" + encodeURIComponent(serverRequestParams.clientId));\r\n str.push(\"redirect_uri=\" + encodeURIComponent(serverRequestParams.redirectUri));\r\n str.push(\"state=\" + encodeURIComponent(serverRequestParams.state));\r\n str.push(\"nonce=\" + encodeURIComponent(serverRequestParams.nonce));\r\n str.push(\"client_info=1\");\r\n str.push(\"x-client-SKU=\" + serverRequestParams.xClientSku);\r\n str.push(\"x-client-Ver=\" + serverRequestParams.xClientVer);\r\n if (serverRequestParams.promptValue) {\r\n str.push(\"prompt=\" + encodeURIComponent(serverRequestParams.promptValue));\r\n }\r\n if (serverRequestParams.claimsValue) {\r\n str.push(\"claims=\" + encodeURIComponent(serverRequestParams.claimsValue));\r\n }\r\n if (serverRequestParams.queryParameters) {\r\n str.push(serverRequestParams.queryParameters);\r\n }\r\n if (serverRequestParams.extraQueryParameters) {\r\n str.push(serverRequestParams.extraQueryParameters);\r\n }\r\n str.push(\"client-request-id=\" + encodeURIComponent(serverRequestParams.correlationId));\r\n return str;\r\n };\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n UrlUtils.getCurrentUrl = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Returns given URL with query string removed\r\n */\r\n UrlUtils.removeHashFromUrl = function (url) {\r\n return url.split(\"#\")[0];\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlUtils.replaceTenantPath = function (url, tenantId) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n var urlObject = this.GetUrlComponents(lowerCaseUrl);\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === Constants.common || pathArray[0] === SSOTypes.ORGANIZATIONS || pathArray[0] === SSOTypes.CONSUMERS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return this.constructAuthorityUriFromObject(urlObject, pathArray);\r\n };\r\n UrlUtils.constructAuthorityUriFromObject = function (urlObject, pathArray) {\r\n return this.CanonicalizeUri(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + pathArray.join(\"/\"));\r\n };\r\n /**\r\n * Checks if an authority is common (ex. https://a:b/common/)\r\n * @param url The url\r\n * @returns true if authority is common and false otherwise\r\n */\r\n UrlUtils.isCommonAuthority = function (url) {\r\n var authority = this.CanonicalizeUri(url);\r\n var pathArray = this.GetUrlComponents(authority).PathSegments;\r\n return (pathArray.length !== 0 && pathArray[0] === Constants.common);\r\n };\r\n /**\r\n * Checks if an authority is for organizations (ex. https://a:b/organizations/)\r\n * @param url The url\r\n * @returns true if authority is for and false otherwise\r\n */\r\n UrlUtils.isOrganizationsAuthority = function (url) {\r\n var authority = this.CanonicalizeUri(url);\r\n var pathArray = this.GetUrlComponents(authority).PathSegments;\r\n return (pathArray.length !== 0 && pathArray[0] === SSOTypes.ORGANIZATIONS);\r\n };\r\n /**\r\n * Checks if an authority is for consumers (ex. https://a:b/consumers/)\r\n * @param url The url\r\n * @returns true if authority is for and false otherwise\r\n */\r\n UrlUtils.isConsumersAuthority = function (url) {\r\n var authority = this.CanonicalizeUri(url);\r\n var pathArray = this.GetUrlComponents(authority).PathSegments;\r\n return (pathArray.length !== 0 && pathArray[0] === SSOTypes.CONSUMERS);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlUtils.GetUrlComponents = function (url) {\r\n if (!url) {\r\n throw \"Url required\";\r\n }\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n var match = url.match(regEx);\r\n if (!match || match.length < 6) {\r\n throw \"Valid url required\";\r\n }\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (match[6]) {\r\n urlComponents.Search = match[6];\r\n }\r\n if (match[8]) {\r\n urlComponents.Hash = match[8];\r\n }\r\n return urlComponents;\r\n };\r\n /**\r\n * Given a url or path, append a trailing slash if one doesnt exist\r\n *\r\n * @param url\r\n */\r\n UrlUtils.CanonicalizeUri = function (url) {\r\n if (url) {\r\n url = url.toLowerCase();\r\n }\r\n if (url && !UrlUtils.endsWith(url, \"/\")) {\r\n url += \"/\";\r\n }\r\n return url;\r\n };\r\n /**\r\n * Checks to see if the url ends with the suffix\r\n * Required because we are compiling for es5 instead of es6\r\n * @param url\r\n * @param str\r\n */\r\n // TODO: Rename this, not clear what it is supposed to do\r\n UrlUtils.endsWith = function (url, suffix) {\r\n if (!url || !suffix) {\r\n return false;\r\n }\r\n return url.indexOf(suffix, url.length - suffix.length) !== -1;\r\n };\r\n /**\r\n * Utils function to remove the login_hint and domain_hint from the i/p extraQueryParameters\r\n * @param url\r\n * @param name\r\n */\r\n UrlUtils.urlRemoveQueryStringParameter = function (url, name) {\r\n if (StringUtils.isEmpty(url)) {\r\n return url;\r\n }\r\n var regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n url = url.replace(regex, \"\");\r\n // name=value&\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n url = url.replace(regex, \"\");\r\n // name=value\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n url = url.replace(regex, \"\");\r\n return url;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlUtils.getHashFromUrl = function (urlStringOrFragment) {\r\n var hashIndex1 = urlStringOrFragment.indexOf(\"#\");\r\n var hashIndex2 = urlStringOrFragment.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return urlStringOrFragment.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return urlStringOrFragment.substring(hashIndex1 + 1);\r\n }\r\n return urlStringOrFragment;\r\n };\r\n /**\r\n * @hidden\r\n * Check if the url contains a hash with known properties\r\n * @ignore\r\n */\r\n UrlUtils.urlContainsHash = function (urlString) {\r\n var parameters = UrlUtils.deserializeHash(urlString);\r\n return (parameters.hasOwnProperty(ServerHashParamKeys.ERROR_DESCRIPTION) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ERROR) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ACCESS_TOKEN) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ID_TOKEN));\r\n };\r\n /**\r\n * @hidden\r\n * Returns deserialized portion of URL hash\r\n * @ignore\r\n */\r\n UrlUtils.deserializeHash = function (urlFragment) {\r\n var hash = UrlUtils.getHashFromUrl(urlFragment);\r\n return CryptoUtils.deserialize(hash);\r\n };\r\n /**\r\n * @ignore\r\n * @param {string} URI\r\n * @returns {string} host from the URI\r\n *\r\n * extract URI from the host\r\n */\r\n UrlUtils.getHostFromUri = function (uri) {\r\n // remove http:// or https:// from uri\r\n var extractedUri = String(uri).replace(/^(https?:)\\/\\//, \"\");\r\n extractedUri = extractedUri.split(\"/\")[0];\r\n return extractedUri;\r\n };\r\n return UrlUtils;\r\n}());\r\nexport { UrlUtils };\r\n//# sourceMappingURL=UrlUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenKey = /** @class */ (function () {\r\n function AccessTokenKey(authority, clientId, scopes, uid, utid) {\r\n this.authority = UrlUtils.CanonicalizeUri(authority);\r\n this.clientId = clientId;\r\n this.scopes = scopes;\r\n this.homeAccountIdentifier = CryptoUtils.base64Encode(uid) + \".\" + CryptoUtils.base64Encode(utid);\r\n }\r\n return AccessTokenKey;\r\n}());\r\nexport { AccessTokenKey };\r\n//# sourceMappingURL=AccessTokenKey.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenValue = /** @class */ (function () {\r\n function AccessTokenValue(accessToken, idToken, expiresIn, homeAccountIdentifier) {\r\n this.accessToken = accessToken;\r\n this.idToken = idToken;\r\n this.expiresIn = expiresIn;\r\n this.homeAccountIdentifier = homeAccountIdentifier;\r\n }\r\n return AccessTokenValue;\r\n}());\r\nexport { AccessTokenValue };\r\n//# sourceMappingURL=AccessTokenValue.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { SSOTypes, Constants, PromptState, ResponseTypes } from \"./utils/Constants\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { ScopeSet } from \"./ScopeSet\";\r\nimport { version as libraryVersion } from \"./packageMetadata\";\r\n/**\r\n * Nonce: OIDC Nonce definition: https://openid.net/specs/openid-connect-core-1_0.html#IDToken\r\n * State: OAuth Spec: https://tools.ietf.org/html/rfc6749#section-10.12\r\n * @hidden\r\n */\r\nvar ServerRequestParameters = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n * @param authority\r\n * @param clientId\r\n * @param scope\r\n * @param responseType\r\n * @param redirectUri\r\n * @param state\r\n */\r\n function ServerRequestParameters(authority, clientId, responseType, redirectUri, scopes, state, correlationId) {\r\n this.authorityInstance = authority;\r\n this.clientId = clientId;\r\n this.nonce = CryptoUtils.createNewGuid();\r\n // set scope to clientId if null\r\n this.scopes = scopes ? scopes.slice() : Constants.oidcScopes;\r\n this.scopes = ScopeSet.trimScopes(this.scopes);\r\n // set state (already set at top level)\r\n this.state = state;\r\n // set correlationId\r\n this.correlationId = correlationId;\r\n // telemetry information\r\n this.xClientSku = \"MSAL.JS\";\r\n this.xClientVer = libraryVersion;\r\n this.responseType = responseType;\r\n this.redirectUri = redirectUri;\r\n }\r\n Object.defineProperty(ServerRequestParameters.prototype, \"authority\", {\r\n get: function () {\r\n return this.authorityInstance ? this.authorityInstance.CanonicalAuthority : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Utility to populate QueryParameters and ExtraQueryParameters to ServerRequestParamerers\r\n * @param request\r\n * @param serverAuthenticationRequest\r\n */\r\n ServerRequestParameters.prototype.populateQueryParams = function (account, request, adalIdTokenObject, silentCall) {\r\n var queryParameters = {};\r\n if (request) {\r\n // add the prompt parameter to serverRequestParameters if passed\r\n if (request.prompt) {\r\n this.promptValue = request.prompt;\r\n }\r\n // Add claims challenge to serverRequestParameters if passed\r\n if (request.claimsRequest) {\r\n this.claimsValue = request.claimsRequest;\r\n }\r\n // if the developer provides one of these, give preference to developer choice\r\n if (ServerRequestParameters.isSSOParam(request)) {\r\n queryParameters = this.constructUnifiedCacheQueryParameter(request, null);\r\n }\r\n }\r\n if (adalIdTokenObject) {\r\n queryParameters = this.constructUnifiedCacheQueryParameter(null, adalIdTokenObject);\r\n }\r\n /*\r\n * adds sid/login_hint if not populated\r\n * this.logger.verbose(\"Calling addHint parameters\");\r\n */\r\n queryParameters = this.addHintParameters(account, queryParameters);\r\n // sanity check for developer passed extraQueryParameters\r\n var eQParams = request ? request.extraQueryParameters : null;\r\n // Populate the extraQueryParameters to be sent to the server\r\n this.queryParameters = ServerRequestParameters.generateQueryParametersString(queryParameters);\r\n this.extraQueryParameters = ServerRequestParameters.generateQueryParametersString(eQParams, silentCall);\r\n };\r\n // #region QueryParam helpers\r\n /**\r\n * Constructs extraQueryParameters to be sent to the server for the AuthenticationParameters set by the developer\r\n * in any login() or acquireToken() calls\r\n * @param idTokenObject\r\n * @param extraQueryParameters\r\n * @param sid\r\n * @param loginHint\r\n */\r\n // TODO: check how this behaves when domain_hint only is sent in extraparameters and idToken has no upn.\r\n ServerRequestParameters.prototype.constructUnifiedCacheQueryParameter = function (request, idTokenObject) {\r\n // preference order: account > sid > login_hint\r\n var ssoType;\r\n var ssoData;\r\n var serverReqParam = {};\r\n // if account info is passed, account.sid > account.login_hint\r\n if (request) {\r\n if (request.account) {\r\n var account = request.account;\r\n if (account.sid) {\r\n ssoType = SSOTypes.SID;\r\n ssoData = account.sid;\r\n }\r\n else if (account.userName) {\r\n ssoType = SSOTypes.LOGIN_HINT;\r\n ssoData = account.userName;\r\n }\r\n }\r\n // sid from request\r\n else if (request.sid) {\r\n ssoType = SSOTypes.SID;\r\n ssoData = request.sid;\r\n }\r\n // loginHint from request\r\n else if (request.loginHint) {\r\n ssoType = SSOTypes.LOGIN_HINT;\r\n ssoData = request.loginHint;\r\n }\r\n }\r\n // adalIdToken retrieved from cache\r\n else if (idTokenObject) {\r\n if (idTokenObject.hasOwnProperty(Constants.upn)) {\r\n ssoType = SSOTypes.ID_TOKEN;\r\n ssoData = idTokenObject[\"upn\"];\r\n }\r\n }\r\n serverReqParam = this.addSSOParameter(ssoType, ssoData);\r\n return serverReqParam;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Adds login_hint to authorization URL which is used to pre-fill the username field of sign in page for the user if known ahead of time\r\n * domain_hint if added skips the email based discovery process of the user - only supported for interactive calls in implicit_flow\r\n * domain_req utid received as part of the clientInfo\r\n * login_req uid received as part of clientInfo\r\n * Also does a sanity check for extraQueryParameters passed by the user to ensure no repeat queryParameters\r\n *\r\n * @param {@link Account} account - Account for which the token is requested\r\n * @param queryparams\r\n * @param {@link ServerRequestParameters}\r\n * @ignore\r\n */\r\n ServerRequestParameters.prototype.addHintParameters = function (account, qParams) {\r\n /*\r\n * This is a final check for all queryParams added so far; preference order: sid > login_hint\r\n * sid cannot be passed along with login_hint or domain_hint, hence we check both are not populated yet in queryParameters\r\n */\r\n if (account && !qParams[SSOTypes.SID]) {\r\n // sid - populate only if login_hint is not already populated and the account has sid\r\n var populateSID = !qParams[SSOTypes.LOGIN_HINT] && account.sid && this.promptValue === PromptState.NONE;\r\n if (populateSID) {\r\n qParams = this.addSSOParameter(SSOTypes.SID, account.sid, qParams);\r\n }\r\n // login_hint - account.userName\r\n else {\r\n var populateLoginHint = !qParams[SSOTypes.LOGIN_HINT] && account.userName && !StringUtils.isEmpty(account.userName);\r\n if (populateLoginHint) {\r\n qParams = this.addSSOParameter(SSOTypes.LOGIN_HINT, account.userName, qParams);\r\n }\r\n }\r\n }\r\n return qParams;\r\n };\r\n /**\r\n * Add SID to extraQueryParameters\r\n * @param sid\r\n */\r\n ServerRequestParameters.prototype.addSSOParameter = function (ssoType, ssoData, ssoParam) {\r\n if (!ssoParam) {\r\n ssoParam = {};\r\n }\r\n if (!ssoData) {\r\n return ssoParam;\r\n }\r\n switch (ssoType) {\r\n case SSOTypes.SID: {\r\n ssoParam[SSOTypes.SID] = ssoData;\r\n break;\r\n }\r\n case SSOTypes.ID_TOKEN: {\r\n ssoParam[SSOTypes.LOGIN_HINT] = ssoData;\r\n break;\r\n }\r\n case SSOTypes.LOGIN_HINT: {\r\n ssoParam[SSOTypes.LOGIN_HINT] = ssoData;\r\n break;\r\n }\r\n }\r\n return ssoParam;\r\n };\r\n /**\r\n * Utility to generate a QueryParameterString from a Key-Value mapping of extraQueryParameters passed\r\n * @param extraQueryParameters\r\n */\r\n ServerRequestParameters.generateQueryParametersString = function (queryParameters, silentCall) {\r\n var paramsString = null;\r\n if (queryParameters) {\r\n Object.keys(queryParameters).forEach(function (key) {\r\n // sid cannot be passed along with login_hint or domain_hint\r\n if (key === Constants.domain_hint && (silentCall || queryParameters[SSOTypes.SID])) {\r\n return;\r\n }\r\n if (!paramsString) {\r\n paramsString = key + \"=\" + encodeURIComponent(queryParameters[key]);\r\n }\r\n else {\r\n paramsString += \"&\" + key + \"=\" + encodeURIComponent(queryParameters[key]);\r\n }\r\n });\r\n }\r\n return paramsString;\r\n };\r\n // #endregion\r\n /**\r\n * Check to see if there are SSO params set in the Request\r\n * @param request\r\n */\r\n ServerRequestParameters.isSSOParam = function (request) {\r\n return !!(request && (request.account || request.sid || request.loginHint));\r\n };\r\n /**\r\n * Returns the correct response_type string attribute for an acquireToken request configuration\r\n * @param accountsMatch boolean: Determines whether the account in the request matches the cached account\r\n * @param scopes Array: AuthenticationRequest scopes configuration\r\n * @param loginScopesOnly boolean: True if the scopes array ONLY contains the clientId or any combination of OIDC scopes, without resource scopes\r\n */\r\n ServerRequestParameters.determineResponseType = function (accountsMatch, scopes) {\r\n // Supports getting an id_token by sending in clientId as only scope or OIDC scopes as only scopes\r\n if (ScopeSet.onlyContainsOidcScopes(scopes)) {\r\n return ResponseTypes.id_token;\r\n }\r\n // If accounts match, check if OIDC scopes are included, otherwise return id_token_token\r\n return (accountsMatch) ? this.responseTypeForMatchingAccounts(scopes) : ResponseTypes.id_token_token;\r\n };\r\n /**\r\n * Returns the correct response_type string attribute for an acquireToken request configuration that contains an\r\n * account that matches the account in the MSAL cache.\r\n * @param scopes Array: AuthenticationRequest scopes configuration\r\n */\r\n ServerRequestParameters.responseTypeForMatchingAccounts = function (scopes) {\r\n // Opt-into also requesting an ID token by sending in 'openid', 'profile' or both along with resource scopes when login is not necessary.\r\n return (ScopeSet.containsAnyOidcScopes(scopes)) ? ResponseTypes.id_token_token : ResponseTypes.token;\r\n };\r\n return ServerRequestParameters;\r\n}());\r\nexport { ServerRequestParameters };\r\n//# sourceMappingURL=ServerRequestParameters.js.map","/* eslint-disable header/header */\r\nexport var name = \"msal\";\r\nexport var version = \"1.4.10\";\r\n//# sourceMappingURL=packageMetadata.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { NetworkRequestType } from \"./utils/Constants\";\r\n/**\r\n * XHR client for JSON endpoints\r\n * https://www.npmjs.com/package/async-promise\r\n * @hidden\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n XhrClient.prototype.sendRequestAsync = function (url, method, enableCaching) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n if (enableCaching) {\r\n /*\r\n * TODO: (shivb) ensure that this can be cached\r\n * xhr.setRequestHeader(\"Cache-Control\", \"Public\");\r\n */\r\n }\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n reject(_this.handleError(xhr.responseText));\r\n }\r\n var jsonResponse;\r\n try {\r\n jsonResponse = JSON.parse(xhr.responseText);\r\n }\r\n catch (e) {\r\n reject(_this.handleError(xhr.responseText));\r\n }\r\n var response = {\r\n statusCode: xhr.status,\r\n body: jsonResponse\r\n };\r\n resolve(response);\r\n };\r\n xhr.onerror = function () {\r\n reject(xhr.status);\r\n };\r\n if (method === NetworkRequestType.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw \"not implemented\";\r\n }\r\n });\r\n };\r\n XhrClient.prototype.handleError = function (responseText) {\r\n var jsonResponse;\r\n try {\r\n jsonResponse = JSON.parse(responseText);\r\n if (jsonResponse[\"error\"]) {\r\n return jsonResponse[\"error\"];\r\n }\r\n else {\r\n throw responseText;\r\n }\r\n }\r\n catch (e) {\r\n return responseText;\r\n }\r\n };\r\n return XhrClient;\r\n}());\r\nexport { XhrClient };\r\n//# sourceMappingURL=XHRClient.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { XhrClient } from \"../XHRClient\";\r\nimport { AAD_INSTANCE_DISCOVERY_ENDPOINT, NetworkRequestType } from \"../utils/Constants\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nvar TrustedAuthority = /** @class */ (function () {\r\n function TrustedAuthority() {\r\n }\r\n /**\r\n *\r\n * @param validateAuthority\r\n * @param knownAuthorities\r\n */\r\n TrustedAuthority.setTrustedAuthoritiesFromConfig = function (validateAuthority, knownAuthorities) {\r\n if (validateAuthority && !this.getTrustedHostList().length) {\r\n knownAuthorities.forEach(function (authority) {\r\n TrustedAuthority.TrustedHostList.push(authority.toLowerCase());\r\n });\r\n }\r\n };\r\n /**\r\n *\r\n * @param telemetryManager\r\n * @param correlationId\r\n */\r\n TrustedAuthority.getAliases = function (authorityToVerify, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var client, httpMethod, instanceDiscoveryEndpoint, httpEvent;\r\n return tslib_1.__generator(this, function (_a) {\r\n client = new XhrClient();\r\n httpMethod = NetworkRequestType.GET;\r\n instanceDiscoveryEndpoint = \"\" + AAD_INSTANCE_DISCOVERY_ENDPOINT + authorityToVerify + \"oauth2/v2.0/authorize\";\r\n httpEvent = telemetryManager.createAndStartHttpEvent(correlationId, httpMethod, instanceDiscoveryEndpoint, \"getAliases\");\r\n return [2 /*return*/, client.sendRequestAsync(instanceDiscoveryEndpoint, httpMethod, true)\r\n .then(function (response) {\r\n httpEvent.httpResponseStatus = response.statusCode;\r\n telemetryManager.stopEvent(httpEvent);\r\n return response.body[\"metadata\"];\r\n })\r\n .catch(function (err) {\r\n httpEvent.serverErrorCode = err;\r\n telemetryManager.stopEvent(httpEvent);\r\n throw err;\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param telemetryManager\r\n * @param correlationId\r\n */\r\n TrustedAuthority.setTrustedAuthoritiesFromNetwork = function (authorityToVerify, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var metadata, host;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getAliases(authorityToVerify, telemetryManager, correlationId)];\r\n case 1:\r\n metadata = _a.sent();\r\n metadata.forEach(function (entry) {\r\n var authorities = entry[\"aliases\"];\r\n authorities.forEach(function (authority) {\r\n TrustedAuthority.TrustedHostList.push(authority.toLowerCase());\r\n });\r\n });\r\n host = UrlUtils.GetUrlComponents(authorityToVerify).HostNameAndPort;\r\n if (TrustedAuthority.getTrustedHostList().length && !TrustedAuthority.IsInTrustedHostList(host)) {\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n TrustedAuthority.TrustedHostList.push(host.toLowerCase());\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n TrustedAuthority.getTrustedHostList = function () {\r\n return this.TrustedHostList;\r\n };\r\n /**\r\n * Checks to see if the host is in a list of trusted hosts\r\n * @param host\r\n */\r\n TrustedAuthority.IsInTrustedHostList = function (host) {\r\n return this.TrustedHostList.indexOf(host.toLowerCase()) > -1;\r\n };\r\n TrustedAuthority.TrustedHostList = [];\r\n return TrustedAuthority;\r\n}());\r\nexport { TrustedAuthority };\r\n//# sourceMappingURL=TrustedAuthority.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { version as libraryVersion } from \"./packageMetadata\";\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n})(LogLevel || (LogLevel = {}));\r\nvar Logger = /** @class */ (function () {\r\n function Logger(localCallback, options) {\r\n if (options === void 0) { options = {}; }\r\n /**\r\n * @hidden\r\n */\r\n this.level = LogLevel.Info;\r\n var _a = options.correlationId, correlationId = _a === void 0 ? \"\" : _a, _b = options.level, level = _b === void 0 ? LogLevel.Info : _b, _c = options.piiLoggingEnabled, piiLoggingEnabled = _c === void 0 ? false : _c;\r\n this.localCallback = localCallback;\r\n this.correlationId = correlationId;\r\n this.level = level;\r\n this.piiLoggingEnabled = piiLoggingEnabled;\r\n }\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.logMessage = function (logLevel, logMessage, containsPii) {\r\n if ((logLevel > this.level) || (!this.piiLoggingEnabled && containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n var log;\r\n if (!StringUtils.isEmpty(this.correlationId)) {\r\n log = timestamp + \":\" + this.correlationId + \"-\" + libraryVersion + \"-\" + LogLevel[logLevel] + (containsPii ? \"-pii\" : \"\") + \" \" + logMessage;\r\n }\r\n else {\r\n log = timestamp + \":\" + libraryVersion + \"-\" + LogLevel[logLevel] + (containsPii ? \"-pii\" : \"\") + \" \" + logMessage;\r\n }\r\n this.executeCallback(logLevel, log, containsPii);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.error = function (message) {\r\n this.logMessage(LogLevel.Error, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.errorPii = function (message) {\r\n this.logMessage(LogLevel.Error, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.warning = function (message) {\r\n this.logMessage(LogLevel.Warning, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.warningPii = function (message) {\r\n this.logMessage(LogLevel.Warning, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.info = function (message) {\r\n this.logMessage(LogLevel.Info, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.infoPii = function (message) {\r\n this.logMessage(LogLevel.Info, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.verbose = function (message) {\r\n this.logMessage(LogLevel.Verbose, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.verbosePii = function (message) {\r\n this.logMessage(LogLevel.Verbose, message, true);\r\n };\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled;\r\n };\r\n return Logger;\r\n}());\r\nexport { Logger };\r\n//# sourceMappingURL=Logger.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { ClientAuthError } from \"./error/ClientAuthError\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar ClientInfo = /** @class */ (function () {\r\n function ClientInfo(rawClientInfo, authority) {\r\n if (!rawClientInfo || StringUtils.isEmpty(rawClientInfo)) {\r\n this.uid = \"\";\r\n this.utid = \"\";\r\n return;\r\n }\r\n try {\r\n var decodedClientInfo = CryptoUtils.base64Decode(rawClientInfo);\r\n var clientInfo = JSON.parse(decodedClientInfo);\r\n if (clientInfo) {\r\n if (clientInfo.hasOwnProperty(\"uid\")) {\r\n this.uid = authority ? ClientInfo.stripPolicyFromUid(clientInfo.uid, authority) : clientInfo.uid;\r\n }\r\n if (clientInfo.hasOwnProperty(\"utid\")) {\r\n this.utid = clientInfo.utid;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e);\r\n }\r\n }\r\n Object.defineProperty(ClientInfo.prototype, \"uid\", {\r\n get: function () {\r\n return this._uid ? this._uid : \"\";\r\n },\r\n set: function (uid) {\r\n this._uid = uid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClientInfo.prototype, \"utid\", {\r\n get: function () {\r\n return this._utid ? this._utid : \"\";\r\n },\r\n set: function (utid) {\r\n this._utid = utid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ClientInfo.createClientInfoFromIdToken = function (idToken, authority) {\r\n var clientInfo = {\r\n uid: idToken.subject,\r\n utid: \"\"\r\n };\r\n return new ClientInfo(CryptoUtils.base64Encode(JSON.stringify(clientInfo)), authority);\r\n };\r\n ClientInfo.stripPolicyFromUid = function (uid, authority) {\r\n var uidSegments = uid.split(\"-\");\r\n // Reverse the url segments so the last one is more easily accessible\r\n var urlSegments = authority.split(\"/\").reverse();\r\n var policy = \"\";\r\n if (!StringUtils.isEmpty(urlSegments[0])) {\r\n policy = urlSegments[0];\r\n }\r\n else if (urlSegments.length > 1) {\r\n // If the original url had a trailing slash, urlSegments[0] would be \"\" so take the next element\r\n policy = urlSegments[1];\r\n }\r\n if (uidSegments[uidSegments.length - 1] === policy) {\r\n // If the last segment of uid matches the last segment of authority url, remove the last segment of uid\r\n return uidSegments.slice(0, uidSegments.length - 1).join(\"-\");\r\n }\r\n return uid;\r\n };\r\n ClientInfo.prototype.encodeClientInfo = function () {\r\n var clientInfo = JSON.stringify({ uid: this.uid, utid: this.utid });\r\n return CryptoUtils.base64Encode(clientInfo);\r\n };\r\n return ClientInfo;\r\n}());\r\nexport { ClientInfo };\r\n//# sourceMappingURL=ClientInfo.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * Returns time in seconds for expiration based on string value passed in.\r\n *\r\n * @param expiresIn\r\n */\r\n TimeUtils.parseExpiresIn = function (expiresIn) {\r\n // if AAD did not send \"expires_in\" property, use default expiration of 3599 seconds, for some reason AAD sends 3599 as \"expires_in\" value instead of 3600\r\n if (!expiresIn) {\r\n expiresIn = \"3599\";\r\n }\r\n return parseInt(expiresIn, 10);\r\n };\r\n /**\r\n * Return the current time in Unix time (seconds). Date.getTime() returns in milliseconds.\r\n */\r\n TimeUtils.now = function () {\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * Returns the amount of time in milliseconds since the page loaded.\r\n */\r\n TimeUtils.relativeNowMs = function () {\r\n return window.performance.now();\r\n };\r\n return TimeUtils;\r\n}());\r\nexport { TimeUtils };\r\n//# sourceMappingURL=TimeUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./CryptoUtils\";\r\nimport { StringUtils } from \"./StringUtils\";\r\nimport { TimeUtils } from \"./TimeUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar TokenUtils = /** @class */ (function () {\r\n function TokenUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param jwtToken\r\n */\r\n TokenUtils.decodeJwt = function (jwtToken) {\r\n if (StringUtils.isEmpty(jwtToken)) {\r\n return null;\r\n }\r\n var idTokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = idTokenPartsRegex.exec(jwtToken);\r\n if (!matches || matches.length < 4) {\r\n // this._requestContext.logger.warn(\"The returned id_token is not parseable.\");\r\n return null;\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Evaluates whether token cache item expiration is within expiration offset range\r\n * @param tokenCacheItem\r\n */\r\n TokenUtils.validateExpirationIsWithinOffset = function (expiration, tokenRenewalOffsetSeconds) {\r\n var offset = tokenRenewalOffsetSeconds || 300;\r\n return expiration && (expiration > TimeUtils.now() + offset);\r\n };\r\n /**\r\n * Extract IdToken by decoding the RAWIdToken\r\n *\r\n * @param encodedIdToken\r\n */\r\n TokenUtils.extractIdToken = function (encodedIdToken) {\r\n // id token will be decoded to get the username\r\n var decodedToken = this.decodeJwt(encodedIdToken);\r\n if (!decodedToken) {\r\n return null;\r\n }\r\n try {\r\n var base64IdToken = decodedToken[\"JWSPayload\"];\r\n var base64Decoded = CryptoUtils.base64Decode(base64IdToken);\r\n if (!base64Decoded) {\r\n // this._requestContext.logger.info(\"The returned id_token could not be base64 url safe decoded.\");\r\n return null;\r\n }\r\n // ECMA script has JSON built-in support\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n // this._requestContext.logger.error(\"The returned id_token could not be decoded\" + err);\r\n }\r\n return null;\r\n };\r\n return TokenUtils;\r\n}());\r\nexport { TokenUtils };\r\n//# sourceMappingURL=TokenUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientAuthError } from \"./error/ClientAuthError\";\r\nimport { TokenUtils } from \"./utils/TokenUtils\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar IdToken = /** @class */ (function () {\r\n /* tslint:disable:no-string-literal */\r\n function IdToken(rawIdToken) {\r\n if (StringUtils.isEmpty(rawIdToken)) {\r\n throw ClientAuthError.createIdTokenNullOrEmptyError(rawIdToken);\r\n }\r\n try {\r\n this.rawIdToken = rawIdToken;\r\n this.claims = TokenUtils.extractIdToken(rawIdToken);\r\n if (this.claims) {\r\n if (this.claims.hasOwnProperty(\"iss\")) {\r\n this.issuer = this.claims[\"iss\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"oid\")) {\r\n this.objectId = this.claims[\"oid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"sub\")) {\r\n this.subject = this.claims[\"sub\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"tid\")) {\r\n this.tenantId = this.claims[\"tid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"ver\")) {\r\n this.version = this.claims[\"ver\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"preferred_username\")) {\r\n this.preferredName = this.claims[\"preferred_username\"];\r\n }\r\n else if (this.claims.hasOwnProperty(\"upn\")) {\r\n this.preferredName = this.claims[\"upn\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"name\")) {\r\n this.name = this.claims[\"name\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"nonce\")) {\r\n this.nonce = this.claims[\"nonce\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"exp\")) {\r\n this.expiration = this.claims[\"exp\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"home_oid\")) {\r\n this.homeObjectId = this.claims[\"home_oid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"sid\")) {\r\n this.sid = this.claims[\"sid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"cloud_instance_host_name\")) {\r\n this.cloudInstance = this.claims[\"cloud_instance_host_name\"];\r\n }\r\n /* tslint:enable:no-string-literal */\r\n }\r\n }\r\n catch (e) {\r\n /*\r\n * TODO: This error here won't really every be thrown, since extractIdToken() returns null if the decodeJwt() fails.\r\n * Need to add better error handling here to account for being unable to decode jwts.\r\n */\r\n throw ClientAuthError.createIdTokenParsingError(e);\r\n }\r\n }\r\n return IdToken;\r\n}());\r\nexport { IdToken };\r\n//# sourceMappingURL=IdToken.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenCacheItem = /** @class */ (function () {\r\n function AccessTokenCacheItem(key, value) {\r\n this.key = key;\r\n this.value = value;\r\n }\r\n return AccessTokenCacheItem;\r\n}());\r\nexport { AccessTokenCacheItem };\r\n//# sourceMappingURL=AccessTokenCacheItem.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { AuthError } from \"../error/AuthError\";\r\n/**\r\n * @hidden\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n if (!window) {\r\n throw AuthError.createNoWindowObjectError(\"Browser storage class could not find window object\");\r\n }\r\n var storageSupported = typeof window[cacheLocation] !== \"undefined\" && window[cacheLocation] !== null;\r\n if (!storageSupported) {\r\n throw ClientConfigurationError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n this.cacheLocation = cacheLocation;\r\n }\r\n /**\r\n * add value to storage\r\n * @param key\r\n * @param value\r\n * @param enableCookieStorage\r\n */\r\n BrowserStorage.prototype.setItem = function (key, value, enableCookieStorage) {\r\n window[this.cacheLocation].setItem(key, value);\r\n if (enableCookieStorage) {\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * get one item by key from storage\r\n * @param key\r\n * @param enableCookieStorage\r\n */\r\n BrowserStorage.prototype.getItem = function (key, enableCookieStorage) {\r\n if (enableCookieStorage && this.getItemCookie(key)) {\r\n return this.getItemCookie(key);\r\n }\r\n return window[this.cacheLocation].getItem(key);\r\n };\r\n /**\r\n * remove value from storage\r\n * @param key\r\n */\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n return window[this.cacheLocation].removeItem(key);\r\n };\r\n /**\r\n * clear storage (remove all items from it)\r\n */\r\n BrowserStorage.prototype.clear = function () {\r\n return window[this.cacheLocation].clear();\r\n };\r\n /**\r\n * add value to cookies\r\n * @param cName\r\n * @param cValue\r\n * @param expires\r\n */\r\n BrowserStorage.prototype.setItemCookie = function (cName, cValue, expires) {\r\n var cookieStr = encodeURIComponent(cName) + \"=\" + encodeURIComponent(cValue) + \";path=/;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * get one item by key from cookies\r\n * @param cName\r\n */\r\n BrowserStorage.prototype.getItemCookie = function (cName) {\r\n var name = encodeURIComponent(cName) + \"=\";\r\n var ca = document.cookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return decodeURIComponent(c.substring(name.length, c.length));\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cName\r\n */\r\n BrowserStorage.prototype.clearItemCookie = function (cName) {\r\n this.setItemCookie(cName, \"\", -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserStorage.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * 24 * 60 * 60 * 1000);\r\n return expr.toUTCString();\r\n };\r\n return BrowserStorage;\r\n}());\r\nexport { BrowserStorage };\r\n//# sourceMappingURL=BrowserStorage.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Constants, PromptState, BlacklistedEQParams } from \"./Constants\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { ScopeSet } from \"../ScopeSet\";\r\nimport { StringUtils } from \"./StringUtils\";\r\nimport { CryptoUtils } from \"./CryptoUtils\";\r\nimport { TimeUtils } from \"./TimeUtils\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\n/**\r\n * @hidden\r\n */\r\nvar RequestUtils = /** @class */ (function () {\r\n function RequestUtils() {\r\n }\r\n /**\r\n * @ignore\r\n *\r\n * @param request\r\n * @param isLoginCall\r\n * @param cacheStorage\r\n * @param clientId\r\n *\r\n * validates all request parameters and generates a consumable request object\r\n */\r\n RequestUtils.validateRequest = function (request, isLoginCall, clientId, interactionType) {\r\n // Throw error if request is empty for acquire * calls\r\n if (!isLoginCall && !request) {\r\n throw ClientConfigurationError.createEmptyRequestError();\r\n }\r\n var scopes;\r\n var extraQueryParameters;\r\n if (request) {\r\n // if extraScopesToConsent is passed in loginCall, append them to the login request; Validate and filter scopes (the validate function will throw if validation fails)\r\n scopes = isLoginCall ? ScopeSet.appendScopes(request.scopes, request.extraScopesToConsent) : request.scopes;\r\n ScopeSet.validateInputScope(scopes, !isLoginCall);\r\n scopes = ScopeSet.translateClientIdIfSingleScope(scopes, clientId);\r\n // validate prompt parameter\r\n this.validatePromptParameter(request.prompt);\r\n // validate extraQueryParameters\r\n extraQueryParameters = this.validateEQParameters(request.extraQueryParameters, request.claimsRequest);\r\n // validate claimsRequest\r\n this.validateClaimsRequest(request.claimsRequest);\r\n }\r\n // validate and generate state and correlationId\r\n var state = this.validateAndGenerateState(request && request.state, interactionType);\r\n var correlationId = this.validateAndGenerateCorrelationId(request && request.correlationId);\r\n var validatedRequest = tslib_1.__assign({}, request, { extraQueryParameters: extraQueryParameters,\r\n scopes: scopes,\r\n state: state,\r\n correlationId: correlationId });\r\n return validatedRequest;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Utility to test if valid prompt value is passed in the request\r\n * @param request\r\n */\r\n RequestUtils.validatePromptParameter = function (prompt) {\r\n if (prompt) {\r\n if ([PromptState.LOGIN, PromptState.SELECT_ACCOUNT, PromptState.CONSENT, PromptState.NONE].indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestUtils.validateEQParameters = function (extraQueryParameters, claimsRequest) {\r\n var eQParams = tslib_1.__assign({}, extraQueryParameters);\r\n if (!eQParams) {\r\n return null;\r\n }\r\n if (claimsRequest) {\r\n // this.logger.warning(\"Removed duplicate claims from extraQueryParameters. Please use either the claimsRequest field OR pass as extraQueryParameter - not both.\");\r\n delete eQParams[Constants.claims];\r\n }\r\n BlacklistedEQParams.forEach(function (param) {\r\n if (eQParams[param]) {\r\n // this.logger.warning(\"Removed duplicate \" + param + \" from extraQueryParameters. Please use the \" + param + \" field in request object.\");\r\n delete eQParams[param];\r\n }\r\n });\r\n return eQParams;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Validates the claims passed in request is a JSON\r\n * TODO: More validation will be added when the server team tells us how they have actually implemented claims\r\n * @param claimsRequest\r\n */\r\n RequestUtils.validateClaimsRequest = function (claimsRequest) {\r\n if (!claimsRequest) {\r\n return;\r\n }\r\n try {\r\n JSON.parse(claimsRequest);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createClaimsRequestParsingError(e);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * generate unique state per request\r\n * @param userState User-provided state value\r\n * @returns State string include library state and user state\r\n */\r\n RequestUtils.validateAndGenerateState = function (userState, interactionType) {\r\n return !StringUtils.isEmpty(userState) ? \"\" + RequestUtils.generateLibraryState(interactionType) + Constants.resourceDelimiter + userState : RequestUtils.generateLibraryState(interactionType);\r\n };\r\n /**\r\n * Generates the state value used by the library.\r\n *\r\n * @returns Base64 encoded string representing the state\r\n */\r\n RequestUtils.generateLibraryState = function (interactionType) {\r\n var stateObject = {\r\n id: CryptoUtils.createNewGuid(),\r\n ts: TimeUtils.now(),\r\n method: interactionType\r\n };\r\n var stateString = JSON.stringify(stateObject);\r\n return CryptoUtils.base64Encode(stateString);\r\n };\r\n /**\r\n * Decodes the state value into a StateObject\r\n *\r\n * @param state State value returned in the request\r\n * @returns Parsed values from the encoded state value\r\n */\r\n RequestUtils.parseLibraryState = function (state) {\r\n var libraryState = decodeURIComponent(state).split(Constants.resourceDelimiter)[0];\r\n if (CryptoUtils.isGuid(libraryState)) {\r\n // If state is guid, assume timestamp is now and is redirect, as redirect should be only method where this can happen.\r\n return {\r\n id: libraryState,\r\n ts: TimeUtils.now(),\r\n method: Constants.interactionTypeRedirect\r\n };\r\n }\r\n try {\r\n var stateString = CryptoUtils.base64Decode(libraryState);\r\n var stateObject = JSON.parse(stateString);\r\n return stateObject;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, null);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * validate correlationId and generate if not valid or not set by the user\r\n * @param correlationId\r\n */\r\n RequestUtils.validateAndGenerateCorrelationId = function (correlationId) {\r\n // validate user set correlationId or set one for the user if null\r\n if (correlationId && !CryptoUtils.isGuid(correlationId)) {\r\n throw ClientConfigurationError.createInvalidCorrelationIdError();\r\n }\r\n return CryptoUtils.isGuid(correlationId) ? correlationId : CryptoUtils.createNewGuid();\r\n };\r\n /**\r\n * Create a request signature\r\n * @param request\r\n */\r\n RequestUtils.createRequestSignature = function (request) {\r\n return \"\" + request.scopes.join(\" \").toLowerCase() + Constants.resourceDelimiter + request.authority;\r\n };\r\n return RequestUtils;\r\n}());\r\nexport { RequestUtils };\r\n//# sourceMappingURL=RequestUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Constants, PersistentCacheKeys, TemporaryCacheKeys, ErrorCacheKeys, ServerHashParamKeys } from \"../utils/Constants\";\r\nimport { AccessTokenCacheItem } from \"./AccessTokenCacheItem\";\r\nimport { BrowserStorage } from \"./BrowserStorage\";\r\nimport { RequestUtils } from \"../utils/RequestUtils\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { IdToken } from \"../IdToken\";\r\n/**\r\n * @hidden\r\n */\r\nvar AuthCache = /** @class */ (function (_super) {\r\n tslib_1.__extends(AuthCache, _super);\r\n function AuthCache(clientId, cacheLocation, storeAuthStateInCookie) {\r\n var _this = _super.call(this, cacheLocation) || this;\r\n _this.clientId = clientId;\r\n // This is hardcoded to true for now. We may make this configurable in the future\r\n _this.rollbackEnabled = true;\r\n _this.migrateCacheEntries(storeAuthStateInCookie);\r\n return _this;\r\n }\r\n /**\r\n * Support roll back to old cache schema until the next major release: true by default now\r\n * @param storeAuthStateInCookie\r\n */\r\n AuthCache.prototype.migrateCacheEntries = function (storeAuthStateInCookie) {\r\n var _this = this;\r\n var idTokenKey = Constants.cachePrefix + \".\" + PersistentCacheKeys.IDTOKEN;\r\n var clientInfoKey = Constants.cachePrefix + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.cachePrefix + \".\" + ErrorCacheKeys.ERROR;\r\n var errorDescKey = Constants.cachePrefix + \".\" + ErrorCacheKeys.ERROR_DESC;\r\n var idTokenValue = _super.prototype.getItem.call(this, idTokenKey);\r\n var idToken;\r\n if (idTokenValue) {\r\n try {\r\n idToken = new IdToken(idTokenValue);\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n }\r\n if (idToken && idToken.claims && idToken.claims.aud === this.clientId) {\r\n var clientInfoValue = _super.prototype.getItem.call(this, clientInfoKey);\r\n var errorValue = _super.prototype.getItem.call(this, errorKey);\r\n var errorDescValue = _super.prototype.getItem.call(this, errorDescKey);\r\n var values_1 = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.IDTOKEN, PersistentCacheKeys.CLIENT_INFO, ErrorCacheKeys.ERROR, ErrorCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.duplicateCacheEntry(cacheKey, values_1[index], storeAuthStateInCookie); });\r\n }\r\n };\r\n /**\r\n * Utility function to help with roll back keys\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n AuthCache.prototype.duplicateCacheEntry = function (newKey, value, storeAuthStateInCookie) {\r\n if (value) {\r\n this.setItem(newKey, value, storeAuthStateInCookie);\r\n }\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n AuthCache.prototype.generateCacheKey = function (key, addInstanceId) {\r\n try {\r\n // Defined schemas do not need the key appended\r\n JSON.parse(key);\r\n return key;\r\n }\r\n catch (e) {\r\n if (key.indexOf(\"\" + Constants.cachePrefix) === 0 || key.indexOf(Constants.adalIdToken) === 0) {\r\n return key;\r\n }\r\n return addInstanceId ? Constants.cachePrefix + \".\" + this.clientId + \".\" + key : Constants.cachePrefix + \".\" + key;\r\n }\r\n };\r\n /**\r\n * Validates that the input cache key contains the account search terms (clientId and homeAccountIdentifier) and\r\n * then whether or not it contains the \"scopes\", depending on the token type being searched for. With matching account\r\n * search terms, Access Token search tries to match the \"scopes\" keyword, while Id Token search expects \"scopes\" to not be included.\r\n * @param key\r\n * @param clientId\r\n * @param homeAccountIdentifier\r\n * @param tokenType\r\n */\r\n AuthCache.prototype.matchKeyForType = function (key, clientId, homeAccountIdentifier, tokenType) {\r\n // All valid token cache item keys are valid JSON objects, ignore keys that aren't\r\n var parsedKey = StringUtils.validateAndParseJsonCacheKey(key);\r\n if (!parsedKey) {\r\n return null;\r\n }\r\n // Does the cache item match the request account\r\n var accountMatches = key.match(clientId) && key.match(homeAccountIdentifier);\r\n // Does the cache item match the requested token type\r\n var tokenTypeMatches = false;\r\n switch (tokenType) {\r\n case ServerHashParamKeys.ACCESS_TOKEN:\r\n // Cache item is an access token if scopes are included in the cache item key\r\n tokenTypeMatches = !!key.match(Constants.scopes);\r\n break;\r\n case ServerHashParamKeys.ID_TOKEN:\r\n // Cache may be an ID token if scopes are NOT included in the cache item key\r\n tokenTypeMatches = !key.match(Constants.scopes);\r\n break;\r\n }\r\n return (accountMatches && tokenTypeMatches) ? parsedKey : null;\r\n };\r\n /**\r\n * add value to storage\r\n * @param key\r\n * @param value\r\n * @param enableCookieStorage\r\n */\r\n AuthCache.prototype.setItem = function (key, value, enableCookieStorage) {\r\n _super.prototype.setItem.call(this, this.generateCacheKey(key, true), value, enableCookieStorage);\r\n // Values stored in cookies will have rollback disabled to minimize cookie length\r\n if (this.rollbackEnabled && !enableCookieStorage) {\r\n _super.prototype.setItem.call(this, this.generateCacheKey(key, false), value, enableCookieStorage);\r\n }\r\n };\r\n /**\r\n * get one item by key from storage\r\n * @param key\r\n * @param enableCookieStorage\r\n */\r\n AuthCache.prototype.getItem = function (key, enableCookieStorage) {\r\n return _super.prototype.getItem.call(this, this.generateCacheKey(key, true), enableCookieStorage);\r\n };\r\n /**\r\n * remove value from storage\r\n * @param key\r\n */\r\n AuthCache.prototype.removeItem = function (key) {\r\n _super.prototype.removeItem.call(this, this.generateCacheKey(key, true));\r\n if (this.rollbackEnabled) {\r\n _super.prototype.removeItem.call(this, this.generateCacheKey(key, false));\r\n }\r\n };\r\n /**\r\n * Reset the cache items\r\n */\r\n AuthCache.prototype.resetCacheItems = function () {\r\n var storage = window[this.cacheLocation];\r\n var key;\r\n for (key in storage) {\r\n // Check if key contains msal prefix; For now, we are clearing all cache items created by MSAL.js\r\n if (storage.hasOwnProperty(key) && (key.indexOf(Constants.cachePrefix) !== -1)) {\r\n _super.prototype.removeItem.call(this, key);\r\n // TODO: Clear cache based on client id (clarify use cases where this is needed)\r\n }\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n */\r\n AuthCache.prototype.resetTempCacheItems = function (state) {\r\n var _this = this;\r\n var stateId = state && RequestUtils.parseLibraryState(state).id;\r\n var isTokenRenewalInProgress = this.tokenRenewalInProgress(state);\r\n var storage = window[this.cacheLocation];\r\n // check state and remove associated cache\r\n if (stateId && !isTokenRenewalInProgress) {\r\n Object.keys(storage).forEach(function (key) {\r\n if (key.indexOf(stateId) !== -1) {\r\n _this.removeItem(key);\r\n _super.prototype.clearItemCookie.call(_this, key);\r\n }\r\n });\r\n }\r\n // delete the interaction status cache\r\n this.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n this.removeItem(TemporaryCacheKeys.REDIRECT_REQUEST);\r\n };\r\n /**\r\n * Set cookies for IE\r\n * @param cName\r\n * @param cValue\r\n * @param expires\r\n */\r\n AuthCache.prototype.setItemCookie = function (cName, cValue, expires) {\r\n _super.prototype.setItemCookie.call(this, this.generateCacheKey(cName, true), cValue, expires);\r\n if (this.rollbackEnabled) {\r\n _super.prototype.setItemCookie.call(this, this.generateCacheKey(cName, false), cValue, expires);\r\n }\r\n };\r\n AuthCache.prototype.clearItemCookie = function (cName) {\r\n _super.prototype.clearItemCookie.call(this, this.generateCacheKey(cName, true));\r\n if (this.rollbackEnabled) {\r\n _super.prototype.clearItemCookie.call(this, this.generateCacheKey(cName, false));\r\n }\r\n };\r\n /**\r\n * get one item by key from cookies\r\n * @param cName\r\n */\r\n AuthCache.prototype.getItemCookie = function (cName) {\r\n return _super.prototype.getItemCookie.call(this, this.generateCacheKey(cName, true));\r\n };\r\n /**\r\n * Get all tokens of a certain type from the cache\r\n * @param clientId\r\n * @param homeAccountIdentifier\r\n * @param tokenType\r\n */\r\n AuthCache.prototype.getAllTokensByType = function (clientId, homeAccountIdentifier, tokenType) {\r\n var _this = this;\r\n var results = Object.keys(window[this.cacheLocation]).reduce(function (tokens, key) {\r\n var matchedTokenKey = _this.matchKeyForType(key, clientId, homeAccountIdentifier, tokenType);\r\n if (matchedTokenKey) {\r\n var value = _this.getItem(key);\r\n if (value) {\r\n try {\r\n var newAccessTokenCacheItem = new AccessTokenCacheItem(matchedTokenKey, JSON.parse(value));\r\n return tokens.concat([newAccessTokenCacheItem]);\r\n }\r\n catch (err) {\r\n // Skip cache items with non-valid JSON values\r\n return tokens;\r\n }\r\n }\r\n }\r\n return tokens;\r\n }, []);\r\n return results;\r\n };\r\n /**\r\n * Get all access tokens in the cache\r\n * @param clientId\r\n * @param homeAccountIdentifier\r\n */\r\n AuthCache.prototype.getAllAccessTokens = function (clientId, homeAccountIdentifier) {\r\n return this.getAllTokensByType(clientId, homeAccountIdentifier, ServerHashParamKeys.ACCESS_TOKEN);\r\n };\r\n /**\r\n * Get all id tokens in the cache in the form of AccessTokenCacheItem objects so they are\r\n * in a normalized format and can make use of the existing cached access token validation logic\r\n */\r\n AuthCache.prototype.getAllIdTokens = function (clientId, homeAccountIdentifier) {\r\n return this.getAllTokensByType(clientId, homeAccountIdentifier, ServerHashParamKeys.ID_TOKEN);\r\n };\r\n /**\r\n * Get all access and ID tokens in the cache\r\n * @param clientId\r\n * @param homeAccountIdentifier\r\n */\r\n AuthCache.prototype.getAllTokens = function (clientId, homeAccountIdentifier) {\r\n var accessTokens = this.getAllAccessTokens(clientId, homeAccountIdentifier);\r\n var idTokens = this.getAllIdTokens(clientId, homeAccountIdentifier);\r\n return accessTokens.concat(idTokens);\r\n };\r\n /**\r\n * Return if the token renewal is still in progress\r\n *\r\n * @param stateValue\r\n */\r\n AuthCache.prototype.tokenRenewalInProgress = function (stateValue) {\r\n var renewStatus = this.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, stateValue));\r\n return !!(renewStatus && renewStatus === Constants.inProgress);\r\n };\r\n /**\r\n * Clear all cookies\r\n */\r\n AuthCache.prototype.clearMsalCookie = function (state) {\r\n var _this = this;\r\n /*\r\n * If state is truthy, remove values associated with that request.\r\n * Otherwise, remove all MSAL cookies.\r\n */\r\n if (state) {\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, state));\r\n }\r\n else {\r\n var cookies = document.cookie.split(\";\");\r\n cookies.forEach(function (cookieString) {\r\n var cookieName = cookieString.trim().split(\"=\")[0];\r\n if (cookieName.indexOf(Constants.cachePrefix) > -1) {\r\n _super.prototype.clearItemCookie.call(_this, cookieName);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Create acquireTokenAccountKey to cache account object\r\n * @param accountId\r\n * @param state\r\n */\r\n AuthCache.generateAcquireTokenAccountKey = function (accountId, state) {\r\n var stateId = RequestUtils.parseLibraryState(state).id;\r\n return \"\" + TemporaryCacheKeys.ACQUIRE_TOKEN_ACCOUNT + Constants.resourceDelimiter + accountId + Constants.resourceDelimiter + stateId;\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n AuthCache.generateAuthorityKey = function (state) {\r\n return AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.AUTHORITY, state);\r\n };\r\n /**\r\n * Generates the cache key for temporary cache items, using request state\r\n * @param tempCacheKey Cache key prefix\r\n * @param state Request state value\r\n */\r\n AuthCache.generateTemporaryCacheKey = function (tempCacheKey, state) {\r\n // Use the state id (a guid), in the interest of shorter key names, which is important for cookies.\r\n var stateId = RequestUtils.parseLibraryState(state).id;\r\n return \"\" + tempCacheKey + Constants.resourceDelimiter + stateId;\r\n };\r\n return AuthCache;\r\n}(BrowserStorage));\r\nexport { AuthCache };\r\n//# sourceMappingURL=AuthCache.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * accountIdentifier combination of idToken.uid and idToken.utid\r\n * homeAccountIdentifier combination of clientInfo.uid and clientInfo.utid\r\n * userName idToken.preferred_username\r\n * name idToken.name\r\n * idToken idToken\r\n * sid idToken.sid - session identifier\r\n * environment idtoken.issuer (the authority that issues the token)\r\n */\r\nvar Account = /** @class */ (function () {\r\n /**\r\n * Creates an Account Object\r\n * @praram accountIdentifier\r\n * @param homeAccountIdentifier\r\n * @param userName\r\n * @param name\r\n * @param idToken\r\n * @param sid\r\n * @param environment\r\n */\r\n function Account(accountIdentifier, homeAccountIdentifier, userName, name, idTokenClaims, sid, environment) {\r\n this.accountIdentifier = accountIdentifier;\r\n this.homeAccountIdentifier = homeAccountIdentifier;\r\n this.userName = userName;\r\n this.name = name;\r\n // will be deprecated soon\r\n this.idToken = idTokenClaims;\r\n this.idTokenClaims = idTokenClaims;\r\n this.sid = sid;\r\n this.environment = environment;\r\n }\r\n /**\r\n * @hidden\r\n * @param idToken\r\n * @param clientInfo\r\n */\r\n Account.createAccount = function (idToken, clientInfo) {\r\n // create accountIdentifier\r\n var accountIdentifier = idToken.objectId || idToken.subject;\r\n // create homeAccountIdentifier\r\n var uid = clientInfo ? clientInfo.uid : \"\";\r\n var utid = clientInfo ? clientInfo.utid : \"\";\r\n var homeAccountIdentifier;\r\n if (!StringUtils.isEmpty(uid)) {\r\n homeAccountIdentifier = StringUtils.isEmpty(utid) ? CryptoUtils.base64Encode(uid) : CryptoUtils.base64Encode(uid) + \".\" + CryptoUtils.base64Encode(utid);\r\n }\r\n return new Account(accountIdentifier, homeAccountIdentifier, idToken.preferredName, idToken.name, idToken.claims, idToken.sid, idToken.issuer);\r\n };\r\n /**\r\n * Utils function to compare two Account objects - used to check if the same user account is logged in\r\n *\r\n * @param a1: Account object\r\n * @param a2: Account object\r\n */\r\n Account.compareAccounts = function (a1, a2) {\r\n if (!a1 || !a2) {\r\n return false;\r\n }\r\n if (a1.homeAccountIdentifier && a2.homeAccountIdentifier) {\r\n if (a1.homeAccountIdentifier === a2.homeAccountIdentifier) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Account;\r\n}());\r\nexport { Account };\r\n//# sourceMappingURL=Account.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { UrlUtils } from \"./UrlUtils\";\r\nimport { TemporaryCacheKeys, Constants } from \"./Constants\";\r\nimport { TimeUtils } from \"./TimeUtils\";\r\nvar WindowUtils = /** @class */ (function () {\r\n function WindowUtils() {\r\n }\r\n /**\r\n * @hidden\r\n * Checks if the current page is running in an iframe.\r\n * @ignore\r\n */\r\n WindowUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * @hidden\r\n * Check if the current page is running in a popup.\r\n * @ignore\r\n */\r\n WindowUtils.isInPopup = function () {\r\n return !!(window.opener && window.opener !== window);\r\n };\r\n /**\r\n * @hidden\r\n * @param prefix\r\n * @param scopes\r\n * @param authority\r\n */\r\n WindowUtils.generateFrameName = function (prefix, requestSignature) {\r\n return \"\" + prefix + Constants.resourceDelimiter + requestSignature;\r\n };\r\n /**\r\n * @hidden\r\n * Polls an iframe until it loads a url with a hash\r\n * @ignore\r\n */\r\n WindowUtils.monitorIframeForHash = function (contentWindow, timeout, urlNavigate, logger) {\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = TimeUtils.relativeNowMs();\r\n var timeoutMark = nowMark + timeout;\r\n logger.verbose(\"monitorWindowForIframe polling started\");\r\n var intervalId = setInterval(function () {\r\n if (TimeUtils.relativeNowMs() > timeoutMark) {\r\n logger.error(\"monitorIframeForHash unable to find hash in url, timing out\");\r\n logger.errorPii(\"monitorIframeForHash polling timed out for url: \" + urlNavigate);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createTokenRenewalTimeoutError());\r\n return;\r\n }\r\n var href;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow.location.href;\r\n }\r\n catch (e) { }\r\n if (href && UrlUtils.urlContainsHash(href)) {\r\n logger.verbose(\"monitorIframeForHash found url in hash\");\r\n clearInterval(intervalId);\r\n resolve(contentWindow.location.hash);\r\n }\r\n }, WindowUtils.POLLING_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Polls a popup until it loads a url with a hash\r\n * @ignore\r\n */\r\n WindowUtils.monitorPopupForHash = function (contentWindow, timeout, urlNavigate, logger) {\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = timeout / WindowUtils.POLLING_INTERVAL_MS;\r\n var ticks = 0;\r\n logger.verbose(\"monitorWindowForHash polling started\");\r\n var intervalId = setInterval(function () {\r\n if (contentWindow.closed) {\r\n logger.error(\"monitorWindowForHash window closed\");\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (!href || href === \"about:blank\") {\r\n return;\r\n }\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (href && UrlUtils.urlContainsHash(href)) {\r\n logger.verbose(\"monitorPopupForHash found url in hash\");\r\n clearInterval(intervalId);\r\n resolve(contentWindow.location.hash);\r\n }\r\n else if (ticks > maxTicks) {\r\n logger.error(\"monitorPopupForHash unable to find hash in url, timing out\");\r\n logger.errorPii(\"monitorPopupForHash polling timed out for url: \" + urlNavigate);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createTokenRenewalTimeoutError());\r\n }\r\n }, WindowUtils.POLLING_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n WindowUtils.loadFrame = function (urlNavigate, frameName, timeoutMs, logger) {\r\n var _this = this;\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n logger.infoPii(\"LoadFrame: \" + frameName);\r\n return new Promise(function (resolve, reject) {\r\n setTimeout(function () {\r\n var frameHandle = _this.loadFrameSync(urlNavigate, frameName, logger);\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe with name: \" + frameName);\r\n return;\r\n }\r\n resolve(frameHandle);\r\n }, timeoutMs);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n WindowUtils.loadFrameSync = function (urlNavigate, frameName, logger) {\r\n var frameHandle = WindowUtils.addHiddenIFrame(frameName, logger);\r\n // returning to handle null in loadFrame, also to avoid null object access errors\r\n if (!frameHandle) {\r\n return null;\r\n }\r\n else if (frameHandle.src === \"\" || frameHandle.src === \"about:blank\") {\r\n frameHandle.src = urlNavigate;\r\n logger.infoPii(\"Frame Name : \" + frameName + \" Navigated to: \" + urlNavigate);\r\n }\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Adds the hidden iframe for silent token renewal.\r\n * @ignore\r\n */\r\n WindowUtils.addHiddenIFrame = function (iframeId, logger) {\r\n if (typeof iframeId === \"undefined\") {\r\n return null;\r\n }\r\n logger.infoPii(\"Add msal frame to document:\" + iframeId);\r\n var adalFrame = document.getElementById(iframeId);\r\n if (!adalFrame) {\r\n if (document.createElement &&\r\n document.documentElement &&\r\n (window.navigator.userAgent.indexOf(\"MSIE 5.0\") === -1)) {\r\n var ifr = document.createElement(\"iframe\");\r\n ifr.setAttribute(\"id\", iframeId);\r\n ifr.setAttribute(\"aria-hidden\", \"true\");\r\n ifr.style.visibility = \"hidden\";\r\n ifr.style.position = \"absolute\";\r\n ifr.style.width = ifr.style.height = \"0\";\r\n ifr.style.border = \"0\";\r\n ifr.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n adalFrame = document.getElementsByTagName(\"body\")[0].appendChild(ifr);\r\n }\r\n else if (document.body && document.body.insertAdjacentHTML) {\r\n document.body.insertAdjacentHTML(\"beforeend\", \"\");\r\n }\r\n if (window.frames && window.frames[iframeId]) {\r\n adalFrame = window.frames[iframeId];\r\n }\r\n }\r\n return adalFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n WindowUtils.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Find and return the iframe element with the given hash\r\n * @ignore\r\n */\r\n WindowUtils.getIframeWithHash = function (hash) {\r\n var iframes = document.getElementsByTagName(\"iframe\");\r\n var iframeArray = Array.apply(null, Array(iframes.length)).map(function (iframe, index) { return iframes.item(index); }); // eslint-disable-line prefer-spread\r\n return iframeArray.filter(function (iframe) {\r\n try {\r\n return iframe.contentWindow.location.hash === hash;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n })[0];\r\n };\r\n /**\r\n * @hidden\r\n * Returns an array of all the popups opened by MSAL\r\n * @ignore\r\n */\r\n WindowUtils.getPopups = function () {\r\n if (!window.openedWindows) {\r\n window.openedWindows = [];\r\n }\r\n return window.openedWindows;\r\n };\r\n /**\r\n * @hidden\r\n * Find and return the popup with the given hash\r\n * @ignore\r\n */\r\n WindowUtils.getPopUpWithHash = function (hash) {\r\n return WindowUtils.getPopups().filter(function (popup) {\r\n try {\r\n return popup.location.hash === hash;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n })[0];\r\n };\r\n /**\r\n * @hidden\r\n * Add the popup to the known list of popups\r\n * @ignore\r\n */\r\n WindowUtils.trackPopup = function (popup) {\r\n WindowUtils.getPopups().push(popup);\r\n };\r\n /**\r\n * @hidden\r\n * Close all popups\r\n * @ignore\r\n */\r\n WindowUtils.closePopups = function () {\r\n WindowUtils.getPopups().forEach(function (popup) { return popup.close(); });\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * blocks any login/acquireToken calls to reload from within a hidden iframe (generated for silent calls)\r\n */\r\n WindowUtils.blockReloadInHiddenIframes = function () {\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (UrlUtils.urlContainsHash(window.location.hash) && WindowUtils.isInIframe()) {\r\n throw ClientAuthError.createBlockTokenRequestsInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n *\r\n * @param cacheStorage\r\n */\r\n WindowUtils.checkIfBackButtonIsPressed = function (cacheStorage) {\r\n var redirectCache = cacheStorage.getItem(TemporaryCacheKeys.REDIRECT_REQUEST);\r\n // if redirect request is set and there is no hash\r\n if (redirectCache && !UrlUtils.urlContainsHash(window.location.hash)) {\r\n var splitCache = redirectCache.split(Constants.resourceDelimiter);\r\n splitCache.shift();\r\n var state = splitCache.length > 0 ? splitCache.join(Constants.resourceDelimiter) : null;\r\n cacheStorage.resetTempCacheItems(state);\r\n }\r\n };\r\n /**\r\n * Removes url fragment from browser url\r\n */\r\n WindowUtils.clearUrlFragment = function () {\r\n // Office.js sets history.replaceState to null\r\n if (typeof history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n history.replaceState(null, null, \"\" + window.location.pathname + window.location.search);\r\n }\r\n else {\r\n window.location.hash = \"\";\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Interval in milliseconds that we poll a window\r\n * @ignore\r\n */\r\n WindowUtils.POLLING_INTERVAL_MS = 50;\r\n return WindowUtils;\r\n}());\r\nexport { WindowUtils };\r\n//# sourceMappingURL=WindowUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ResponseTypes, ServerHashParamKeys } from \"./Constants\";\r\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar ResponseUtils = /** @class */ (function () {\r\n function ResponseUtils() {\r\n }\r\n ResponseUtils.setResponseIdToken = function (originalResponse, idTokenObj) {\r\n if (!originalResponse) {\r\n return null;\r\n }\r\n else if (!idTokenObj) {\r\n return originalResponse;\r\n }\r\n var exp = Number(idTokenObj.expiration);\r\n if (exp && !originalResponse.expiresOn) {\r\n originalResponse.expiresOn = new Date(exp * 1000);\r\n }\r\n return tslib_1.__assign({}, originalResponse, { idToken: idTokenObj, idTokenClaims: idTokenObj.claims, uniqueId: idTokenObj.objectId || idTokenObj.subject, tenantId: idTokenObj.tenantId });\r\n };\r\n ResponseUtils.buildAuthResponse = function (idToken, authResponse, serverAuthenticationRequest, account, scopes, accountState) {\r\n switch (serverAuthenticationRequest.responseType) {\r\n case ResponseTypes.id_token:\r\n authResponse = tslib_1.__assign({}, authResponse, { tokenType: ServerHashParamKeys.ID_TOKEN, account: account, scopes: scopes, accountState: accountState });\r\n authResponse = ResponseUtils.setResponseIdToken(authResponse, idToken);\r\n return (authResponse.idToken) ? authResponse : null;\r\n case ResponseTypes.id_token_token:\r\n authResponse = ResponseUtils.setResponseIdToken(authResponse, idToken);\r\n return (authResponse && authResponse.accessToken && authResponse.idToken) ? authResponse : null;\r\n case ResponseTypes.token:\r\n authResponse = ResponseUtils.setResponseIdToken(authResponse, idToken);\r\n return authResponse;\r\n default:\r\n return null;\r\n }\r\n };\r\n return ResponseUtils;\r\n}());\r\nexport { ResponseUtils };\r\n//# sourceMappingURL=ResponseUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @hidden\r\n */\r\nimport { Authority } from \"./Authority\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n AuthorityFactory.saveMetadataFromNetwork = function (authorityInstance, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var metadata;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, authorityInstance.resolveEndpointsAsync(telemetryManager, correlationId)];\r\n case 1:\r\n metadata = _a.sent();\r\n this.metadataMap.set(authorityInstance.CanonicalAuthority, metadata);\r\n return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n AuthorityFactory.getMetadata = function (authorityUrl) {\r\n return this.metadataMap.get(authorityUrl);\r\n };\r\n AuthorityFactory.saveMetadataFromConfig = function (authorityUrl, authorityMetadataJson) {\r\n try {\r\n if (authorityMetadataJson) {\r\n var parsedMetadata = JSON.parse(authorityMetadataJson);\r\n if (!parsedMetadata.authorization_endpoint || !parsedMetadata.end_session_endpoint || !parsedMetadata.issuer) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n this.metadataMap.set(authorityUrl, {\r\n AuthorizationEndpoint: parsedMetadata.authorization_endpoint,\r\n EndSessionEndpoint: parsedMetadata.end_session_endpoint,\r\n Issuer: parsedMetadata.issuer\r\n });\r\n }\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (eg aad, b2c)\r\n */\r\n AuthorityFactory.CreateInstance = function (authorityUrl, validateAuthority, authorityMetadata) {\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n return null;\r\n }\r\n if (authorityMetadata) {\r\n // todo: log statements\r\n this.saveMetadataFromConfig(authorityUrl, authorityMetadata);\r\n }\r\n return new Authority(authorityUrl, validateAuthority, this.metadataMap.get(authorityUrl));\r\n };\r\n AuthorityFactory.metadataMap = new Map();\r\n return AuthorityFactory;\r\n}());\r\nexport { AuthorityFactory };\r\n//# sourceMappingURL=AuthorityFactory.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Logger } from \"./Logger\";\r\nimport { UrlUtils } from \"./utils/UrlUtils\";\r\n/**\r\n * Defaults for the Configuration Options\r\n */\r\nvar FRAME_TIMEOUT = 6000;\r\nvar OFFSET = 300;\r\nvar NAVIGATE_FRAME_WAIT = 500;\r\nvar DEFAULT_AUTH_OPTIONS = {\r\n clientId: \"\",\r\n authority: null,\r\n validateAuthority: true,\r\n authorityMetadata: \"\",\r\n knownAuthorities: [],\r\n redirectUri: function () { return UrlUtils.getCurrentUrl(); },\r\n postLogoutRedirectUri: function () { return UrlUtils.getCurrentUrl(); },\r\n navigateToLoginRequestUrl: true\r\n};\r\nvar DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: \"sessionStorage\",\r\n storeAuthStateInCookie: false\r\n};\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n logger: new Logger(null),\r\n loadFrameTimeout: FRAME_TIMEOUT,\r\n tokenRenewalOffsetSeconds: OFFSET,\r\n navigateFrameWait: NAVIGATE_FRAME_WAIT\r\n};\r\nvar DEFAULT_FRAMEWORK_OPTIONS = {\r\n isAngular: false,\r\n unprotectedResources: new Array(),\r\n protectedResourceMap: new Map()\r\n};\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param TAuthOptions\r\n * @param TCacheOptions\r\n * @param TSystemOptions\r\n * @param TFrameworkOptions\r\n * @param TAuthorityDataOptions\r\n *\r\n * @returns TConfiguration object\r\n */\r\nexport function buildConfiguration(_a) {\r\n var auth = _a.auth, _b = _a.cache, cache = _b === void 0 ? {} : _b, _c = _a.system, system = _c === void 0 ? {} : _c, _d = _a.framework, framework = _d === void 0 ? {} : _d;\r\n var overlayedConfig = {\r\n auth: tslib_1.__assign({}, DEFAULT_AUTH_OPTIONS, auth),\r\n cache: tslib_1.__assign({}, DEFAULT_CACHE_OPTIONS, cache),\r\n system: tslib_1.__assign({}, DEFAULT_SYSTEM_OPTIONS, system),\r\n framework: tslib_1.__assign({}, DEFAULT_FRAMEWORK_OPTIONS, framework)\r\n };\r\n return overlayedConfig;\r\n}\r\n//# sourceMappingURL=Configuration.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nexport function buildResponseStateOnly(state) {\r\n return {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: \"\",\r\n idToken: null,\r\n idTokenClaims: null,\r\n accessToken: \"\",\r\n scopes: null,\r\n expiresOn: null,\r\n account: null,\r\n accountState: state,\r\n fromCache: false\r\n };\r\n}\r\n//# sourceMappingURL=AuthResponse.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nexport var EVENT_NAME_PREFIX = \"msal.\";\r\nexport var EVENT_NAME_KEY = \"event_name\";\r\nexport var START_TIME_KEY = \"start_time\";\r\nexport var ELAPSED_TIME_KEY = \"elapsed_time\";\r\nexport var TELEMETRY_BLOB_EVENT_NAMES = {\r\n MsalCorrelationIdConstStrKey: \"Microsoft.MSAL.correlation_id\",\r\n ApiTelemIdConstStrKey: \"msal.api_telem_id\",\r\n ApiIdConstStrKey: \"msal.api_id\",\r\n BrokerAppConstStrKey: \"Microsoft_MSAL_broker_app\",\r\n CacheEventCountConstStrKey: \"Microsoft_MSAL_cache_event_count\",\r\n HttpEventCountTelemetryBatchKey: \"Microsoft_MSAL_http_event_count\",\r\n IdpConstStrKey: \"Microsoft_MSAL_idp\",\r\n IsSilentTelemetryBatchKey: \"\",\r\n IsSuccessfulConstStrKey: \"Microsoft_MSAL_is_successful\",\r\n ResponseTimeConstStrKey: \"Microsoft_MSAL_response_time\",\r\n TenantIdConstStrKey: \"Microsoft_MSAL_tenant_id\",\r\n UiEventCountTelemetryBatchKey: \"Microsoft_MSAL_ui_event_count\"\r\n};\r\n// This is used to replace the real tenant in telemetry info\r\nexport var TENANT_PLACEHOLDER = \"\";\r\n//# sourceMappingURL=TelemetryConstants.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar _a;\r\nimport * as tslib_1 from \"tslib\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES } from \"./TelemetryConstants\";\r\nimport { scrubTenantFromUri, hashPersonalIdentifier, prependEventNamePrefix } from \"./TelemetryUtils\";\r\nexport var EVENT_KEYS = {\r\n AUTHORITY: prependEventNamePrefix(\"authority\"),\r\n AUTHORITY_TYPE: prependEventNamePrefix(\"authority_type\"),\r\n PROMPT: prependEventNamePrefix(\"ui_behavior\"),\r\n TENANT_ID: prependEventNamePrefix(\"tenant_id\"),\r\n USER_ID: prependEventNamePrefix(\"user_id\"),\r\n WAS_SUCESSFUL: prependEventNamePrefix(\"was_successful\"),\r\n API_ERROR_CODE: prependEventNamePrefix(\"api_error_code\"),\r\n LOGIN_HINT: prependEventNamePrefix(\"login_hint\")\r\n};\r\nexport var API_CODE;\r\n(function (API_CODE) {\r\n API_CODE[API_CODE[\"AcquireTokenRedirect\"] = 2001] = \"AcquireTokenRedirect\";\r\n API_CODE[API_CODE[\"AcquireTokenSilent\"] = 2002] = \"AcquireTokenSilent\";\r\n API_CODE[API_CODE[\"AcquireTokenPopup\"] = 2003] = \"AcquireTokenPopup\";\r\n API_CODE[API_CODE[\"LoginRedirect\"] = 2004] = \"LoginRedirect\";\r\n API_CODE[API_CODE[\"LoginPopup\"] = 2005] = \"LoginPopup\";\r\n API_CODE[API_CODE[\"Logout\"] = 2006] = \"Logout\";\r\n})(API_CODE || (API_CODE = {}));\r\nexport var API_EVENT_IDENTIFIER;\r\n(function (API_EVENT_IDENTIFIER) {\r\n API_EVENT_IDENTIFIER[\"AcquireTokenRedirect\"] = \"AcquireTokenRedirect\";\r\n API_EVENT_IDENTIFIER[\"AcquireTokenSilent\"] = \"AcquireTokenSilent\";\r\n API_EVENT_IDENTIFIER[\"AcquireTokenPopup\"] = \"AcquireTokenPopup\";\r\n API_EVENT_IDENTIFIER[\"LoginRedirect\"] = \"LoginRedirect\";\r\n API_EVENT_IDENTIFIER[\"LoginPopup\"] = \"LoginPopup\";\r\n API_EVENT_IDENTIFIER[\"Logout\"] = \"Logout\";\r\n})(API_EVENT_IDENTIFIER || (API_EVENT_IDENTIFIER = {}));\r\nvar mapEventIdentiferToCode = (_a = {},\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenSilent] = API_CODE.AcquireTokenSilent,\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenPopup] = API_CODE.AcquireTokenPopup,\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenRedirect] = API_CODE.AcquireTokenRedirect,\r\n _a[API_EVENT_IDENTIFIER.LoginPopup] = API_CODE.LoginPopup,\r\n _a[API_EVENT_IDENTIFIER.LoginRedirect] = API_CODE.LoginRedirect,\r\n _a[API_EVENT_IDENTIFIER.Logout] = API_CODE.Logout,\r\n _a);\r\nvar ApiEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(ApiEvent, _super);\r\n function ApiEvent(correlationId, piiEnabled, apiEventIdentifier) {\r\n var _this = _super.call(this, prependEventNamePrefix(\"api_event\"), correlationId, apiEventIdentifier) || this;\r\n if (apiEventIdentifier) {\r\n _this.apiCode = mapEventIdentiferToCode[apiEventIdentifier];\r\n _this.apiEventIdentifier = apiEventIdentifier;\r\n }\r\n _this.piiEnabled = piiEnabled;\r\n return _this;\r\n }\r\n Object.defineProperty(ApiEvent.prototype, \"apiEventIdentifier\", {\r\n set: function (apiEventIdentifier) {\r\n this.event[TELEMETRY_BLOB_EVENT_NAMES.ApiTelemIdConstStrKey] = apiEventIdentifier;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"apiCode\", {\r\n set: function (apiCode) {\r\n this.event[TELEMETRY_BLOB_EVENT_NAMES.ApiIdConstStrKey] = apiCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"authority\", {\r\n set: function (uri) {\r\n this.event[EVENT_KEYS.AUTHORITY] = scrubTenantFromUri(uri).toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"apiErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.API_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"tenantId\", {\r\n set: function (tenantId) {\r\n this.event[EVENT_KEYS.TENANT_ID] = this.piiEnabled && tenantId ?\r\n hashPersonalIdentifier(tenantId)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"accountId\", {\r\n set: function (accountId) {\r\n this.event[EVENT_KEYS.USER_ID] = this.piiEnabled && accountId ?\r\n hashPersonalIdentifier(accountId)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"wasSuccessful\", {\r\n get: function () {\r\n return this.event[EVENT_KEYS.WAS_SUCESSFUL] === true;\r\n },\r\n set: function (wasSuccessful) {\r\n this.event[EVENT_KEYS.WAS_SUCESSFUL] = wasSuccessful;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"loginHint\", {\r\n set: function (loginHint) {\r\n this.event[EVENT_KEYS.LOGIN_HINT] = this.piiEnabled && loginHint ?\r\n hashPersonalIdentifier(loginHint)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"authorityType\", {\r\n set: function (authorityType) {\r\n this.event[EVENT_KEYS.AUTHORITY_TYPE] = authorityType.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"promptType\", {\r\n set: function (promptType) {\r\n this.event[EVENT_KEYS.PROMPT] = promptType.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ApiEvent;\r\n}(TelemetryEvent));\r\nexport default ApiEvent;\r\n//# sourceMappingURL=ApiEvent.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { TENANT_PLACEHOLDER, EVENT_NAME_PREFIX } from \"./TelemetryConstants\";\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nimport { Authority } from \"../authority/Authority\";\r\nexport var scrubTenantFromUri = function (uri) {\r\n var url = UrlUtils.GetUrlComponents(uri);\r\n // validate trusted host\r\n if (Authority.isAdfs(uri)) {\r\n /**\r\n * returning what was passed because the library needs to work with uris that are non\r\n * AAD trusted but passed by users such as B2C or others.\r\n * HTTP Events for instance can take a url to the open id config endpoint\r\n */\r\n return uri;\r\n }\r\n var pathParams = url.PathSegments;\r\n if (pathParams && pathParams.length >= 2) {\r\n var tenantPosition = pathParams[1] === \"tfp\" ? 2 : 1;\r\n if (tenantPosition < pathParams.length) {\r\n pathParams[tenantPosition] = TENANT_PLACEHOLDER;\r\n }\r\n }\r\n return url.Protocol + \"//\" + url.HostNameAndPort + \"/\" + pathParams.join(\"/\");\r\n};\r\nexport var hashPersonalIdentifier = function (valueToHash) {\r\n /*\r\n * TODO sha256 this\r\n * Current test runner is being funny with node libs that are webpacked anyway\r\n * need a different solution\r\n */\r\n return CryptoUtils.base64Encode(valueToHash);\r\n};\r\nexport var prependEventNamePrefix = function (suffix) { return \"\" + EVENT_NAME_PREFIX + (suffix || \"\"); };\r\nexport var supportsBrowserPerformance = function () { return !!(typeof window !== \"undefined\" &&\r\n \"performance\" in window &&\r\n window.performance.mark &&\r\n window.performance.measure); };\r\nexport var endBrowserPerformanceMeasurement = function (measureName, startMark, endMark) {\r\n if (supportsBrowserPerformance()) {\r\n window.performance.mark(endMark);\r\n window.performance.measure(measureName, startMark, endMark);\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(startMark);\r\n window.performance.clearMarks(endMark);\r\n }\r\n};\r\nexport var startBrowserPerformanceMeasurement = function (startMark) {\r\n if (supportsBrowserPerformance()) {\r\n window.performance.mark(startMark);\r\n }\r\n};\r\n//# sourceMappingURL=TelemetryUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES, EVENT_NAME_KEY, START_TIME_KEY, ELAPSED_TIME_KEY } from \"./TelemetryConstants\";\r\nimport { prependEventNamePrefix, startBrowserPerformanceMeasurement, endBrowserPerformanceMeasurement } from \"./TelemetryUtils\";\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nvar TelemetryEvent = /** @class */ (function () {\r\n function TelemetryEvent(eventName, correlationId, eventLabel) {\r\n var _a;\r\n this.eventId = CryptoUtils.createNewGuid();\r\n this.label = eventLabel;\r\n this.event = (_a = {},\r\n _a[prependEventNamePrefix(EVENT_NAME_KEY)] = eventName,\r\n _a[prependEventNamePrefix(ELAPSED_TIME_KEY)] = -1,\r\n _a[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = correlationId,\r\n _a);\r\n }\r\n TelemetryEvent.prototype.setElapsedTime = function (time) {\r\n this.event[prependEventNamePrefix(ELAPSED_TIME_KEY)] = time;\r\n };\r\n TelemetryEvent.prototype.stop = function () {\r\n // Set duration of event\r\n this.setElapsedTime(+Date.now() - +this.startTimestamp);\r\n endBrowserPerformanceMeasurement(this.displayName, this.perfStartMark, this.perfEndMark);\r\n };\r\n TelemetryEvent.prototype.start = function () {\r\n this.startTimestamp = Date.now();\r\n this.event[prependEventNamePrefix(START_TIME_KEY)] = this.startTimestamp;\r\n startBrowserPerformanceMeasurement(this.perfStartMark);\r\n };\r\n Object.defineProperty(TelemetryEvent.prototype, \"telemetryCorrelationId\", {\r\n get: function () {\r\n return this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey];\r\n },\r\n set: function (value) {\r\n this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"eventName\", {\r\n get: function () {\r\n return this.event[prependEventNamePrefix(EVENT_NAME_KEY)];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TelemetryEvent.prototype.get = function () {\r\n return tslib_1.__assign({}, this.event, { eventId: this.eventId });\r\n };\r\n Object.defineProperty(TelemetryEvent.prototype, \"key\", {\r\n get: function () {\r\n return this.telemetryCorrelationId + \"_\" + this.eventId + \"-\" + this.eventName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"displayName\", {\r\n get: function () {\r\n return \"Msal-\" + this.label + \"-\" + this.telemetryCorrelationId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"perfStartMark\", {\r\n get: function () {\r\n return \"start-\" + this.key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"perfEndMark\", {\r\n get: function () {\r\n return \"end-\" + this.key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TelemetryEvent;\r\n}());\r\nexport default TelemetryEvent;\r\n//# sourceMappingURL=TelemetryEvent.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES } from \"./TelemetryConstants\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { prependEventNamePrefix } from \"./TelemetryUtils\";\r\nvar DefaultEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DefaultEvent, _super);\r\n // TODO Platform Type\r\n function DefaultEvent(platform, correlationId, clientId, eventCount) {\r\n var _this = _super.call(this, prependEventNamePrefix(\"default_event\"), correlationId, \"DefaultEvent\") || this;\r\n _this.event[prependEventNamePrefix(\"client_id\")] = clientId;\r\n _this.event[prependEventNamePrefix(\"sdk_plaform\")] = platform.sdk;\r\n _this.event[prependEventNamePrefix(\"sdk_version\")] = platform.sdkVersion;\r\n _this.event[prependEventNamePrefix(\"application_name\")] = platform.applicationName;\r\n _this.event[prependEventNamePrefix(\"application_version\")] = platform.applicationVersion;\r\n _this.event[prependEventNamePrefix(\"effective_connection_speed\")] = platform.networkInformation && platform.networkInformation.connectionSpeed;\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.UiEventCountTelemetryBatchKey] = _this.getEventCount(prependEventNamePrefix(\"ui_event\"), eventCount);\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.HttpEventCountTelemetryBatchKey] = _this.getEventCount(prependEventNamePrefix(\"http_event\"), eventCount);\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.CacheEventCountConstStrKey] = _this.getEventCount(prependEventNamePrefix(\"cache_event\"), eventCount);\r\n return _this;\r\n // / Device id?\r\n }\r\n DefaultEvent.prototype.getEventCount = function (eventName, eventCount) {\r\n if (!eventCount[eventName]) {\r\n return 0;\r\n }\r\n return eventCount[eventName];\r\n };\r\n return DefaultEvent;\r\n}(TelemetryEvent));\r\nexport default DefaultEvent;\r\n//# sourceMappingURL=DefaultEvent.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { scrubTenantFromUri, prependEventNamePrefix } from \"./TelemetryUtils\";\r\nimport { ServerRequestParameters } from \"../ServerRequestParameters\";\r\nexport var EVENT_KEYS = {\r\n HTTP_PATH: prependEventNamePrefix(\"http_path\"),\r\n USER_AGENT: prependEventNamePrefix(\"user_agent\"),\r\n QUERY_PARAMETERS: prependEventNamePrefix(\"query_parameters\"),\r\n API_VERSION: prependEventNamePrefix(\"api_version\"),\r\n RESPONSE_CODE: prependEventNamePrefix(\"response_code\"),\r\n O_AUTH_ERROR_CODE: prependEventNamePrefix(\"oauth_error_code\"),\r\n HTTP_METHOD: prependEventNamePrefix(\"http_method\"),\r\n REQUEST_ID_HEADER: prependEventNamePrefix(\"request_id_header\"),\r\n SPE_INFO: prependEventNamePrefix(\"spe_info\"),\r\n SERVER_ERROR_CODE: prependEventNamePrefix(\"server_error_code\"),\r\n SERVER_SUB_ERROR_CODE: prependEventNamePrefix(\"server_sub_error_code\"),\r\n URL: prependEventNamePrefix(\"url\")\r\n};\r\nvar HttpEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(HttpEvent, _super);\r\n function HttpEvent(correlationId, eventLabel) {\r\n return _super.call(this, prependEventNamePrefix(\"http_event\"), correlationId, eventLabel) || this;\r\n }\r\n Object.defineProperty(HttpEvent.prototype, \"url\", {\r\n set: function (url) {\r\n var scrubbedUri = scrubTenantFromUri(url);\r\n this.event[EVENT_KEYS.URL] = scrubbedUri && scrubbedUri.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpPath\", {\r\n set: function (httpPath) {\r\n this.event[EVENT_KEYS.HTTP_PATH] = scrubTenantFromUri(httpPath).toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"userAgent\", {\r\n set: function (userAgent) {\r\n this.event[EVENT_KEYS.USER_AGENT] = userAgent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"queryParams\", {\r\n set: function (queryParams) {\r\n this.event[EVENT_KEYS.QUERY_PARAMETERS] = ServerRequestParameters.generateQueryParametersString(queryParams);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"apiVersion\", {\r\n set: function (apiVersion) {\r\n this.event[EVENT_KEYS.API_VERSION] = apiVersion.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpResponseStatus\", {\r\n set: function (statusCode) {\r\n this.event[EVENT_KEYS.RESPONSE_CODE] = statusCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"oAuthErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.O_AUTH_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpMethod\", {\r\n set: function (httpMethod) {\r\n this.event[EVENT_KEYS.HTTP_METHOD] = httpMethod;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"requestIdHeader\", {\r\n set: function (requestIdHeader) {\r\n this.event[EVENT_KEYS.REQUEST_ID_HEADER] = requestIdHeader;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"speInfo\", {\r\n /**\r\n * Indicates whether the request was executed on a ring serving SPE traffic.\r\n * An empty string indicates this occurred on an outer ring, and the string \"I\"\r\n * indicates the request occurred on the inner ring\r\n */\r\n set: function (speInfo) {\r\n this.event[EVENT_KEYS.SPE_INFO] = speInfo;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"serverErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.SERVER_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"serverSubErrorCode\", {\r\n set: function (subErrorCode) {\r\n this.event[EVENT_KEYS.SERVER_SUB_ERROR_CODE] = subErrorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return HttpEvent;\r\n}(TelemetryEvent));\r\nexport default HttpEvent;\r\n//# sourceMappingURL=HttpEvent.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport DefaultEvent from \"./DefaultEvent\";\r\nimport { Constants } from \"../utils/Constants\";\r\nimport ApiEvent from \"./ApiEvent\";\r\nimport HttpEvent from \"./HttpEvent\";\r\nimport { version as libraryVersion } from \"../packageMetadata\";\r\nvar TelemetryManager = /** @class */ (function () {\r\n function TelemetryManager(config, telemetryEmitter, logger) {\r\n // correlation Id to list of events\r\n this.completedEvents = {};\r\n // event key to event\r\n this.inProgressEvents = {};\r\n // correlation id to map of eventname to count\r\n this.eventCountByCorrelationId = {};\r\n // Implement after API EVENT\r\n this.onlySendFailureTelemetry = false;\r\n // TODO THROW if bad options\r\n this.telemetryPlatform = tslib_1.__assign({ sdk: Constants.libraryName, sdkVersion: libraryVersion, networkInformation: {\r\n // @ts-ignore\r\n connectionSpeed: typeof navigator !== \"undefined\" && navigator.connection && navigator.connection.effectiveType\r\n } }, config.platform);\r\n this.clientId = config.clientId;\r\n this.onlySendFailureTelemetry = config.onlySendFailureTelemetry;\r\n /*\r\n * TODO, when i get to wiring this through, think about what it means if\r\n * a developer does not implement telem at all, we still instrument, but telemetryEmitter can be\r\n * optional?\r\n */\r\n this.telemetryEmitter = telemetryEmitter;\r\n this.logger = logger;\r\n }\r\n TelemetryManager.getTelemetrymanagerStub = function (clientId, logger) {\r\n var applicationName = \"UnSetStub\";\r\n var applicationVersion = \"0.0\";\r\n var telemetryEmitter = function () { };\r\n var telemetryPlatform = {\r\n applicationName: applicationName,\r\n applicationVersion: applicationVersion\r\n };\r\n var telemetryManagerConfig = {\r\n platform: telemetryPlatform,\r\n clientId: clientId\r\n };\r\n return new this(telemetryManagerConfig, telemetryEmitter, logger);\r\n };\r\n TelemetryManager.prototype.startEvent = function (event) {\r\n this.logger.verbose(\"Telemetry Event started: \" + event.key);\r\n if (!this.telemetryEmitter) {\r\n return;\r\n }\r\n event.start();\r\n this.inProgressEvents[event.key] = event;\r\n };\r\n TelemetryManager.prototype.stopEvent = function (event) {\r\n this.logger.verbose(\"Telemetry Event stopped: \" + event.key);\r\n if (!this.telemetryEmitter || !this.inProgressEvents[event.key]) {\r\n return;\r\n }\r\n event.stop();\r\n this.incrementEventCount(event);\r\n var completedEvents = this.completedEvents[event.telemetryCorrelationId];\r\n this.completedEvents[event.telemetryCorrelationId] = (completedEvents || []).concat([event]);\r\n delete this.inProgressEvents[event.key];\r\n };\r\n TelemetryManager.prototype.flush = function (correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"Flushing telemetry events: \" + correlationId);\r\n // If there is only unfinished events should this still return them?\r\n if (!this.telemetryEmitter || !this.completedEvents[correlationId]) {\r\n return;\r\n }\r\n var orphanedEvents = this.getOrphanedEvents(correlationId);\r\n orphanedEvents.forEach(function (event) { return _this.incrementEventCount(event); });\r\n var eventsToFlush = this.completedEvents[correlationId].concat(orphanedEvents);\r\n delete this.completedEvents[correlationId];\r\n var eventCountsToFlush = this.eventCountByCorrelationId[correlationId];\r\n delete this.eventCountByCorrelationId[correlationId];\r\n // TODO add funcitonality for onlyFlushFailures after implementing api event? ??\r\n if (!eventsToFlush || !eventsToFlush.length) {\r\n return;\r\n }\r\n var defaultEvent = new DefaultEvent(this.telemetryPlatform, correlationId, this.clientId, eventCountsToFlush);\r\n var eventsWithDefaultEvent = eventsToFlush.concat([defaultEvent]);\r\n this.telemetryEmitter(eventsWithDefaultEvent.map(function (e) { return e.get(); }));\r\n };\r\n TelemetryManager.prototype.createAndStartApiEvent = function (correlationId, apiEventIdentifier) {\r\n var apiEvent = new ApiEvent(correlationId, this.logger.isPiiLoggingEnabled(), apiEventIdentifier);\r\n this.startEvent(apiEvent);\r\n return apiEvent;\r\n };\r\n TelemetryManager.prototype.stopAndFlushApiEvent = function (correlationId, apiEvent, wasSuccessful, errorCode) {\r\n apiEvent.wasSuccessful = wasSuccessful;\r\n if (errorCode) {\r\n apiEvent.apiErrorCode = errorCode;\r\n }\r\n this.stopEvent(apiEvent);\r\n this.flush(correlationId);\r\n };\r\n TelemetryManager.prototype.createAndStartHttpEvent = function (correlation, httpMethod, url, eventLabel) {\r\n var httpEvent = new HttpEvent(correlation, eventLabel);\r\n httpEvent.url = url;\r\n httpEvent.httpMethod = httpMethod;\r\n this.startEvent(httpEvent);\r\n return httpEvent;\r\n };\r\n TelemetryManager.prototype.incrementEventCount = function (event) {\r\n var _a;\r\n /*\r\n * TODO, name cache event different?\r\n * if type is cache event, change name\r\n */\r\n var eventName = event.eventName;\r\n var eventCount = this.eventCountByCorrelationId[event.telemetryCorrelationId];\r\n if (!eventCount) {\r\n this.eventCountByCorrelationId[event.telemetryCorrelationId] = (_a = {},\r\n _a[eventName] = 1,\r\n _a);\r\n }\r\n else {\r\n eventCount[eventName] = eventCount[eventName] ? eventCount[eventName] + 1 : 1;\r\n }\r\n };\r\n TelemetryManager.prototype.getOrphanedEvents = function (correlationId) {\r\n var _this = this;\r\n return Object.keys(this.inProgressEvents)\r\n .reduce(function (memo, eventKey) {\r\n if (eventKey.indexOf(correlationId) !== -1) {\r\n var event_1 = _this.inProgressEvents[eventKey];\r\n delete _this.inProgressEvents[eventKey];\r\n return memo.concat([event_1]);\r\n }\r\n return memo;\r\n }, []);\r\n };\r\n return TelemetryManager;\r\n}());\r\nexport default TelemetryManager;\r\n//# sourceMappingURL=TelemetryManager.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ScopeSet } from \"../ScopeSet\";\r\nimport { UrlUtils } from \"./UrlUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar AuthCacheUtils = /** @class */ (function () {\r\n function AuthCacheUtils() {\r\n }\r\n AuthCacheUtils.filterTokenCacheItemsByScope = function (tokenCacheItems, requestScopes) {\r\n return tokenCacheItems.filter(function (cacheItem) {\r\n var cachedScopes = cacheItem.key.scopes.split(\" \");\r\n var searchScopes = ScopeSet.removeDefaultScopes(requestScopes);\r\n // If requestScopes contain only default scopes search for default scopes otherwise search for everything but default scopes\r\n return searchScopes.length === 0 ? ScopeSet.containsScope(cachedScopes, requestScopes) : ScopeSet.containsScope(cachedScopes, searchScopes);\r\n });\r\n };\r\n AuthCacheUtils.filterTokenCacheItemsByAuthority = function (tokenCacheItems, authority) {\r\n return tokenCacheItems.filter(function (cacheItem) { return UrlUtils.CanonicalizeUri(cacheItem.key.authority) === authority; });\r\n };\r\n AuthCacheUtils.filterTokenCacheItemsByDomain = function (tokenCacheItems, requestDomain) {\r\n return tokenCacheItems.filter(function (cacheItem) {\r\n var cacheItemDomain = UrlUtils.GetUrlComponents(cacheItem.key.authority).HostNameAndPort;\r\n return cacheItemDomain === requestDomain;\r\n });\r\n };\r\n return AuthCacheUtils;\r\n}());\r\nexport { AuthCacheUtils };\r\n//# sourceMappingURL=AuthCacheUtils.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AccessTokenKey } from \"./cache/AccessTokenKey\";\r\nimport { AccessTokenValue } from \"./cache/AccessTokenValue\";\r\nimport { ServerRequestParameters } from \"./ServerRequestParameters\";\r\nimport { AuthorityType } from \"./authority/Authority\";\r\nimport { ClientInfo } from \"./ClientInfo\";\r\nimport { IdToken } from \"./IdToken\";\r\nimport { AuthCache } from \"./cache/AuthCache\";\r\nimport { Account } from \"./Account\";\r\nimport { ScopeSet } from \"./ScopeSet\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { WindowUtils } from \"./utils/WindowUtils\";\r\nimport { TokenUtils } from \"./utils/TokenUtils\";\r\nimport { TimeUtils } from \"./utils/TimeUtils\";\r\nimport { UrlUtils } from \"./utils/UrlUtils\";\r\nimport { RequestUtils } from \"./utils/RequestUtils\";\r\nimport { ResponseUtils } from \"./utils/ResponseUtils\";\r\nimport { AuthorityFactory } from \"./authority/AuthorityFactory\";\r\nimport { buildConfiguration } from \"./Configuration\";\r\nimport { ClientConfigurationError } from \"./error/ClientConfigurationError\";\r\nimport { AuthError } from \"./error/AuthError\";\r\nimport { ClientAuthError, ClientAuthErrorMessage } from \"./error/ClientAuthError\";\r\nimport { ServerError } from \"./error/ServerError\";\r\nimport { InteractionRequiredAuthError } from \"./error/InteractionRequiredAuthError\";\r\nimport { buildResponseStateOnly } from \"./AuthResponse\";\r\nimport TelemetryManager from \"./telemetry/TelemetryManager\";\r\nimport { API_EVENT_IDENTIFIER } from \"./telemetry/ApiEvent\";\r\nimport { Constants, ServerHashParamKeys, ResponseTypes, TemporaryCacheKeys, PersistentCacheKeys, ErrorCacheKeys, FramePrefix } from \"./utils/Constants\";\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { TrustedAuthority } from \"./authority/TrustedAuthority\";\r\nimport { AuthCacheUtils } from \"./utils/AuthCacheUtils\";\r\n// default authority\r\nvar DEFAULT_AUTHORITY = \"https://login.microsoftonline.com/common\";\r\n/**\r\n * UserAgentApplication class\r\n *\r\n * Object Instance that the developer can use to make loginXX OR acquireTokenXX functions\r\n */\r\nvar UserAgentApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the UserAgentApplication used to instantiate the UserAgentApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application.\r\n * You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/<Enter_the_Tenant_Info_Here>.\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n *\r\n * In Azure B2C, authority is of the form https://<instance>/tfp/<tenant>/<policyName>/\r\n *\r\n * @param {@link (Configuration:type)} configuration object for the MSAL UserAgentApplication instance\r\n */\r\n function UserAgentApplication(configuration) {\r\n // callbacks for token/error\r\n this.authResponseCallback = null;\r\n this.tokenReceivedCallback = null;\r\n this.errorReceivedCallback = null;\r\n // Set the Configuration\r\n this.config = buildConfiguration(configuration);\r\n this.logger = this.config.system.logger;\r\n this.clientId = this.config.auth.clientId;\r\n this.inCookie = this.config.cache.storeAuthStateInCookie;\r\n this.telemetryManager = this.getTelemetryManagerFromConfig(this.config.system.telemetry, this.clientId);\r\n TrustedAuthority.setTrustedAuthoritiesFromConfig(this.config.auth.validateAuthority, this.config.auth.knownAuthorities);\r\n AuthorityFactory.saveMetadataFromConfig(this.config.auth.authority, this.config.auth.authorityMetadata);\r\n // if no authority is passed, set the default: \"https://login.microsoftonline.com/common\"\r\n this.authority = this.config.auth.authority || DEFAULT_AUTHORITY;\r\n // cache keys msal - typescript throws an error if any value other than \"localStorage\" or \"sessionStorage\" is passed\r\n this.cacheStorage = new AuthCache(this.clientId, this.config.cache.cacheLocation, this.inCookie);\r\n // Initialize window handling code\r\n window.activeRenewals = {};\r\n window.renewStates = [];\r\n window.callbackMappedToRenewStates = {};\r\n window.promiseMappedToRenewStates = {};\r\n window.msal = this;\r\n var urlHash = window.location.hash;\r\n var urlContainsHash = UrlUtils.urlContainsHash(urlHash);\r\n // check if back button is pressed\r\n WindowUtils.checkIfBackButtonIsPressed(this.cacheStorage);\r\n // On the server 302 - Redirect, handle this\r\n if (urlContainsHash) {\r\n var stateInfo = this.getResponseState(urlHash);\r\n if (stateInfo.method === Constants.interactionTypeRedirect) {\r\n this.handleRedirectAuthenticationResponse(urlHash);\r\n }\r\n }\r\n }\r\n Object.defineProperty(UserAgentApplication.prototype, \"authority\", {\r\n /**\r\n * Method to manage the authority URL.\r\n *\r\n * @returns {string} authority\r\n */\r\n get: function () {\r\n return this.authorityInstance.CanonicalAuthority;\r\n },\r\n /**\r\n * setter for the authority URL\r\n * @param {string} authority\r\n */\r\n // If the developer passes an authority, create an instance\r\n set: function (val) {\r\n this.authorityInstance = AuthorityFactory.CreateInstance(val, this.config.auth.validateAuthority);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Get the current authority instance from the MSAL configuration object\r\n *\r\n * @returns {@link Authority} authority instance\r\n */\r\n UserAgentApplication.prototype.getAuthorityInstance = function () {\r\n return this.authorityInstance;\r\n };\r\n UserAgentApplication.prototype.handleRedirectCallback = function (authOrTokenCallback, errorReceivedCallback) {\r\n if (!authOrTokenCallback) {\r\n throw ClientConfigurationError.createInvalidCallbackObjectError(authOrTokenCallback);\r\n }\r\n // Set callbacks\r\n if (errorReceivedCallback) {\r\n this.tokenReceivedCallback = authOrTokenCallback;\r\n this.errorReceivedCallback = errorReceivedCallback;\r\n this.logger.warning(\"This overload for callback is deprecated - please change the format of the callbacks to a single callback as shown: (err: AuthError, response: AuthResponse).\");\r\n }\r\n else {\r\n this.authResponseCallback = authOrTokenCallback;\r\n }\r\n if (this.redirectError) {\r\n this.authErrorHandler(Constants.interactionTypeRedirect, this.redirectError, this.redirectResponse);\r\n }\r\n else if (this.redirectResponse) {\r\n this.authResponseHandler(Constants.interactionTypeRedirect, this.redirectResponse);\r\n }\r\n };\r\n /**\r\n * Public API to verify if the URL contains the hash with known properties\r\n * @param hash\r\n */\r\n UserAgentApplication.prototype.urlContainsHash = function (hash) {\r\n this.logger.verbose(\"UrlContainsHash has been called\");\r\n return UrlUtils.urlContainsHash(hash);\r\n };\r\n UserAgentApplication.prototype.authResponseHandler = function (interactionType, response, resolve) {\r\n this.logger.verbose(\"AuthResponseHandler has been called\");\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.logger.verbose(\"Interaction type is redirect\");\r\n if (this.errorReceivedCallback) {\r\n this.logger.verbose(\"Two callbacks were provided to handleRedirectCallback, calling success callback with response\");\r\n this.tokenReceivedCallback(response);\r\n }\r\n else if (this.authResponseCallback) {\r\n this.logger.verbose(\"One callback was provided to handleRedirectCallback, calling authResponseCallback with response\");\r\n this.authResponseCallback(null, response);\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n this.logger.verbose(\"Interaction type is popup, resolving\");\r\n resolve(response);\r\n }\r\n else {\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n };\r\n UserAgentApplication.prototype.authErrorHandler = function (interactionType, authErr, response, reject) {\r\n this.logger.verbose(\"AuthErrorHandler has been called\");\r\n // set interaction_status to complete\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.logger.verbose(\"Interaction type is redirect\");\r\n if (this.errorReceivedCallback) {\r\n this.logger.verbose(\"Two callbacks were provided to handleRedirectCallback, calling error callback\");\r\n this.errorReceivedCallback(authErr, response.accountState);\r\n }\r\n else if (this.authResponseCallback) {\r\n this.logger.verbose(\"One callback was provided to handleRedirectCallback, calling authResponseCallback with error\");\r\n this.authResponseCallback(authErr, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectCallback has not been called and no callbacks are registered, throwing error\");\r\n throw authErr;\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n this.logger.verbose(\"Interaction type is popup, rejecting\");\r\n reject(authErr);\r\n }\r\n else {\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n };\r\n // #endregion\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint.\r\n * @param {@link (AuthenticationParameters:type)}\r\n */\r\n UserAgentApplication.prototype.loginRedirect = function (userRequest) {\r\n this.logger.verbose(\"LoginRedirect has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, true, this.clientId, Constants.interactionTypeRedirect);\r\n this.acquireTokenInteractive(Constants.interactionTypeRedirect, true, request, null, null);\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint.\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n */\r\n UserAgentApplication.prototype.acquireTokenRedirect = function (userRequest) {\r\n this.logger.verbose(\"AcquireTokenRedirect has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypeRedirect);\r\n this.acquireTokenInteractive(Constants.interactionTypeRedirect, false, request, null, null);\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n UserAgentApplication.prototype.loginPopup = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"LoginPopup has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, true, this.clientId, Constants.interactionTypePopup);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.LoginPopup);\r\n return new Promise(function (resolve, reject) {\r\n _this.acquireTokenInteractive(Constants.interactionTypePopup, true, request, resolve, reject);\r\n })\r\n .then(function (resp) {\r\n _this.logger.verbose(\"Successfully logged in\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return resp;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n * @param {@link AuthenticationParameters}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n UserAgentApplication.prototype.acquireTokenPopup = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenPopup has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypePopup);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.AcquireTokenPopup);\r\n return new Promise(function (resolve, reject) {\r\n _this.acquireTokenInteractive(Constants.interactionTypePopup, false, request, resolve, reject);\r\n })\r\n .then(function (resp) {\r\n _this.logger.verbose(\"Successfully acquired token\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return resp;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n // #region Acquire Token\r\n /**\r\n * Use when initiating the login process or when you want to obtain an access_token for your API,\r\n * either by redirecting the user's browser window to the authorization endpoint or via opening a popup window in the user's browser.\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n */\r\n UserAgentApplication.prototype.acquireTokenInteractive = function (interactionType, isLoginCall, request, resolve, reject) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenInteractive has been called\");\r\n // block the request if made from the hidden iframe\r\n WindowUtils.blockReloadInHiddenIframes();\r\n var interactionProgress = this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.cacheStorage.setItem(TemporaryCacheKeys.REDIRECT_REQUEST, \"\" + Constants.inProgress + Constants.resourceDelimiter + request.state);\r\n }\r\n // If already in progress, do not proceed\r\n if (interactionProgress === Constants.inProgress) {\r\n var thrownError = isLoginCall ? ClientAuthError.createLoginInProgressError() : ClientAuthError.createAcquireTokenInProgressError();\r\n var stateOnlyResponse = buildResponseStateOnly(this.getAccountState(request.state));\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, thrownError, stateOnlyResponse, reject);\r\n return;\r\n }\r\n // Get the account object if a session exists\r\n var account;\r\n if (request && request.account && !isLoginCall) {\r\n account = request.account;\r\n this.logger.verbose(\"Account set from request\");\r\n }\r\n else {\r\n account = this.getAccount();\r\n this.logger.verbose(\"Account set from MSAL Cache\");\r\n }\r\n // If no session exists, prompt the user to login.\r\n if (!account && !ServerRequestParameters.isSSOParam(request)) {\r\n if (isLoginCall) {\r\n // extract ADAL id_token if exists\r\n var adalIdToken = this.extractADALIdToken();\r\n // silent login if ADAL id_token is retrieved successfully - SSO\r\n if (adalIdToken && !request.scopes) {\r\n this.logger.info(\"ADAL's idToken exists. Extracting login information from ADAL's idToken\");\r\n var tokenRequest = this.buildIDTokenRequest(request);\r\n this.silentLogin = true;\r\n this.acquireTokenSilent(tokenRequest).then(function (response) {\r\n _this.silentLogin = false;\r\n _this.logger.info(\"Unified cache call is successful\");\r\n _this.authResponseHandler(interactionType, response, resolve);\r\n return;\r\n }, function (error) {\r\n _this.silentLogin = false;\r\n _this.logger.error(\"Error occurred during unified cache ATS: \" + error);\r\n // proceed to login since ATS failed\r\n _this.acquireTokenHelper(null, interactionType, isLoginCall, request, resolve, reject);\r\n });\r\n }\r\n // No ADAL token found, proceed to login\r\n else {\r\n this.logger.verbose(\"Login call but no token found, proceed to login\");\r\n this.acquireTokenHelper(null, interactionType, isLoginCall, request, resolve, reject);\r\n }\r\n }\r\n // AcquireToken call, but no account or context given, so throw error\r\n else {\r\n this.logger.verbose(\"AcquireToken call, no context or account given\");\r\n this.logger.info(\"User login is required\");\r\n var stateOnlyResponse = buildResponseStateOnly(this.getAccountState(request.state));\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, ClientAuthError.createUserLoginRequiredError(), stateOnlyResponse, reject);\r\n return;\r\n }\r\n }\r\n // User session exists\r\n else {\r\n this.logger.verbose(\"User session exists, login not required\");\r\n this.acquireTokenHelper(account, interactionType, isLoginCall, request, resolve, reject);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n * Helper function to acquireToken\r\n *\r\n */\r\n UserAgentApplication.prototype.acquireTokenHelper = function (account, interactionType, isLoginCall, request, resolve, reject) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var requestSignature, serverAuthenticationRequest, acquireTokenAuthority, popUpWindow, responseType, loginStartPage, urlNavigate, hash, error_1, navigate, err_1;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"AcquireTokenHelper has been called\");\r\n this.logger.verbose(\"Interaction type: \" + interactionType + \". isLoginCall: \" + isLoginCall);\r\n // Track the acquireToken progress\r\n this.cacheStorage.setItem(TemporaryCacheKeys.INTERACTION_STATUS, Constants.inProgress);\r\n requestSignature = request.scopes ? request.scopes.join(\" \").toLowerCase() : Constants.oidcScopes.join(\" \");\r\n this.logger.verbosePii(\"Request signature: \" + requestSignature);\r\n acquireTokenAuthority = (request && request.authority) ? AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata) : this.authorityInstance;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 11, , 12]);\r\n if (!!acquireTokenAuthority.hasCachedMetadata()) return [3 /*break*/, 3];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(acquireTokenAuthority, this.telemetryManager, request.correlationId)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 4;\r\n case 4:\r\n responseType = isLoginCall ? ResponseTypes.id_token : this.getTokenType(account, request.scopes);\r\n loginStartPage = request.redirectStartPage || window.location.href;\r\n serverAuthenticationRequest = new ServerRequestParameters(acquireTokenAuthority, this.clientId, responseType, this.getRedirectUri(request && request.redirectUri), request.scopes, request.state, request.correlationId);\r\n this.logger.verbose(\"Finished building server authentication request\");\r\n this.updateCacheEntries(serverAuthenticationRequest, account, isLoginCall, loginStartPage);\r\n this.logger.verbose(\"Updating cache entries\");\r\n // populate QueryParameters (sid/login_hint) and any other extraQueryParameters set by the developer\r\n serverAuthenticationRequest.populateQueryParams(account, request);\r\n this.logger.verbose(\"Query parameters populated from account\");\r\n urlNavigate = UrlUtils.createNavigateUrl(serverAuthenticationRequest) + Constants.response_mode_fragment;\r\n // set state in cache\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n if (!isLoginCall) {\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, request.state), serverAuthenticationRequest.state, this.inCookie);\r\n this.logger.verbose(\"State cached for redirect\");\r\n this.logger.verbosePii(\"State cached: \" + serverAuthenticationRequest.state);\r\n }\r\n else {\r\n this.logger.verbose(\"Interaction type redirect but login call is true. State not cached\");\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n window.requestType = isLoginCall ? Constants.login : Constants.renewToken;\r\n this.logger.verbose(\"State saved to window\");\r\n this.logger.verbosePii(\"State saved: \" + serverAuthenticationRequest.state);\r\n // Register callback to capture results from server\r\n this.registerCallback(serverAuthenticationRequest.state, requestSignature, resolve, reject);\r\n }\r\n else {\r\n this.logger.verbose(\"Invalid interaction error. State not cached\");\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n if (!(interactionType === Constants.interactionTypePopup)) return [3 /*break*/, 9];\r\n this.logger.verbose(\"Interaction type is popup. Generating popup window\");\r\n // Generate a popup window\r\n try {\r\n popUpWindow = this.openPopup(urlNavigate, \"msal\", Constants.popUpWidth, Constants.popUpHeight);\r\n // Push popup window handle onto stack for tracking\r\n WindowUtils.trackPopup(popUpWindow);\r\n }\r\n catch (e) {\r\n this.logger.info(ClientAuthErrorMessage.popUpWindowError.code + \":\" + ClientAuthErrorMessage.popUpWindowError.desc);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, ClientAuthErrorMessage.popUpWindowError.code);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, ClientAuthErrorMessage.popUpWindowError.desc);\r\n if (reject) {\r\n reject(ClientAuthError.createPopupWindowError());\r\n return [2 /*return*/];\r\n }\r\n }\r\n if (!popUpWindow) return [3 /*break*/, 8];\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, WindowUtils.monitorPopupForHash(popUpWindow, this.config.system.loadFrameTimeout, urlNavigate, this.logger)];\r\n case 6:\r\n hash = _a.sent();\r\n this.handleAuthenticationResponse(hash);\r\n // Request completed successfully, set to completed\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n this.logger.info(\"Closing popup window\");\r\n // TODO: Check how this can be extracted for any framework specific code?\r\n if (this.config.framework.isAngular) {\r\n this.broadcast(\"msal:popUpHashChanged\", hash);\r\n }\r\n WindowUtils.closePopups();\r\n return [3 /*break*/, 8];\r\n case 7:\r\n error_1 = _a.sent();\r\n if (reject) {\r\n reject(error_1);\r\n }\r\n if (this.config.framework.isAngular) {\r\n this.broadcast(\"msal:popUpClosed\", error_1.errorCode + Constants.resourceDelimiter + error_1.errorMessage);\r\n }\r\n else {\r\n // Request failed, set to canceled\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n popUpWindow.close();\r\n }\r\n return [3 /*break*/, 8];\r\n case 8: return [3 /*break*/, 10];\r\n case 9:\r\n // If onRedirectNavigate is implemented, invoke it and provide urlNavigate\r\n if (request.onRedirectNavigate) {\r\n this.logger.verbose(\"Invoking onRedirectNavigate callback\");\r\n navigate = request.onRedirectNavigate(urlNavigate);\r\n // Returning false from onRedirectNavigate will stop navigation\r\n if (navigate !== false) {\r\n this.logger.verbose(\"onRedirectNavigate did not return false, navigating\");\r\n this.navigateWindow(urlNavigate);\r\n }\r\n else {\r\n this.logger.verbose(\"onRedirectNavigate returned false, stopping navigation\");\r\n }\r\n }\r\n else {\r\n // Otherwise, perform navigation\r\n this.logger.verbose(\"Navigating window to urlNavigate\");\r\n this.navigateWindow(urlNavigate);\r\n }\r\n _a.label = 10;\r\n case 10: return [3 /*break*/, 12];\r\n case 11:\r\n err_1 = _a.sent();\r\n this.logger.error(err_1);\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, ClientAuthError.createEndpointResolutionError(err_1.toString), buildResponseStateOnly(request.state), reject);\r\n if (popUpWindow) {\r\n popUpWindow.close();\r\n }\r\n return [3 /*break*/, 12];\r\n case 12: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API interfacing idToken request when applications already have a session/hint acquired by authorization client applications\r\n * @param request\r\n */\r\n UserAgentApplication.prototype.ssoSilent = function (request) {\r\n this.logger.verbose(\"ssoSilent has been called\");\r\n // throw an error on an empty request\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyRequestError();\r\n }\r\n // throw an error on no hints passed\r\n if (!request.sid && !request.loginHint) {\r\n throw ClientConfigurationError.createSsoSilentError();\r\n }\r\n return this.acquireTokenSilent(tslib_1.__assign({}, request, { scopes: Constants.oidcScopes }));\r\n };\r\n /**\r\n * Use this function to obtain a token before every call to the API / resource provider\r\n *\r\n * MSAL return's a cached token when available\r\n * Or it send's a request to the STS to obtain a new token using a hidden iframe.\r\n *\r\n * @param {@link AuthenticationParameters}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n *\r\n */\r\n UserAgentApplication.prototype.acquireTokenSilent = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenSilent has been called\");\r\n // validate the request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypeSilent);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.AcquireTokenSilent);\r\n var requestSignature = RequestUtils.createRequestSignature(request);\r\n return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n var scope, account, adalIdToken, responseType, serverAuthenticationRequest, adalIdTokenObject, userContainedClaims, authErr, cacheResultResponse, logMessage, err_2;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // block the request if made from the hidden iframe\r\n WindowUtils.blockReloadInHiddenIframes();\r\n scope = request.scopes.join(\" \").toLowerCase();\r\n this.logger.verbosePii(\"Serialized scopes: \" + scope);\r\n if (request.account) {\r\n account = request.account;\r\n this.logger.verbose(\"Account set from request\");\r\n }\r\n else {\r\n account = this.getAccount();\r\n this.logger.verbose(\"Account set from MSAL Cache\");\r\n }\r\n adalIdToken = this.cacheStorage.getItem(Constants.adalIdToken);\r\n // In the event of no account being passed in the config, no session id, and no pre-existing adalIdToken, user will need to log in\r\n if (!account && !(request.sid || request.loginHint) && StringUtils.isEmpty(adalIdToken)) {\r\n this.logger.info(\"User login is required\");\r\n // The promise rejects with a UserLoginRequiredError, which should be caught and user should be prompted to log in interactively\r\n return [2 /*return*/, reject(ClientAuthError.createUserLoginRequiredError())];\r\n }\r\n responseType = this.getTokenType(account, request.scopes);\r\n this.logger.verbose(\"Response type: \" + responseType);\r\n serverAuthenticationRequest = new ServerRequestParameters(AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata), this.clientId, responseType, this.getRedirectUri(request.redirectUri), request.scopes, request.state, request.correlationId);\r\n this.logger.verbose(\"Finished building server authentication request\");\r\n // populate QueryParameters (sid/login_hint) and any other extraQueryParameters set by the developer\r\n if (ServerRequestParameters.isSSOParam(request) || account) {\r\n serverAuthenticationRequest.populateQueryParams(account, request, null, true);\r\n this.logger.verbose(\"Query parameters populated from existing SSO or account\");\r\n }\r\n // if user didn't pass login_hint/sid and adal's idtoken is present, extract the login_hint from the adalIdToken\r\n else if (!account && !StringUtils.isEmpty(adalIdToken)) {\r\n adalIdTokenObject = TokenUtils.extractIdToken(adalIdToken);\r\n this.logger.verbose(\"ADAL's idToken exists. Extracting login information from ADAL's idToken to populate query parameters\");\r\n serverAuthenticationRequest.populateQueryParams(account, null, adalIdTokenObject, true);\r\n }\r\n else {\r\n this.logger.verbose(\"No additional query parameters added\");\r\n }\r\n userContainedClaims = request.claimsRequest || serverAuthenticationRequest.claimsValue;\r\n // If request.forceRefresh is set to true, force a request for a new token instead of getting it from the cache\r\n if (!userContainedClaims && !request.forceRefresh) {\r\n try {\r\n cacheResultResponse = this.getCachedToken(serverAuthenticationRequest, account);\r\n }\r\n catch (e) {\r\n authErr = e;\r\n }\r\n }\r\n if (!cacheResultResponse) return [3 /*break*/, 1];\r\n this.logger.verbose(\"Token found in cache lookup\");\r\n this.logger.verbosePii(\"Scopes found: \" + JSON.stringify(cacheResultResponse.scopes));\r\n resolve(cacheResultResponse);\r\n return [2 /*return*/, null];\r\n case 1:\r\n if (!authErr) return [3 /*break*/, 2];\r\n this.logger.infoPii(authErr.errorCode + \":\" + authErr.errorMessage);\r\n reject(authErr);\r\n return [2 /*return*/, null];\r\n case 2:\r\n logMessage = void 0;\r\n if (userContainedClaims) {\r\n logMessage = \"Skipped cache lookup since claims were given\";\r\n }\r\n else if (request.forceRefresh) {\r\n logMessage = \"Skipped cache lookup since request.forceRefresh option was set to true\";\r\n }\r\n else {\r\n logMessage = \"No valid token found in cache lookup\";\r\n }\r\n this.logger.verbose(logMessage);\r\n // Cache result can return null if cache is empty. In that case, set authority to default value if no authority is passed to the API.\r\n if (!serverAuthenticationRequest.authorityInstance) {\r\n serverAuthenticationRequest.authorityInstance = request.authority ?\r\n AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata)\r\n : this.authorityInstance;\r\n }\r\n this.logger.verbosePii(\"Authority instance: \" + serverAuthenticationRequest.authority);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 7, , 8]);\r\n if (!!serverAuthenticationRequest.authorityInstance.hasCachedMetadata()) return [3 /*break*/, 5];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(serverAuthenticationRequest.authorityInstance, this.telemetryManager, request.correlationId)];\r\n case 4:\r\n _a.sent();\r\n this.logger.verbose(\"Authority has been updated with endpoint discovery response\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 6;\r\n case 6:\r\n /*\r\n * refresh attempt with iframe\r\n * Already renewing for this scope, callback when we get the token.\r\n */\r\n if (window.activeRenewals[requestSignature]) {\r\n this.logger.verbose(\"Renewing token in progress. Registering callback\");\r\n // Active renewals contains the state for each renewal.\r\n this.registerCallback(window.activeRenewals[requestSignature], requestSignature, resolve, reject);\r\n }\r\n else {\r\n if (request.scopes && ScopeSet.onlyContainsOidcScopes(request.scopes)) {\r\n /*\r\n * App uses idToken to send to api endpoints\r\n * Default scope is tracked as OIDC scopes to store this token\r\n */\r\n this.logger.verbose(\"OpenID Connect scopes only, renewing idToken\");\r\n this.silentLogin = true;\r\n this.renewIdToken(requestSignature, resolve, reject, account, serverAuthenticationRequest);\r\n }\r\n else {\r\n // renew access token\r\n this.logger.verbose(\"Renewing access token\");\r\n this.renewToken(requestSignature, resolve, reject, account, serverAuthenticationRequest);\r\n }\r\n }\r\n return [3 /*break*/, 8];\r\n case 7:\r\n err_2 = _a.sent();\r\n this.logger.error(err_2);\r\n reject(ClientAuthError.createEndpointResolutionError(err_2.toString()));\r\n return [2 /*return*/, null];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); })\r\n .then(function (res) {\r\n _this.logger.verbose(\"Successfully acquired token\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return res;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Window Creation\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @ignore\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.openPopup = function (urlNavigate, title, popUpWidth, popUpHeight) {\r\n this.logger.verbose(\"OpenPopup has been called\");\r\n try {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var left = ((width / 2) - (popUpWidth / 2)) + winLeft;\r\n var top_1 = ((height / 2) - (popUpHeight / 2)) + winTop;\r\n // open the window\r\n var popupWindow = window.open(urlNavigate, title, \"width=\" + popUpWidth + \", height=\" + popUpHeight + \", top=\" + top_1 + \", left=\" + left + \", scrollbars=yes\");\r\n if (!popupWindow) {\r\n throw ClientAuthError.createPopupWindowError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n throw ClientAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n // #endregion\r\n // #region Iframe Management\r\n /**\r\n * @hidden\r\n * Calling _loadFrame but with a timeout to signal failure in loadframeStatus. Callbacks are left.\r\n * registered when network errors occur and subsequent token requests for same resource are registered to the pending request.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.loadIframeTimeout = function (urlNavigate, frameName, requestSignature) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var expectedState, iframe, _a, hash, error_2;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n expectedState = window.activeRenewals[requestSignature];\r\n this.logger.verbosePii(\"Set loading state to pending for: \" + requestSignature + \":\" + expectedState);\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState), Constants.inProgress);\r\n if (!this.config.system.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, WindowUtils.loadFrame(urlNavigate, frameName, this.config.system.navigateFrameWait, this.logger)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = WindowUtils.loadFrameSync(urlNavigate, frameName, this.logger);\r\n _b.label = 3;\r\n case 3:\r\n iframe = _a;\r\n _b.label = 4;\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n return [4 /*yield*/, WindowUtils.monitorIframeForHash(iframe.contentWindow, this.config.system.loadFrameTimeout, urlNavigate, this.logger)];\r\n case 5:\r\n hash = _b.sent();\r\n if (hash) {\r\n this.handleAuthenticationResponse(hash);\r\n }\r\n return [3 /*break*/, 7];\r\n case 6:\r\n error_2 = _b.sent();\r\n if (this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState)) === Constants.inProgress) {\r\n // fail the iframe session if it's in pending state\r\n this.logger.verbose(\"Loading frame has timed out after: \" + (this.config.system.loadFrameTimeout / 1000) + \" seconds for scope/authority \" + requestSignature + \":\" + expectedState);\r\n // Error after timeout\r\n if (expectedState && window.callbackMappedToRenewStates[expectedState]) {\r\n window.callbackMappedToRenewStates[expectedState](null, error_2);\r\n }\r\n this.cacheStorage.removeItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState));\r\n }\r\n WindowUtils.removeHiddenIframe(iframe);\r\n throw error_2;\r\n case 7:\r\n WindowUtils.removeHiddenIframe(iframe);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region General Helpers\r\n /**\r\n * @hidden\r\n * Used to redirect the browser to the STS authorization endpoint\r\n * @param {string} urlNavigate - URL of the authorization endpoint\r\n */\r\n UserAgentApplication.prototype.navigateWindow = function (urlNavigate, popupWindow) {\r\n // Navigate if valid URL\r\n if (urlNavigate && !StringUtils.isEmpty(urlNavigate)) {\r\n var navigateWindow = popupWindow ? popupWindow : window;\r\n var logMessage = popupWindow ? \"Navigated Popup window to:\" + urlNavigate : \"Navigate to:\" + urlNavigate;\r\n this.logger.infoPii(logMessage);\r\n navigateWindow.location.assign(urlNavigate);\r\n }\r\n else {\r\n this.logger.info(\"Navigate url is empty\");\r\n throw AuthError.createUnexpectedError(\"Navigate url is empty\");\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Used to add the developer requested callback to the array of callbacks for the specified scopes. The updated array is stored on the window object\r\n * @param {string} expectedState - Unique state identifier (guid).\r\n * @param {string} scope - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {Function} resolve - The resolve function of the promise object.\r\n * @param {Function} reject - The reject function of the promise object.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.registerCallback = function (expectedState, requestSignature, resolve, reject) {\r\n var _this = this;\r\n // track active renewals\r\n window.activeRenewals[requestSignature] = expectedState;\r\n // initialize callbacks mapped array\r\n if (!window.promiseMappedToRenewStates[expectedState]) {\r\n window.promiseMappedToRenewStates[expectedState] = [];\r\n }\r\n // indexing on the current state, push the callback params to callbacks mapped\r\n window.promiseMappedToRenewStates[expectedState].push({ resolve: resolve, reject: reject });\r\n // Store the server response in the current window??\r\n if (!window.callbackMappedToRenewStates[expectedState]) {\r\n window.callbackMappedToRenewStates[expectedState] = function (response, error) {\r\n // reset active renewals\r\n window.activeRenewals[requestSignature] = null;\r\n // for all promiseMappedtoRenewStates for a given 'state' - call the reject/resolve with error/token respectively\r\n for (var i = 0; i < window.promiseMappedToRenewStates[expectedState].length; ++i) {\r\n try {\r\n if (error) {\r\n window.promiseMappedToRenewStates[expectedState][i].reject(error);\r\n }\r\n else if (response) {\r\n window.promiseMappedToRenewStates[expectedState][i].resolve(response);\r\n }\r\n else {\r\n _this.cacheStorage.resetTempCacheItems(expectedState);\r\n throw AuthError.createUnexpectedError(\"Error and response are both null\");\r\n }\r\n }\r\n catch (e) {\r\n _this.logger.warning(e);\r\n }\r\n }\r\n // reset\r\n window.promiseMappedToRenewStates[expectedState] = null;\r\n window.callbackMappedToRenewStates[expectedState] = null;\r\n };\r\n }\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n */\r\n UserAgentApplication.prototype.logout = function (correlationId) {\r\n this.logger.verbose(\"Logout has been called\");\r\n this.logoutAsync(correlationId);\r\n };\r\n /**\r\n * Async version of logout(). Use to log out the current user.\r\n * @param correlationId Request correlationId\r\n */\r\n UserAgentApplication.prototype.logoutAsync = function (correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var requestCorrelationId, apiEvent, correlationIdParam, postLogoutQueryParam, urlNavigate, error_3;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requestCorrelationId = correlationId || CryptoUtils.createNewGuid();\r\n apiEvent = this.telemetryManager.createAndStartApiEvent(requestCorrelationId, API_EVENT_IDENTIFIER.Logout);\r\n this.clearCache();\r\n this.account = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n if (!!this.authorityInstance.hasCachedMetadata()) return [3 /*break*/, 3];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(this.authorityInstance, this.telemetryManager, correlationId)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 4;\r\n case 4:\r\n correlationIdParam = \"client-request-id=\" + requestCorrelationId;\r\n postLogoutQueryParam = void 0;\r\n if (this.getPostLogoutRedirectUri()) {\r\n postLogoutQueryParam = \"&post_logout_redirect_uri=\" + encodeURIComponent(this.getPostLogoutRedirectUri());\r\n this.logger.verbose(\"redirectUri found and set\");\r\n }\r\n else {\r\n postLogoutQueryParam = \"\";\r\n this.logger.verbose(\"No redirectUri set for app. postLogoutQueryParam is empty\");\r\n }\r\n urlNavigate = void 0;\r\n if (this.authorityInstance.EndSessionEndpoint) {\r\n urlNavigate = this.authorityInstance.EndSessionEndpoint + \"?\" + correlationIdParam + postLogoutQueryParam;\r\n this.logger.verbose(\"EndSessionEndpoint found and urlNavigate set\");\r\n this.logger.verbosePii(\"urlNavigate set to: \" + this.authorityInstance.EndSessionEndpoint);\r\n }\r\n else {\r\n urlNavigate = this.authority + \"oauth2/v2.0/logout?\" + correlationIdParam + postLogoutQueryParam;\r\n this.logger.verbose(\"No endpoint, urlNavigate set to default\");\r\n }\r\n this.telemetryManager.stopAndFlushApiEvent(requestCorrelationId, apiEvent, true);\r\n this.logger.verbose(\"Navigating window to urlNavigate\");\r\n this.navigateWindow(urlNavigate);\r\n return [3 /*break*/, 6];\r\n case 5:\r\n error_3 = _a.sent();\r\n this.telemetryManager.stopAndFlushApiEvent(requestCorrelationId, apiEvent, false, error_3.errorCode);\r\n return [3 /*break*/, 6];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Clear all access tokens and ID tokens in the cache.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.clearCache = function () {\r\n this.logger.verbose(\"Clearing cache\");\r\n window.renewStates = [];\r\n var tokenCacheItems = this.cacheStorage.getAllTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < tokenCacheItems.length; i++) {\r\n this.cacheStorage.removeItem(JSON.stringify(tokenCacheItems[i].key));\r\n }\r\n this.cacheStorage.resetCacheItems();\r\n this.cacheStorage.clearMsalCookie();\r\n this.logger.verbose(\"Cache cleared\");\r\n };\r\n /**\r\n * @hidden\r\n * Clear a given access token from the cache.\r\n *\r\n * @param accessToken\r\n */\r\n UserAgentApplication.prototype.clearCacheForScope = function (accessToken) {\r\n this.logger.verbose(\"Clearing access token from cache\");\r\n var accessTokenItems = this.cacheStorage.getAllAccessTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < accessTokenItems.length; i++) {\r\n var token = accessTokenItems[i];\r\n if (token.value.accessToken === accessToken) {\r\n this.cacheStorage.removeItem(JSON.stringify(token.key));\r\n this.logger.verbosePii(\"Access token removed: \" + token.key);\r\n }\r\n }\r\n };\r\n // #endregion\r\n // #region Response\r\n /**\r\n * @hidden\r\n * @ignore\r\n * Checks if the redirect response is received from the STS. In case of redirect, the url fragment has either id_token, access_token or error.\r\n * @param {string} hash - Hash passed from redirect page.\r\n * @returns {Boolean} - true if response contains id_token, access_token or error, false otherwise.\r\n */\r\n UserAgentApplication.prototype.isCallback = function (hash) {\r\n this.logger.info(\"isCallback will be deprecated in favor of urlContainsHash in MSAL.js v2.0.\");\r\n this.logger.verbose(\"isCallback has been called\");\r\n return UrlUtils.urlContainsHash(hash);\r\n };\r\n /**\r\n * @hidden\r\n * Used to call the constructor callback with the token/error\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.processCallBack = function (hash, stateInfo, parentCallback) {\r\n this.logger.info(\"ProcessCallBack has been called. Processing callback from redirect response\");\r\n // get the state info from the hash\r\n if (!stateInfo) {\r\n this.logger.verbose(\"StateInfo is null, getting stateInfo from hash\");\r\n stateInfo = this.getResponseState(hash);\r\n }\r\n var response;\r\n var authErr;\r\n // Save the token info from the hash\r\n try {\r\n response = this.saveTokenFromHash(hash, stateInfo);\r\n }\r\n catch (err) {\r\n authErr = err;\r\n }\r\n try {\r\n // Clear the cookie in the hash\r\n this.cacheStorage.clearMsalCookie(stateInfo.state);\r\n var accountState = this.getAccountState(stateInfo.state);\r\n if (response) {\r\n if ((stateInfo.requestType === Constants.renewToken) || response.accessToken) {\r\n if (window.parent !== window) {\r\n this.logger.verbose(\"Window is in iframe, acquiring token silently\");\r\n }\r\n else {\r\n this.logger.verbose(\"Acquiring token interactive in progress\");\r\n }\r\n this.logger.verbose(\"Response tokenType set to \" + ServerHashParamKeys.ACCESS_TOKEN);\r\n response.tokenType = ServerHashParamKeys.ACCESS_TOKEN;\r\n }\r\n else if (stateInfo.requestType === Constants.login) {\r\n this.logger.verbose(\"Response tokenType set to \" + ServerHashParamKeys.ID_TOKEN);\r\n response.tokenType = ServerHashParamKeys.ID_TOKEN;\r\n }\r\n if (!parentCallback) {\r\n this.logger.verbose(\"Setting redirectResponse\");\r\n this.redirectResponse = response;\r\n return;\r\n }\r\n }\r\n else if (!parentCallback) {\r\n this.logger.verbose(\"Response is null, setting redirectResponse with state\");\r\n this.redirectResponse = buildResponseStateOnly(accountState);\r\n this.redirectError = authErr;\r\n this.cacheStorage.resetTempCacheItems(stateInfo.state);\r\n return;\r\n }\r\n this.logger.verbose(\"Calling callback provided to processCallback\");\r\n parentCallback(response, authErr);\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error occurred in token received callback function: \" + err);\r\n throw ClientAuthError.createErrorInCallbackFunction(err.toString());\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * This method must be called for processing the response received from the STS if using popups or iframes. It extracts the hash, processes the token or error\r\n * information and saves it in the cache. It then resolves the promises with the result.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.handleAuthenticationResponse = function (hash) {\r\n this.logger.verbose(\"HandleAuthenticationResponse has been called\");\r\n // retrieve the hash\r\n var locationHash = hash || window.location.hash;\r\n // if (window.parent !== window), by using self, window.parent becomes equal to window in getResponseState method specifically\r\n var stateInfo = this.getResponseState(locationHash);\r\n this.logger.verbose(\"Obtained state from response\");\r\n var tokenResponseCallback = window.callbackMappedToRenewStates[stateInfo.state];\r\n this.processCallBack(locationHash, stateInfo, tokenResponseCallback);\r\n };\r\n /**\r\n * @hidden\r\n * This method must be called for processing the response received from the STS when using redirect flows. It extracts the hash, processes the token or error\r\n * information and saves it in the cache. The result can then be accessed by user registered callbacks.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.handleRedirectAuthenticationResponse = function (hash) {\r\n this.logger.info(\"Returned from redirect url\");\r\n this.logger.verbose(\"HandleRedirectAuthenticationResponse has been called\");\r\n // clear hash from window\r\n WindowUtils.clearUrlFragment();\r\n this.logger.verbose(\"Window.location.hash cleared\");\r\n // if (window.parent !== window), by using self, window.parent becomes equal to window in getResponseState method specifically\r\n var stateInfo = this.getResponseState(hash);\r\n // if set to navigate to loginRequest page post login\r\n if (this.config.auth.navigateToLoginRequestUrl && window.parent === window) {\r\n this.logger.verbose(\"Window.parent is equal to window, not in popup or iframe. Navigation to login request url after login turned on\");\r\n var loginRequestUrl = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, stateInfo.state), this.inCookie);\r\n // Redirect to home page if login request url is null (real null or the string null)\r\n if (!loginRequestUrl || loginRequestUrl === \"null\") {\r\n this.logger.error(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n window.location.assign(\"/\");\r\n return;\r\n }\r\n else {\r\n this.logger.verbose(\"Valid login request url obtained from cache\");\r\n var currentUrl = UrlUtils.removeHashFromUrl(window.location.href);\r\n var finalRedirectUrl = UrlUtils.removeHashFromUrl(loginRequestUrl);\r\n if (currentUrl !== finalRedirectUrl) {\r\n this.logger.verbose(\"Current url is not login request url, navigating\");\r\n this.logger.verbosePii(\"CurrentUrl: \" + currentUrl + \", finalRedirectUrl: \" + finalRedirectUrl);\r\n window.location.assign(\"\" + finalRedirectUrl + hash);\r\n return;\r\n }\r\n else {\r\n this.logger.verbose(\"Current url matches login request url\");\r\n var loginRequestUrlComponents = UrlUtils.GetUrlComponents(loginRequestUrl);\r\n if (loginRequestUrlComponents.Hash) {\r\n this.logger.verbose(\"Login request url contains hash, resetting non-msal hash\");\r\n window.location.hash = loginRequestUrlComponents.Hash;\r\n }\r\n }\r\n }\r\n }\r\n else if (!this.config.auth.navigateToLoginRequestUrl) {\r\n this.logger.verbose(\"Default navigation to start page after login turned off\");\r\n }\r\n this.processCallBack(hash, stateInfo, null);\r\n };\r\n /**\r\n * @hidden\r\n * Creates a stateInfo object from the URL fragment and returns it.\r\n * @param {string} hash - Hash passed from redirect page\r\n * @returns {TokenResponse} an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getResponseState = function (hash) {\r\n this.logger.verbose(\"GetResponseState has been called\");\r\n var parameters = UrlUtils.deserializeHash(hash);\r\n var stateResponse;\r\n if (!parameters) {\r\n throw AuthError.createUnexpectedError(\"Hash was not parsed correctly.\");\r\n }\r\n if (parameters.hasOwnProperty(ServerHashParamKeys.STATE)) {\r\n this.logger.verbose(\"Hash contains state. Creating stateInfo object\");\r\n var parsedState = RequestUtils.parseLibraryState(parameters[\"state\"]);\r\n stateResponse = {\r\n requestType: Constants.unknown,\r\n state: parameters[\"state\"],\r\n timestamp: parsedState.ts,\r\n method: parsedState.method,\r\n stateMatch: false\r\n };\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Hash does not contain state.\");\r\n }\r\n /*\r\n * async calls can fire iframe and login request at the same time if developer does not use the API as expected\r\n * incoming callback needs to be looked up to find the request type\r\n */\r\n // loginRedirect\r\n if (stateResponse.state === this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, stateResponse.state), this.inCookie) || stateResponse.state === this.silentAuthenticationState) {\r\n this.logger.verbose(\"State matches cached state, setting requestType to login\");\r\n stateResponse.requestType = Constants.login;\r\n stateResponse.stateMatch = true;\r\n return stateResponse;\r\n }\r\n // acquireTokenRedirect\r\n else if (stateResponse.state === this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, stateResponse.state), this.inCookie)) {\r\n this.logger.verbose(\"State matches cached state, setting requestType to renewToken\");\r\n stateResponse.requestType = Constants.renewToken;\r\n stateResponse.stateMatch = true;\r\n return stateResponse;\r\n }\r\n // external api requests may have many renewtoken requests for different resource\r\n if (!stateResponse.stateMatch) {\r\n this.logger.verbose(\"State does not match cached state, setting requestType to type from window\");\r\n stateResponse.requestType = window.requestType;\r\n var statesInParentContext = window.renewStates;\r\n for (var i = 0; i < statesInParentContext.length; i++) {\r\n if (statesInParentContext[i] === stateResponse.state) {\r\n this.logger.verbose(\"Matching state found for request\");\r\n stateResponse.stateMatch = true;\r\n break;\r\n }\r\n }\r\n if (!stateResponse.stateMatch) {\r\n this.logger.verbose(\"Matching state not found for request\");\r\n }\r\n }\r\n return stateResponse;\r\n };\r\n // #endregion\r\n // #region Token Processing (Extract to TokenProcessing.ts)\r\n /**\r\n * @hidden\r\n * Used to get token for the specified set of scopes from the cache\r\n * @param {@link ServerRequestParameters} - Request sent to the STS to obtain an id_token/access_token\r\n * @param {Account} account - Account for which the scopes were requested\r\n */\r\n UserAgentApplication.prototype.getCachedToken = function (serverAuthenticationRequest, account) {\r\n this.logger.verbose(\"GetCachedToken has been called\");\r\n var scopes = serverAuthenticationRequest.scopes;\r\n /**\r\n * Id Token should be returned in every acquireTokenSilent call. The only exception is a response_type = token\r\n * request when a valid ID Token is not present in the cache.\r\n */\r\n var idToken = this.getCachedIdToken(serverAuthenticationRequest, account);\r\n var authResponse = this.getCachedAccessToken(serverAuthenticationRequest, account, scopes);\r\n var accountState = this.getAccountState(serverAuthenticationRequest.state);\r\n return ResponseUtils.buildAuthResponse(idToken, authResponse, serverAuthenticationRequest, account, scopes, accountState);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Uses passed in authority to further filter an array of tokenCacheItems until only the token being searched for remains, then returns that tokenCacheItem.\r\n * This method will throw if authority filtering still yields multiple matching tokens and will return null if not tokens match the authority passed in.\r\n *\r\n * @param authority\r\n * @param tokenCacheItems\r\n * @param request\r\n * @param requestScopes\r\n * @param tokenType\r\n */\r\n UserAgentApplication.prototype.getTokenCacheItemByAuthority = function (authority, tokenCacheItems, requestScopes, tokenType) {\r\n var _this = this;\r\n var filteredAuthorityItems;\r\n if (UrlUtils.isCommonAuthority(authority) || UrlUtils.isOrganizationsAuthority(authority) || UrlUtils.isConsumersAuthority(authority)) {\r\n filteredAuthorityItems = AuthCacheUtils.filterTokenCacheItemsByDomain(tokenCacheItems, UrlUtils.GetUrlComponents(authority).HostNameAndPort);\r\n }\r\n else {\r\n filteredAuthorityItems = AuthCacheUtils.filterTokenCacheItemsByAuthority(tokenCacheItems, authority);\r\n }\r\n if (filteredAuthorityItems.length === 1) {\r\n return filteredAuthorityItems[0];\r\n }\r\n else if (filteredAuthorityItems.length > 1) {\r\n this.logger.warning(\"Multiple matching tokens found. Cleaning cache and requesting a new token.\");\r\n filteredAuthorityItems.forEach(function (accessTokenCacheItem) {\r\n _this.cacheStorage.removeItem(JSON.stringify(accessTokenCacheItem.key));\r\n });\r\n return null;\r\n }\r\n else {\r\n this.logger.verbose(\"No matching tokens of type \" + tokenType + \" found\");\r\n return null;\r\n }\r\n };\r\n /**\r\n *\r\n * @hidden\r\n *\r\n * Searches the token cache for an ID Token that matches the request parameter and returns it as an IdToken object.\r\n *\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n UserAgentApplication.prototype.getCachedIdToken = function (serverAuthenticationRequest, account) {\r\n this.logger.verbose(\"Getting all cached tokens of type ID Token\");\r\n var idTokenCacheItems = this.cacheStorage.getAllIdTokens(this.clientId, account ? account.homeAccountIdentifier : null);\r\n var matchAuthority = serverAuthenticationRequest.authority || this.authority;\r\n var idTokenCacheItem = this.getTokenCacheItemByAuthority(matchAuthority, idTokenCacheItems, null, ServerHashParamKeys.ID_TOKEN);\r\n if (idTokenCacheItem) {\r\n this.logger.verbose(\"Evaluating ID token found\");\r\n var idTokenIsStillValid = this.evaluateTokenExpiration(idTokenCacheItem);\r\n if (idTokenIsStillValid) {\r\n this.logger.verbose(\"ID token expiration is within offset, using ID token found in cache\");\r\n var idTokenValue = idTokenCacheItem.value;\r\n if (idTokenValue) {\r\n this.logger.verbose(\"ID Token found in cache is valid and unexpired\");\r\n }\r\n else {\r\n this.logger.verbose(\"ID Token found in cache is invalid\");\r\n }\r\n return (idTokenValue) ? new IdToken(idTokenValue.idToken) : null;\r\n }\r\n else {\r\n this.logger.verbose(\"Cached ID token is expired, removing from cache\");\r\n this.cacheStorage.removeItem(JSON.stringify(idTokenCacheItem.key));\r\n return null;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"No tokens found\");\r\n return null;\r\n }\r\n };\r\n /**\r\n *\r\n * @hidden\r\n *\r\n * Searches the token cache for an access token that matches the request parameters and returns it as an AuthResponse.\r\n *\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n * @param scopes\r\n */\r\n UserAgentApplication.prototype.getCachedAccessToken = function (serverAuthenticationRequest, account, scopes) {\r\n this.logger.verbose(\"Getting all cached tokens of type Access Token\");\r\n var tokenCacheItems = this.cacheStorage.getAllAccessTokens(this.clientId, account ? account.homeAccountIdentifier : null);\r\n var scopeFilteredTokenCacheItems = AuthCacheUtils.filterTokenCacheItemsByScope(tokenCacheItems, scopes);\r\n var matchAuthority = serverAuthenticationRequest.authority || this.authority;\r\n // serverAuthenticationRequest.authority can only be common or organizations if not null\r\n var accessTokenCacheItem = this.getTokenCacheItemByAuthority(matchAuthority, scopeFilteredTokenCacheItems, scopes, ServerHashParamKeys.ACCESS_TOKEN);\r\n if (!accessTokenCacheItem) {\r\n this.logger.verbose(\"No matching token found when filtering by scope and authority\");\r\n return null;\r\n }\r\n else {\r\n serverAuthenticationRequest.authorityInstance = AuthorityFactory.CreateInstance(accessTokenCacheItem.key.authority, this.config.auth.validateAuthority);\r\n this.logger.verbose(\"Evaluating access token found\");\r\n var tokenIsStillValid = this.evaluateTokenExpiration(accessTokenCacheItem);\r\n // The response value will stay null if token retrieved from the cache is expired, otherwise it will be populated with said token's data\r\n if (tokenIsStillValid) {\r\n this.logger.verbose(\"Access token expiration is within offset, using access token found in cache\");\r\n if (!account) {\r\n account = this.getAccount();\r\n if (!account) {\r\n throw AuthError.createUnexpectedError(\"Account should not be null here.\");\r\n }\r\n }\r\n var aState = this.getAccountState(serverAuthenticationRequest.state);\r\n var response = {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: ServerHashParamKeys.ACCESS_TOKEN,\r\n idToken: null,\r\n idTokenClaims: null,\r\n accessToken: accessTokenCacheItem.value.accessToken,\r\n scopes: accessTokenCacheItem.key.scopes.split(\" \"),\r\n expiresOn: new Date(Number(accessTokenCacheItem.value.expiresIn) * 1000),\r\n account: account,\r\n accountState: aState,\r\n fromCache: true\r\n };\r\n return response;\r\n }\r\n else {\r\n this.logger.verbose(\"Access token expired, removing from cache\");\r\n this.cacheStorage.removeItem(JSON.stringify(accessTokenCacheItem.key));\r\n return null;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns true if the token passed in is within the acceptable expiration time offset, false if it is expired.\r\n * @param tokenCacheItem\r\n * @param serverAuthenticationRequest\r\n */\r\n UserAgentApplication.prototype.evaluateTokenExpiration = function (tokenCacheItem) {\r\n var expiration = Number(tokenCacheItem.value.expiresIn);\r\n return TokenUtils.validateExpirationIsWithinOffset(expiration, this.config.system.tokenRenewalOffsetSeconds);\r\n };\r\n /**\r\n * @hidden\r\n * Check if ADAL id_token exists and return if exists.\r\n *\r\n */\r\n UserAgentApplication.prototype.extractADALIdToken = function () {\r\n this.logger.verbose(\"ExtractADALIdToken has been called\");\r\n var adalIdToken = this.cacheStorage.getItem(Constants.adalIdToken);\r\n return (!StringUtils.isEmpty(adalIdToken)) ? TokenUtils.extractIdToken(adalIdToken) : null;\r\n };\r\n /**\r\n * @hidden\r\n * Acquires access token using a hidden iframe.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.renewToken = function (requestSignature, resolve, reject, account, serverAuthenticationRequest) {\r\n this.logger.verbose(\"RenewToken has been called\");\r\n this.logger.verbosePii(\"RenewToken scope and authority: \" + requestSignature);\r\n var frameName = WindowUtils.generateFrameName(FramePrefix.TOKEN_FRAME, requestSignature);\r\n WindowUtils.addHiddenIFrame(frameName, this.logger);\r\n this.updateCacheEntries(serverAuthenticationRequest, account, false);\r\n this.logger.verbosePii(\"RenewToken expected state: \" + serverAuthenticationRequest.state);\r\n // Build urlNavigate with \"prompt=none\" and navigate to URL in hidden iFrame\r\n var urlNavigate = UrlUtils.urlRemoveQueryStringParameter(UrlUtils.createNavigateUrl(serverAuthenticationRequest), Constants.prompt) + Constants.prompt_none + Constants.response_mode_fragment;\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n window.requestType = Constants.renewToken;\r\n this.logger.verbose(\"Set window.renewState and requestType\");\r\n this.registerCallback(serverAuthenticationRequest.state, requestSignature, resolve, reject);\r\n this.logger.infoPii(\"Navigate to: \" + urlNavigate);\r\n this.loadIframeTimeout(urlNavigate, frameName, requestSignature).catch(function (error) { return reject(error); });\r\n };\r\n /**\r\n * @hidden\r\n * Renews idtoken for app's own backend when clientId is passed as a single scope in the scopes array.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.renewIdToken = function (requestSignature, resolve, reject, account, serverAuthenticationRequest) {\r\n this.logger.info(\"RenewIdToken has been called\");\r\n var frameName = WindowUtils.generateFrameName(FramePrefix.ID_TOKEN_FRAME, requestSignature);\r\n WindowUtils.addHiddenIFrame(frameName, this.logger);\r\n this.updateCacheEntries(serverAuthenticationRequest, account, false);\r\n this.logger.verbose(\"RenewIdToken expected state: \" + serverAuthenticationRequest.state);\r\n // Build urlNavigate with \"prompt=none\" and navigate to URL in hidden iFrame\r\n var urlNavigate = UrlUtils.urlRemoveQueryStringParameter(UrlUtils.createNavigateUrl(serverAuthenticationRequest), Constants.prompt) + Constants.prompt_none + Constants.response_mode_fragment;\r\n if (this.silentLogin) {\r\n this.logger.verbose(\"Silent login is true, set silentAuthenticationState\");\r\n window.requestType = Constants.login;\r\n this.silentAuthenticationState = serverAuthenticationRequest.state;\r\n }\r\n else {\r\n this.logger.verbose(\"Not silent login, set window.renewState and requestType\");\r\n window.requestType = Constants.renewToken;\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n }\r\n // note: scope here is clientId\r\n this.registerCallback(serverAuthenticationRequest.state, requestSignature, resolve, reject);\r\n this.logger.infoPii(\"Navigate to:\\\" \" + urlNavigate);\r\n this.loadIframeTimeout(urlNavigate, frameName, requestSignature).catch(function (error) { return reject(error); });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * This method builds an Access Token Cache item and saves it to the cache, returning the original\r\n * AuthResponse augmented with a parsed expiresOn attribute.\r\n *\r\n * @param response The AuthResponse object that contains the token to be saved\r\n * @param authority The authority under which the ID token will be cached\r\n * @param scopes The scopes to be added to the cache item key (undefined for ID token cache items)\r\n * @param clientInfo Client Info object that is used to generate the homeAccountIdentifier\r\n * @param expiration Token expiration timestamp\r\n */\r\n UserAgentApplication.prototype.saveToken = function (response, authority, scopes, clientInfo, expiration) {\r\n var accessTokenKey = new AccessTokenKey(authority, this.clientId, scopes, clientInfo.uid, clientInfo.utid);\r\n var accessTokenValue = new AccessTokenValue(response.accessToken, response.idToken.rawIdToken, expiration.toString(), clientInfo.encodeClientInfo());\r\n this.cacheStorage.setItem(JSON.stringify(accessTokenKey), JSON.stringify(accessTokenValue));\r\n if (expiration) {\r\n this.logger.verbose(\"New expiration set for token\");\r\n response.expiresOn = new Date(expiration * 1000);\r\n }\r\n else {\r\n this.logger.error(\"Could not parse expiresIn parameter for access token\");\r\n }\r\n return response;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * This method sets up the elements of an ID Token cache item and calls saveToken to save it in\r\n * Access Token Cache item format for the client application to use.\r\n *\r\n * @param response The AuthResponse object that will be used to build the cache item\r\n * @param authority The authority under which the ID token will be cached\r\n * @param parameters The response's Hash Params, which contain the ID token returned from the server\r\n * @param clientInfo Client Info object that is used to generate the homeAccountIdentifier\r\n * @param idTokenObj ID Token object from which the ID token's expiration is extracted\r\n */\r\n /* tslint:disable:no-string-literal */\r\n UserAgentApplication.prototype.saveIdToken = function (response, authority, parameters, clientInfo, idTokenObj) {\r\n this.logger.verbose(\"SaveIdToken has been called\");\r\n var idTokenResponse = tslib_1.__assign({}, response);\r\n // Scopes are undefined so they don't show up in ID token cache key\r\n var scopes;\r\n idTokenResponse.scopes = Constants.oidcScopes;\r\n idTokenResponse.accessToken = parameters[ServerHashParamKeys.ID_TOKEN];\r\n var expiration = Number(idTokenObj.expiration);\r\n // Set ID Token item in cache\r\n this.logger.verbose(\"Saving ID token to cache\");\r\n return this.saveToken(idTokenResponse, authority, scopes, clientInfo, expiration);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * This method sets up the elements of an Access Token cache item and calls saveToken to save it to the cache\r\n *\r\n * @param response The AuthResponse object that will be used to build the cache item\r\n * @param authority The authority under which the access token will be cached\r\n * @param parameters The response's Hash Params, which contain the access token returned from the server\r\n * @param clientInfo Client Info object that is used to generate the homeAccountIdentifier\r\n */\r\n /* tslint:disable:no-string-literal */\r\n UserAgentApplication.prototype.saveAccessToken = function (response, authority, parameters, clientInfo) {\r\n this.logger.verbose(\"SaveAccessToken has been called\");\r\n var accessTokenResponse = tslib_1.__assign({}, response);\r\n // read the scopes\r\n var scope = parameters[ServerHashParamKeys.SCOPE];\r\n var consentedScopes = scope.split(\" \");\r\n // retrieve all access tokens from the cache, remove the dup scopes\r\n var accessTokenCacheItems = this.cacheStorage.getAllAccessTokens(this.clientId, authority);\r\n this.logger.verbose(\"Retrieving all access tokens from cache and removing duplicates\");\r\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\r\n var accessTokenCacheItem = accessTokenCacheItems[i];\r\n if (accessTokenCacheItem.key.homeAccountIdentifier === response.account.homeAccountIdentifier) {\r\n var cachedScopes = accessTokenCacheItem.key.scopes.split(\" \");\r\n if (ScopeSet.isIntersectingScopes(cachedScopes, consentedScopes)) {\r\n this.cacheStorage.removeItem(JSON.stringify(accessTokenCacheItem.key));\r\n }\r\n }\r\n }\r\n accessTokenResponse.accessToken = parameters[ServerHashParamKeys.ACCESS_TOKEN];\r\n accessTokenResponse.scopes = consentedScopes;\r\n var expiresIn = TimeUtils.parseExpiresIn(parameters[ServerHashParamKeys.EXPIRES_IN]);\r\n var parsedState = RequestUtils.parseLibraryState(parameters[ServerHashParamKeys.STATE]);\r\n var expiration = parsedState.ts + expiresIn;\r\n this.logger.verbose(\"Saving access token to cache\");\r\n return this.saveToken(accessTokenResponse, authority, scope, clientInfo, expiration);\r\n };\r\n /**\r\n * @hidden\r\n * Saves token or error received in the response from AAD in the cache. In case of id_token, it also creates the account object.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.saveTokenFromHash = function (hash, stateInfo) {\r\n this.logger.verbose(\"SaveTokenFromHash has been called\");\r\n this.logger.info(\"State status: \" + stateInfo.stateMatch + \"; Request type: \" + stateInfo.requestType);\r\n var response = {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: \"\",\r\n idToken: null,\r\n idTokenClaims: null,\r\n accessToken: null,\r\n scopes: [],\r\n expiresOn: null,\r\n account: null,\r\n accountState: \"\",\r\n fromCache: false\r\n };\r\n var error;\r\n var hashParams = UrlUtils.deserializeHash(hash);\r\n var authorityKey = \"\";\r\n var acquireTokenAccountKey = \"\";\r\n var idTokenObj = null;\r\n // If server returns an error\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ERROR_DESCRIPTION) || hashParams.hasOwnProperty(ServerHashParamKeys.ERROR)) {\r\n this.logger.verbose(\"Server returned an error\");\r\n this.logger.infoPii(\"Error : \" + hashParams[ServerHashParamKeys.ERROR] + \"; Error description: \" + hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, hashParams[ServerHashParamKeys.ERROR]);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n // login\r\n if (stateInfo.requestType === Constants.login) {\r\n this.logger.verbose(\"RequestType is login, caching login error, generating authorityKey\");\r\n this.cacheStorage.setItem(ErrorCacheKeys.LOGIN_ERROR, hashParams[ServerHashParamKeys.ERROR_DESCRIPTION] + \":\" + hashParams[ServerHashParamKeys.ERROR]);\r\n authorityKey = AuthCache.generateAuthorityKey(stateInfo.state);\r\n }\r\n // acquireToken\r\n if (stateInfo.requestType === Constants.renewToken) {\r\n this.logger.verbose(\"RequestType is renewToken, generating acquireTokenAccountKey\");\r\n authorityKey = AuthCache.generateAuthorityKey(stateInfo.state);\r\n var account = this.getAccount();\r\n var accountId = void 0;\r\n if (account && !StringUtils.isEmpty(account.homeAccountIdentifier)) {\r\n accountId = account.homeAccountIdentifier;\r\n this.logger.verbose(\"AccountId is set\");\r\n }\r\n else {\r\n accountId = Constants.no_account;\r\n this.logger.verbose(\"AccountId is set as no_account\");\r\n }\r\n acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountId, stateInfo.state);\r\n }\r\n var hashErr = hashParams[ServerHashParamKeys.ERROR];\r\n var hashErrDesc = hashParams[ServerHashParamKeys.ERROR_DESCRIPTION];\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(hashErr) ||\r\n InteractionRequiredAuthError.isInteractionRequiredError(hashErrDesc)) {\r\n error = new InteractionRequiredAuthError(hashParams[ServerHashParamKeys.ERROR], hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n }\r\n else {\r\n error = new ServerError(hashParams[ServerHashParamKeys.ERROR], hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n }\r\n }\r\n // If the server returns \"Success\"\r\n else {\r\n this.logger.verbose(\"Server returns success\");\r\n // Verify the state from redirect and record tokens to storage if exists\r\n if (stateInfo.stateMatch) {\r\n this.logger.info(\"State is right\");\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.SESSION_STATE)) {\r\n this.logger.verbose(\"Fragment has session state, caching\");\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.SESSION_STATE, stateInfo.state), hashParams[ServerHashParamKeys.SESSION_STATE]);\r\n }\r\n response.accountState = this.getAccountState(stateInfo.state);\r\n var clientInfo = void 0;\r\n // Process access_token\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ACCESS_TOKEN)) {\r\n this.logger.info(\"Fragment has access token\");\r\n response.accessToken = hashParams[ServerHashParamKeys.ACCESS_TOKEN];\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.SCOPE)) {\r\n response.scopes = hashParams[ServerHashParamKeys.SCOPE].split(\" \");\r\n }\r\n // retrieve the id_token from response if present\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ID_TOKEN)) {\r\n this.logger.verbose(\"Fragment has id_token\");\r\n idTokenObj = new IdToken(hashParams[ServerHashParamKeys.ID_TOKEN]);\r\n }\r\n else {\r\n this.logger.verbose(\"No idToken on fragment, getting idToken from cache\");\r\n idTokenObj = new IdToken(this.cacheStorage.getItem(PersistentCacheKeys.IDTOKEN));\r\n }\r\n response = ResponseUtils.setResponseIdToken(response, idTokenObj);\r\n // set authority\r\n var authority = this.populateAuthority(stateInfo.state, this.inCookie, this.cacheStorage, idTokenObj);\r\n this.logger.verbose(\"Got authority from cache\");\r\n // retrieve client_info - if it is not found, generate the uid and utid from idToken\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.CLIENT_INFO)) {\r\n this.logger.verbose(\"Fragment has clientInfo\");\r\n clientInfo = new ClientInfo(hashParams[ServerHashParamKeys.CLIENT_INFO], authority);\r\n }\r\n else if (this.authorityInstance.AuthorityType === AuthorityType.Adfs) {\r\n clientInfo = ClientInfo.createClientInfoFromIdToken(idTokenObj, authority);\r\n }\r\n else {\r\n this.logger.warning(\"ClientInfo not received in the response from AAD\");\r\n }\r\n response.account = Account.createAccount(idTokenObj, clientInfo);\r\n this.logger.verbose(\"Account object created from response\");\r\n var accountKey = void 0;\r\n if (response.account && !StringUtils.isEmpty(response.account.homeAccountIdentifier)) {\r\n this.logger.verbose(\"AccountKey set\");\r\n accountKey = response.account.homeAccountIdentifier;\r\n }\r\n else {\r\n this.logger.verbose(\"AccountKey set as no_account\");\r\n accountKey = Constants.no_account;\r\n }\r\n acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountKey, stateInfo.state);\r\n var acquireTokenAccountKey_noaccount = AuthCache.generateAcquireTokenAccountKey(Constants.no_account, stateInfo.state);\r\n this.logger.verbose(\"AcquireTokenAccountKey generated\");\r\n var cachedAccount = this.cacheStorage.getItem(acquireTokenAccountKey);\r\n var acquireTokenAccount = void 0;\r\n // Check with the account in the Cache\r\n if (!StringUtils.isEmpty(cachedAccount)) {\r\n acquireTokenAccount = JSON.parse(cachedAccount);\r\n this.logger.verbose(\"AcquireToken request account retrieved from cache\");\r\n if (response.account && acquireTokenAccount && Account.compareAccounts(response.account, acquireTokenAccount)) {\r\n response = this.saveAccessToken(response, authority, hashParams, clientInfo);\r\n this.logger.info(\"The user object received in the response is the same as the one passed in the acquireToken request\");\r\n }\r\n else {\r\n this.logger.warning(\"The account object created from the response is not the same as the one passed in the acquireToken request\");\r\n }\r\n }\r\n else if (!StringUtils.isEmpty(this.cacheStorage.getItem(acquireTokenAccountKey_noaccount))) {\r\n this.logger.verbose(\"No acquireToken account retrieved from cache\");\r\n response = this.saveAccessToken(response, authority, hashParams, clientInfo);\r\n }\r\n }\r\n // Process id_token\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ID_TOKEN)) {\r\n this.logger.info(\"Fragment has idToken\");\r\n // set the idToken\r\n idTokenObj = new IdToken(hashParams[ServerHashParamKeys.ID_TOKEN]);\r\n // set authority\r\n var authority = this.populateAuthority(stateInfo.state, this.inCookie, this.cacheStorage, idTokenObj);\r\n response = ResponseUtils.setResponseIdToken(response, idTokenObj);\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.CLIENT_INFO)) {\r\n this.logger.verbose(\"Fragment has clientInfo\");\r\n clientInfo = new ClientInfo(hashParams[ServerHashParamKeys.CLIENT_INFO], authority);\r\n }\r\n else if (this.authorityInstance.AuthorityType === AuthorityType.Adfs) {\r\n clientInfo = ClientInfo.createClientInfoFromIdToken(idTokenObj, authority);\r\n }\r\n else {\r\n this.logger.warning(\"ClientInfo not received in the response from AAD\");\r\n }\r\n this.account = Account.createAccount(idTokenObj, clientInfo);\r\n response.account = this.account;\r\n this.logger.verbose(\"Account object created from response\");\r\n if (idTokenObj && idTokenObj.nonce) {\r\n this.logger.verbose(\"IdToken has nonce\");\r\n // check nonce integrity if idToken has nonce - throw an error if not matched\r\n var cachedNonce = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, stateInfo.state), this.inCookie);\r\n if (idTokenObj.nonce !== cachedNonce) {\r\n this.account = null;\r\n this.cacheStorage.setItem(ErrorCacheKeys.LOGIN_ERROR, \"Nonce Mismatch. Expected Nonce: \" + cachedNonce + \",\" + \"Actual Nonce: \" + idTokenObj.nonce);\r\n this.logger.error(\"Nonce Mismatch. Expected Nonce: \" + cachedNonce + \", Actual Nonce: \" + idTokenObj.nonce);\r\n error = ClientAuthError.createNonceMismatchError(cachedNonce, idTokenObj.nonce);\r\n }\r\n // Save the token\r\n else {\r\n this.logger.verbose(\"Nonce matches, saving idToken to cache\");\r\n this.cacheStorage.setItem(PersistentCacheKeys.IDTOKEN, hashParams[ServerHashParamKeys.ID_TOKEN], this.inCookie);\r\n this.cacheStorage.setItem(PersistentCacheKeys.CLIENT_INFO, clientInfo.encodeClientInfo(), this.inCookie);\r\n // Save idToken as access token item for app itself\r\n this.saveIdToken(response, authority, hashParams, clientInfo, idTokenObj);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"No idToken or no nonce. Cache key for Authority set as state\");\r\n authorityKey = stateInfo.state;\r\n acquireTokenAccountKey = stateInfo.state;\r\n this.logger.error(\"Invalid id_token received in the response\");\r\n error = ClientAuthError.createInvalidIdTokenError(idTokenObj);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, error.errorCode);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, error.errorMessage);\r\n }\r\n }\r\n }\r\n // State mismatch - unexpected/invalid state\r\n else {\r\n this.logger.verbose(\"State mismatch\");\r\n authorityKey = stateInfo.state;\r\n acquireTokenAccountKey = stateInfo.state;\r\n var expectedState = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, stateInfo.state), this.inCookie);\r\n this.logger.error(\"State Mismatch. Expected State: \" + expectedState + \", Actual State: \" + stateInfo.state);\r\n error = ClientAuthError.createInvalidStateError(stateInfo.state, expectedState);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, error.errorCode);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, error.errorMessage);\r\n }\r\n }\r\n // Set status to completed\r\n this.cacheStorage.removeItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, stateInfo.state));\r\n this.cacheStorage.resetTempCacheItems(stateInfo.state);\r\n this.logger.verbose(\"Status set to complete, temporary cache cleared\");\r\n // this is required if navigateToLoginRequestUrl=false\r\n if (this.inCookie) {\r\n this.logger.verbose(\"InCookie is true, setting authorityKey in cookie\");\r\n this.cacheStorage.setItemCookie(authorityKey, \"\", -1);\r\n this.cacheStorage.clearMsalCookie(stateInfo.state);\r\n }\r\n if (error) {\r\n // Error case, set status to cancelled\r\n throw error;\r\n }\r\n if (!response) {\r\n throw AuthError.createUnexpectedError(\"Response is null\");\r\n }\r\n return response;\r\n };\r\n /**\r\n * Set Authority when saving Token from the hash\r\n * @param state\r\n * @param inCookie\r\n * @param cacheStorage\r\n * @param idTokenObj\r\n * @param response\r\n */\r\n UserAgentApplication.prototype.populateAuthority = function (state, inCookie, cacheStorage, idTokenObj) {\r\n this.logger.verbose(\"PopulateAuthority has been called\");\r\n var authorityKey = AuthCache.generateAuthorityKey(state);\r\n var cachedAuthority = cacheStorage.getItem(authorityKey, inCookie);\r\n // retrieve the authority from cache and replace with tenantID\r\n return StringUtils.isEmpty(cachedAuthority) ? cachedAuthority : UrlUtils.replaceTenantPath(cachedAuthority, idTokenObj.tenantId);\r\n };\r\n /* tslint:enable:no-string-literal */\r\n // #endregion\r\n // #region Account\r\n /**\r\n * Returns the signed in account\r\n * (the account object is created at the time of successful login)\r\n * or null when no state is found\r\n * @returns {@link Account} - the account object stored in MSAL\r\n */\r\n UserAgentApplication.prototype.getAccount = function () {\r\n // if a session already exists, get the account from the session\r\n if (this.account) {\r\n return this.account;\r\n }\r\n // frame is used to get idToken and populate the account for the given session\r\n var rawIdToken = this.cacheStorage.getItem(PersistentCacheKeys.IDTOKEN, this.inCookie);\r\n var rawClientInfo = this.cacheStorage.getItem(PersistentCacheKeys.CLIENT_INFO, this.inCookie);\r\n if (!StringUtils.isEmpty(rawIdToken) && !StringUtils.isEmpty(rawClientInfo)) {\r\n var idToken = new IdToken(rawIdToken);\r\n var clientInfo = new ClientInfo(rawClientInfo, \"\");\r\n this.account = Account.createAccount(idToken, clientInfo);\r\n return this.account;\r\n }\r\n // if login not yet done, return null\r\n return null;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Extracts state value from the accountState sent with the authentication request.\r\n * @returns {string} scope.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getAccountState = function (state) {\r\n if (state) {\r\n var splitIndex = state.indexOf(Constants.resourceDelimiter);\r\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\r\n return state.substring(splitIndex + 1);\r\n }\r\n }\r\n return state;\r\n };\r\n /**\r\n * Use to get a list of unique accounts in MSAL cache based on homeAccountIdentifier.\r\n *\r\n * @param {@link Array} Account - all unique accounts in MSAL cache.\r\n */\r\n UserAgentApplication.prototype.getAllAccounts = function () {\r\n var accounts = [];\r\n var accessTokenCacheItems = this.cacheStorage.getAllAccessTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\r\n var idToken = new IdToken(accessTokenCacheItems[i].value.idToken);\r\n var clientInfo = new ClientInfo(accessTokenCacheItems[i].value.homeAccountIdentifier, \"\");\r\n var account = Account.createAccount(idToken, clientInfo);\r\n accounts.push(account);\r\n }\r\n return this.getUniqueAccounts(accounts);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Used to filter accounts based on homeAccountIdentifier\r\n * @param {Array} Accounts - accounts saved in the cache\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getUniqueAccounts = function (accounts) {\r\n if (!accounts || accounts.length <= 1) {\r\n return accounts;\r\n }\r\n var flags = [];\r\n var uniqueAccounts = [];\r\n for (var index = 0; index < accounts.length; ++index) {\r\n if (accounts[index].homeAccountIdentifier && flags.indexOf(accounts[index].homeAccountIdentifier) === -1) {\r\n flags.push(accounts[index].homeAccountIdentifier);\r\n uniqueAccounts.push(accounts[index]);\r\n }\r\n }\r\n return uniqueAccounts;\r\n };\r\n // #endregion\r\n // #region Angular\r\n /**\r\n * @hidden\r\n *\r\n * Broadcast messages - Used only for Angular? *\r\n * @param eventName\r\n * @param data\r\n */\r\n UserAgentApplication.prototype.broadcast = function (eventName, data) {\r\n var evt = new CustomEvent(eventName, { detail: data });\r\n window.dispatchEvent(evt);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Helper function to retrieve the cached token\r\n *\r\n * @param scopes\r\n * @param {@link Account} account\r\n * @param state\r\n * @return {@link AuthResponse} AuthResponse\r\n */\r\n UserAgentApplication.prototype.getCachedTokenInternal = function (scopes, account, state, correlationId) {\r\n // Get the current session's account object\r\n var accountObject = account || this.getAccount();\r\n if (!accountObject) {\r\n return null;\r\n }\r\n // Construct AuthenticationRequest based on response type; set \"redirectUri\" from the \"request\" which makes this call from Angular - for this.getRedirectUri()\r\n var newAuthority = this.authorityInstance ? this.authorityInstance : AuthorityFactory.CreateInstance(this.authority, this.config.auth.validateAuthority);\r\n var responseType = this.getTokenType(accountObject, scopes);\r\n var serverAuthenticationRequest = new ServerRequestParameters(newAuthority, this.clientId, responseType, this.getRedirectUri(), scopes, state, correlationId);\r\n // get cached token\r\n return this.getCachedToken(serverAuthenticationRequest, account);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Get scopes for the Endpoint - Used in Angular to track protected and unprotected resources without interaction from the developer app\r\n * Note: Please check if we need to set the \"redirectUri\" from the \"request\" which makes this call from Angular - for this.getRedirectUri()\r\n *\r\n * @param endpoint\r\n */\r\n UserAgentApplication.prototype.getScopesForEndpoint = function (endpoint) {\r\n // if user specified list of unprotectedResources, no need to send token to these endpoints, return null.\r\n if (this.config.framework.unprotectedResources.length > 0) {\r\n for (var i = 0; i < this.config.framework.unprotectedResources.length; i++) {\r\n if (endpoint.indexOf(this.config.framework.unprotectedResources[i]) > -1) {\r\n return null;\r\n }\r\n }\r\n }\r\n // process all protected resources and send the matched one\r\n if (this.config.framework.protectedResourceMap.size > 0) {\r\n for (var _i = 0, _a = Array.from(this.config.framework.protectedResourceMap.keys()); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n // configEndpoint is like /api/Todo requested endpoint can be /api/Todo/1\r\n if (endpoint.indexOf(key) > -1) {\r\n return this.config.framework.protectedResourceMap.get(key);\r\n }\r\n }\r\n }\r\n /*\r\n * default resource will be clientid if nothing specified\r\n * App will use idtoken for calls to itself\r\n * check if it's staring from http or https, needs to match with app host\r\n */\r\n if (endpoint.indexOf(\"http://\") > -1 || endpoint.indexOf(\"https://\") > -1) {\r\n if (UrlUtils.getHostFromUri(endpoint) === UrlUtils.getHostFromUri(this.getRedirectUri())) {\r\n return new Array(this.clientId);\r\n }\r\n }\r\n else {\r\n /*\r\n * in angular level, the url for $http interceptor call could be relative url,\r\n * if it's relative call, we'll treat it as app backend call.\r\n */\r\n return new Array(this.clientId);\r\n }\r\n // if not the app's own backend or not a domain listed in the endpoints structure\r\n return null;\r\n };\r\n /**\r\n * Return boolean flag to developer to help inform if login is in progress\r\n * @returns {boolean} true/false\r\n */\r\n UserAgentApplication.prototype.getLoginInProgress = function () {\r\n return this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS) === Constants.inProgress;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param loginInProgress\r\n */\r\n UserAgentApplication.prototype.setInteractionInProgress = function (inProgress) {\r\n if (inProgress) {\r\n this.cacheStorage.setItem(TemporaryCacheKeys.INTERACTION_STATUS, Constants.inProgress);\r\n }\r\n else {\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param loginInProgress\r\n */\r\n UserAgentApplication.prototype.setloginInProgress = function (loginInProgress) {\r\n this.setInteractionInProgress(loginInProgress);\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * returns the status of acquireTokenInProgress\r\n */\r\n UserAgentApplication.prototype.getAcquireTokenInProgress = function () {\r\n return this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS) === Constants.inProgress;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param acquireTokenInProgress\r\n */\r\n UserAgentApplication.prototype.setAcquireTokenInProgress = function (acquireTokenInProgress) {\r\n this.setInteractionInProgress(acquireTokenInProgress);\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * returns the logger handle\r\n */\r\n UserAgentApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Sets the logger callback.\r\n * @param logger Logger callback\r\n */\r\n UserAgentApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n // #endregion\r\n // #region Getters and Setters\r\n /**\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * Evaluates redirectUri if its a function, otherwise simply returns its value.\r\n *\r\n * @returns {string} redirect URL\r\n */\r\n UserAgentApplication.prototype.getRedirectUri = function (reqRedirectUri) {\r\n if (reqRedirectUri) {\r\n return reqRedirectUri;\r\n }\r\n else if (typeof this.config.auth.redirectUri === \"function\") {\r\n return this.config.auth.redirectUri();\r\n }\r\n return this.config.auth.redirectUri;\r\n };\r\n /**\r\n * Use to get the post logout redirect uri configured in MSAL or null.\r\n * Evaluates postLogoutredirectUri if its a function, otherwise simply returns its value.\r\n *\r\n * @returns {string} post logout redirect URL\r\n */\r\n UserAgentApplication.prototype.getPostLogoutRedirectUri = function () {\r\n if (typeof this.config.auth.postLogoutRedirectUri === \"function\") {\r\n return this.config.auth.postLogoutRedirectUri();\r\n }\r\n return this.config.auth.postLogoutRedirectUri;\r\n };\r\n /**\r\n * Use to get the current {@link Configuration} object in MSAL\r\n *\r\n * @returns {@link Configuration}\r\n */\r\n UserAgentApplication.prototype.getCurrentConfiguration = function () {\r\n if (!this.config) {\r\n throw ClientConfigurationError.createNoSetConfigurationError();\r\n }\r\n return this.config;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Utils function to create the Authentication\r\n * @param {@link account} account object\r\n * @param scopes\r\n *\r\n * @returns {string} token type: token, id_token or id_token token\r\n *\r\n */\r\n UserAgentApplication.prototype.getTokenType = function (accountObject, scopes) {\r\n var accountsMatch = Account.compareAccounts(accountObject, this.getAccount());\r\n return ServerRequestParameters.determineResponseType(accountsMatch, scopes);\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Sets the cachekeys for and stores the account information in cache\r\n * @param account\r\n * @param state\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.setAccountCache = function (account, state) {\r\n // Cache acquireTokenAccountKey\r\n var accountId = account ? this.getAccountId(account) : Constants.no_account;\r\n var acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountId, state);\r\n this.cacheStorage.setItem(acquireTokenAccountKey, JSON.stringify(account));\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Sets the cacheKey for and stores the authority information in cache\r\n * @param state\r\n * @param authority\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.setAuthorityCache = function (state, authority) {\r\n // Cache authorityKey\r\n var authorityKey = AuthCache.generateAuthorityKey(state);\r\n this.cacheStorage.setItem(authorityKey, UrlUtils.CanonicalizeUri(authority), this.inCookie);\r\n };\r\n /**\r\n * Updates account, authority, and nonce in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n * @hidden\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.updateCacheEntries = function (serverAuthenticationRequest, account, isLoginCall, loginStartPage) {\r\n // Cache Request Originator Page\r\n if (loginStartPage) {\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, serverAuthenticationRequest.state), loginStartPage, this.inCookie);\r\n }\r\n // Cache account and authority\r\n if (isLoginCall) {\r\n // Cache the state\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, serverAuthenticationRequest.state), serverAuthenticationRequest.state, this.inCookie);\r\n }\r\n else {\r\n this.setAccountCache(account, serverAuthenticationRequest.state);\r\n }\r\n // Cache authorityKey\r\n this.setAuthorityCache(serverAuthenticationRequest.state, serverAuthenticationRequest.authority);\r\n // Cache nonce\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, serverAuthenticationRequest.state), serverAuthenticationRequest.nonce, this.inCookie);\r\n };\r\n /**\r\n * Returns the unique identifier for the logged in account\r\n * @param account\r\n * @hidden\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getAccountId = function (account) {\r\n // return `${account.accountIdentifier}` + Constants.resourceDelimiter + `${account.homeAccountIdentifier}`;\r\n var accountId;\r\n if (!StringUtils.isEmpty(account.homeAccountIdentifier)) {\r\n accountId = account.homeAccountIdentifier;\r\n }\r\n else {\r\n accountId = Constants.no_account;\r\n }\r\n return accountId;\r\n };\r\n /**\r\n * @ignore\r\n * @param extraQueryParameters\r\n *\r\n * Construct 'tokenRequest' from the available data in adalIdToken\r\n */\r\n UserAgentApplication.prototype.buildIDTokenRequest = function (request) {\r\n var tokenRequest = {\r\n scopes: Constants.oidcScopes,\r\n authority: this.authority,\r\n account: this.getAccount(),\r\n extraQueryParameters: request.extraQueryParameters,\r\n correlationId: request.correlationId\r\n };\r\n return tokenRequest;\r\n };\r\n /**\r\n * @ignore\r\n * @param config\r\n * @param clientId\r\n *\r\n * Construct TelemetryManager from Configuration\r\n */\r\n UserAgentApplication.prototype.getTelemetryManagerFromConfig = function (config, clientId) {\r\n if (!config) { // if unset\r\n return TelemetryManager.getTelemetrymanagerStub(clientId, this.logger);\r\n }\r\n // if set then validate\r\n var applicationName = config.applicationName, applicationVersion = config.applicationVersion, telemetryEmitter = config.telemetryEmitter;\r\n if (!applicationName || !applicationVersion || !telemetryEmitter) {\r\n throw ClientConfigurationError.createTelemetryConfigError(config);\r\n }\r\n // if valid then construct\r\n var telemetryPlatform = {\r\n applicationName: applicationName,\r\n applicationVersion: applicationVersion\r\n };\r\n var telemetryManagerConfig = {\r\n platform: telemetryPlatform,\r\n clientId: clientId\r\n };\r\n return new TelemetryManager(telemetryManagerConfig, telemetryEmitter, this.logger);\r\n };\r\n return UserAgentApplication;\r\n}());\r\nexport { UserAgentApplication };\r\n//# sourceMappingURL=UserAgentApplication.js.map","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'li'\n};\n\nvar NavItem = function NavItem(props) {\n var className = props.className,\n cssModule = props.cssModule,\n active = props.active,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"active\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'nav-item', active ? 'active' : false), cssModule);\n return React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nNavItem.propTypes = propTypes;\nNavItem.defaultProps = defaultProps;\nexport default NavItem;"],"sourceRoot":""}