{"version":3,"sources":["../../../../src/generated/src/models/parameters.ts","../node_modules/@azure/storage-blob/node_modules/tslib/tslib.es6.js","../../../../src/generated/src/models/mappers.ts","../node_modules/@azure/core-http/node_modules/tslib/tslib.es6.js","../../../src/index.ts","../../../../src/utils/constants.ts","../../../../src/utils/tracing.ts","../../../../src/utils/utils.common.ts","../../../../src/util/utils.ts","../../../../src/policies/StorageRetryPolicy.ts","../../../../src/log.ts","../../../../src/policies/StorageBrowserPolicy.ts","../../../../src/StorageBrowserPolicyFactory.ts","../../../../src/StorageRetryPolicyFactory.ts","webpack:///../../../../src/utils/cache.ts?111e","../../../../src/Pipeline.ts","../../../src/httpPipelineLogLevel.ts","../../../../src/policies/requestPolicy.ts","../../../../src/policies/AnonymousCredentialPolicy.ts","../../../../src/policies/CredentialPolicy.ts","../../../../src/credentials/AnonymousCredential.ts","../../../../src/credentials/Credential.ts","../../../../src/util/serializer.common.ts","../node_modules/tslib/tslib.es6.js","../../../../src/models.ts","../../../src/url.ts","../../../../src/credentials/StorageSharedKeyCredential.browser.ts","../node_modules/react/index.js","../../../src/httpHeaders.ts","../../../../src/Range.ts","../../../../src/util/base64.browser.ts","../../../src/serializer.ts","../../../../src/util/inspect.browser.ts","../../../src/restError.ts","../../../src/log.ts","../../../../src/util/constants.ts","../../../src/queryCollectionFormat.ts","../node_modules/react/jsx-runtime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../../../../src/policies/proxyPolicy.browser.ts","../../../../src/Clients.ts","../../../../src/utils/utils.browser.ts","../../../src/debug.ts","../../../src/tokenCredential.ts","../node_modules/process/browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../../src/util/xml.browser.ts","../../../../src/StorageClient.ts","../../../../src/policies/msRestUserAgentPolicy.browser.ts","../../../../src/policies/userAgentPolicy.ts","../../../src/operationParameter.ts","../../../../src/util/exponentialBackoffStrategy.ts","../../../../src/policies/exponentialRetryPolicy.ts","../../../../src/policies/redirectPolicy.ts","../../../../src/policies/rpRegistrationPolicy.ts","../../../../src/policies/systemErrorRetryPolicy.ts","../../../../src/policies/throttlingRetryPolicy.ts","../../../../src/policies/signingPolicy.ts","../../../../src/policies/ndJsonPolicy.ts","../../../src/serviceClient.ts","../../../../src/generated/src/storageClientContext.ts","../../../../src/api/global-utils.ts","../../../../src/util/sanitizer.ts","../../../src/operationSpec.ts","../../../src/logger.ts","../../../../src/policies/deserializationPolicy.ts","../../../src/webResource.ts","../../../../src/PageBlobRangeResponse.ts","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../../../../src/policies/keepAlivePolicy.ts","../../../../src/policies/generateClientRequestIdPolicy.ts","../../../../src/policies/logPolicy.ts","../../../../src/utils/Batch.ts","../../../../src/utils/Mutex.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../../src/generated/src/operations/blob.ts","../../../../src/context/propagation/getter.ts","../../../../src/context/propagation/NoopHttpTextPropagator.ts","../../../../src/context/propagation/setter.ts","../../../../src/metrics/NoopMeter.ts","../../../../src/metrics/NoopMeterProvider.ts","../../../../src/trace/NoopSpan.ts","../../../../src/trace/trace_flags.ts","../../../../src/trace/NoopTracer.ts","../../../../src/trace/NoopTracerProvider.ts","../../../src/context.ts","../../../../src/api/context.ts","../node_modules/buffer/index.js","../node_modules/react-dom/index.js","../node_modules/@azure/msal-browser/dist/index.es.js","../../../../src/TelemetryPolicyFactory.ts","../../../../src/policies/TelemetryPolicy.ts","../../../src/log.browser.ts","../../../../src/policies/disableResponseDecompressionPolicy.browser.ts","../../../../src/BlobDownloadResponse.browser.ts","../node_modules/events/events.js","../../../../src/BlobQueryResponse.browser.ts","../../../../src/credentials/accessTokenCache.ts","../../../../src/credentials/accessTokenRefresher.ts","../../../../src/policies/bearerTokenAuthenticationPolicy.ts","../../../../src/policies/tracingPolicy.ts","../../../../src/utils/traceParentHeader.ts","../../../src/poller.ts","../../../../src/pollers/BlobStartCopyFromUrlPoller.ts","../../../../src/generated/src/operations/container.ts","../../../src/AbortSignal.ts","../../../src/AbortController.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.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/regenerator-runtime/runtime.js","../../../../src/correlation_context/EntryValue.ts","../../../../src/metrics/Metric.ts","../../../../src/trace/SamplingResult.ts","../../../../src/trace/span_kind.ts","../../../../src/trace/status.ts","../../../src/NoopContextManager.ts","../../../../src/platform/browser/index.ts","../../../../src/platform/browser/globalThis.ts","../../../../src/api/trace.ts","../../../../src/api/metrics.ts","../../../../src/api/propagation.ts","../node_modules/@azure/core-asynciterator-polyfill/dist-esm/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../../../../storage-common/src/BufferScheduler.browser.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","../../../../src/tracers/noop/noOpSpan.ts","../../../../src/tracers/noop/noOpTracer.ts","../../../../src/utils/cache.ts","../../../src/tracerProxy.ts","../../../../src/utils/global.browser.ts","../../../../src/generated/src/operations/appendBlob.ts","../../../../src/generated/src/operations/blockBlob.ts","../../../../src/generated/src/operations/pageBlob.ts","../../../src/xhrHttpClient.ts","../../../../src/generated/src/operations/service.ts","../../../../src/BatchUtils.browser.ts","../../../../src/BatchResponseParser.ts","../../../../src/BlobBatch.ts","../../../../src/BlobBatchClient.ts","../../../../src/BlobServiceClient.ts"],"names":["access","parameterPath","mapper","serializedName","type","name","action0","required","isConstant","defaultValue","action1","action2","action3","action4","action5","action6","appendPosition","blobCacheControl","blobContentDisposition","blobContentEncoding","blobContentLanguage","blobContentLength","blobContentMD5","blobContentType","blobSequenceNumber","blobTagsString","blobType0","blobType1","blobType2","blockId","breakPeriod","cacheControl","comp0","comp1","comp10","comp11","comp12","comp13","comp14","comp15","comp16","comp17","comp18","comp19","comp2","comp20","comp21","comp22","comp3","comp4","comp5","comp6","comp7","comp8","comp9","contentDisposition","contentEncoding","contentLanguage","contentLength","contentType","copyActionAbortConstant","copyId","copySource","defaultEncryptionScope","deletedContainerName","deletedContainerVersion","deleteSnapshots","allowedValues","delimiter","directoryProperties","duration","encryptionAlgorithm","encryptionKey","encryptionKeySha256","encryptionScope","expiresOn","expiryOptions","group","ifMatch","ifModifiedSince","ifNoneMatch","ifSequenceNumberEqualTo","ifSequenceNumberLessThan","ifSequenceNumberLessThanOrEqualTo","ifTags","ifUnmodifiedSince","include0","element","collectionFormat","Csv","include1","leaseId0","leaseId1","listType","marker0","maxPageSize","constraints","InclusiveMinimum","maxSize","metadata","value","headerCollectionPrefix","multipartContentType","owner","pageWrite0","pageWrite1","pathRenameMode","posixAcl","posixPermissions","posixUmask","prefix","preventEncryptionScopeOverride","prevsnapshot","prevSnapshotUrl","proposedLeaseId0","proposedLeaseId1","range0","range1","rangeGetContentCRC64","rangeGetContentMD5","rehydratePriority","renameSource","requestId","restype0","restype1","restype2","sealBlob","sequenceNumberAction","snapshot","sourceContentCrc64","sourceContentMD5","sourceIfMatch","sourceIfModifiedSince","sourceIfNoneMatch","sourceIfTags","sourceIfUnmodifiedSince","sourceLeaseId","sourceRange0","sourceRange1","sourceUrl","tier0","tier1","timeoutInSeconds","transactionalContentCrc64","transactionalContentMD5","upn","url","skipEncoding","version","versionId","where","xMsRequiresSync","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__await","__asyncGenerator","asyncIterator","q","a","resume","r","fulfill","settle","shift","__asyncDelegator","__asyncValues","KeyInfo","className","modelProperties","startsOn","xmlName","UserDelegationKey","signedObjectId","signedTenantId","signedStartsOn","signedExpiresOn","signedService","signedVersion","StorageError","message","code","DataLakeStorageErrorError","DataLakeStorageError","dataLakeStorageErrorDetails","AccessPolicy","permissions","BlobPropertiesInternal","createdOn","lastModified","etag","contentMD5","blobType","leaseStatus","leaseState","leaseDuration","copyStatus","copyProgress","copyCompletedOn","copyStatusDescription","serverEncrypted","incrementalCopy","destinationSnapshot","deletedOn","remainingRetentionDays","accessTier","accessTierInferred","archiveStatus","customerProvidedKeySha256","accessTierChangedOn","tagCount","isSealed","lastAccessedOn","BlobTag","key","BlobTags","blobTagSet","xmlIsWrapped","xmlElementName","BlobItemInternal","deleted","isCurrentVersion","properties","blobTags","objectReplicationMetadata","BlobFlatListSegment","blobItems","ListBlobsFlatSegmentResponse","serviceEndpoint","xmlIsAttribute","containerName","marker","segment","continuationToken","BlobPrefix","BlobHierarchyListSegment","blobPrefixes","ListBlobsHierarchySegmentResponse","Block","size","BlockList","committedBlocks","uncommittedBlocks","BlockLookupList","committed","uncommitted","latest","ContainerProperties","publicAccess","hasImmutabilityPolicy","hasLegalHold","ContainerItem","DelimitedTextConfiguration","columnSeparator","fieldQuote","recordSeparator","escapeChar","headersPresent","JsonTextConfiguration","ArrowField","precision","scale","ArrowConfiguration","schema","ListContainersSegmentResponse","containerItems","CorsRule","allowedOrigins","allowedMethods","allowedHeaders","exposedHeaders","maxAgeInSeconds","FilterBlobItem","tagValue","FilterBlobSegment","blobs","GeoReplication","status","lastSyncOn","RetentionPolicy","enabled","days","Logging","deleteProperty","read","write","retentionPolicy","Metrics","includeAPIs","PageRange","start","end","ClearRange","PageList","pageRange","clearRange","QueryFormat","delimitedTextConfiguration","jsonTextConfiguration","arrowConfiguration","QuerySerialization","format","QueryRequest","queryType","expression","inputSerialization","outputSerialization","SignedIdentifier","id","accessPolicy","StaticWebsite","indexDocument","errorDocument404Path","defaultIndexDocumentPath","BlobServiceProperties","blobAnalyticsLogging","hourMetrics","minuteMetrics","cors","defaultServiceVersion","deleteRetentionPolicy","staticWebsite","BlobServiceStatistics","geoReplication","ServiceSetPropertiesHeaders","clientRequestId","errorCode","ServiceGetPropertiesHeaders","ServiceGetStatisticsHeaders","date","ServiceListContainersSegmentHeaders","ServiceGetUserDelegationKeyHeaders","ServiceGetAccountInfoHeaders","skuName","accountKind","ServiceSubmitBatchHeaders","ServiceFilterBlobsHeaders","ContainerCreateHeaders","ContainerGetPropertiesHeaders","blobPublicAccess","denyEncryptionScopeOverride","ContainerDeleteHeaders","ContainerSetMetadataHeaders","ContainerGetAccessPolicyHeaders","ContainerSetAccessPolicyHeaders","ContainerRestoreHeaders","ContainerAcquireLeaseHeaders","leaseId","ContainerReleaseLeaseHeaders","ContainerRenewLeaseHeaders","ContainerBreakLeaseHeaders","leaseTime","ContainerChangeLeaseHeaders","ContainerListBlobFlatSegmentHeaders","ContainerListBlobHierarchySegmentHeaders","ContainerGetAccountInfoHeaders","BlobDownloadHeaders","objectReplicationPolicyId","objectReplicationRules","contentRange","acceptRanges","blobCommittedBlockCount","isServerEncrypted","lastAccessed","contentCrc64","BlobGetPropertiesHeaders","isIncrementalCopy","BlobDeleteHeaders","BlobSetAccessControlHeaders","BlobGetAccessControlHeaders","xMsOwner","xMsGroup","xMsPermissions","xMsAcl","BlobRenameHeaders","PageBlobCreateHeaders","AppendBlobCreateHeaders","BlockBlobUploadHeaders","BlobUndeleteHeaders","BlobSetExpiryHeaders","BlobSetHTTPHeadersHeaders","BlobSetMetadataHeaders","BlobAcquireLeaseHeaders","BlobReleaseLeaseHeaders","BlobRenewLeaseHeaders","BlobChangeLeaseHeaders","BlobBreakLeaseHeaders","BlobCreateSnapshotHeaders","BlobStartCopyFromURLHeaders","BlobCopyFromURLHeaders","xMsContentCrc64","BlobAbortCopyFromURLHeaders","BlobSetTierHeaders","BlobGetAccountInfoHeaders","BlockBlobStageBlockHeaders","BlockBlobStageBlockFromURLHeaders","BlockBlobCommitBlockListHeaders","BlockBlobGetBlockListHeaders","PageBlobUploadPagesHeaders","PageBlobClearPagesHeaders","PageBlobUploadPagesFromURLHeaders","PageBlobGetPageRangesHeaders","PageBlobGetPageRangesDiffHeaders","PageBlobResizeHeaders","PageBlobUpdateSequenceNumberHeaders","PageBlobCopyIncrementalHeaders","AppendBlobAppendBlockHeaders","blobAppendOffset","AppendBlobAppendBlockFromUrlHeaders","AppendBlobSealHeaders","BlobQueryHeaders","copyCompletionTime","BlobGetTagsHeaders","BlobSetTagsHeaders","__spreadArrays","il","k","j","jl","__exportStar","SDK_VERSION","BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES","BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES","BLOCK_BLOB_MAX_BLOCKS","DEFAULT_BLOCK_BUFFER_SIZE_BYTES","DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES","DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS","StorageOAuthScopes","URLConstants","Parameters","FORCE_BROWSER_NO_CACHE","SIGNATURE","SNAPSHOT","VERSIONID","TIMEOUT","HTTPURLConnection","HTTP_ACCEPTED","HTTP_CONFLICT","HTTP_NOT_FOUND","HTTP_PRECON_FAILED","HTTP_RANGE_NOT_SATISFIABLE","HeaderConstants","AUTHORIZATION","AUTHORIZATION_SCHEME","CONTENT_ENCODING","CONTENT_ID","CONTENT_LANGUAGE","CONTENT_LENGTH","CONTENT_MD5","CONTENT_TRANSFER_ENCODING","CONTENT_TYPE","COOKIE","DATE","IF_MATCH","IF_MODIFIED_SINCE","IF_NONE_MATCH","IF_UNMODIFIED_SINCE","PREFIX_FOR_STORAGE","RANGE","USER_AGENT","X_MS_CLIENT_REQUEST_ID","X_MS_COPY_SOURCE","X_MS_DATE","X_MS_ERROR_CODE","X_MS_VERSION","ETagNone","ETagAny","BATCH_MAX_REQUEST","HTTP_LINE_ENDING","HTTP_VERSION_1_1","EncryptionAlgorithmAES25","DevelopmentConnectionString","StorageBlobLoggingAllowedHeaderNames","StorageBlobLoggingAllowedQueryParameters","createSpan","operationName","tracingOptions","tracer","spanOptions","kind","INTERNAL","span","startSpan","setAttribute","newOptions","isRecording","parent","context","attributes","escapeURLPath","urlParsed","parse","path","getPath","encodeURIComponent","replace","setPath","toString","getValueInConnString","connectionString","argument","split","trim","startsWith","match","extractConnectionStringParts","proxyUri","search","getProxyUriFromDevConnString","blobEndpoint","endsWith","slice","defaultEndpointsProtocol","accountName","accountKey","Buffer","from","endpointSuffix","protocol","toLowerCase","Error","accountSas","getAccountNameFromUrl","appendToURLPath","setURLParameter","setQueryParameter","setURLHost","host","setHost","getURLPath","getURLScheme","getScheme","getURLPathAndQuery","pathString","RangeError","queryString","getQuery","truncatedISO8061Date","withMilliseconds","dateString","toISOString","substring","generateBlockID","blockIDPrefix","blockIndex","maxSourceStringLength","content","res","currentString","targetLength","padString","String","padStart","repeat","btoa","delay","timeInMs","aborter","abortError","timeout","abortHandler","undefined","clearTimeout","setTimeout","removeEventListener","addEventListener","iEqual","str1","str2","toLocaleLowerCase","parsedUrl","getHost","isIpEndpointStyle","error","getPort","test","toBlobTagsString","tags","tagPairs","join","toBlobTags","toTags","blobTag","toQuerySerialization","textConfiguration","escapeCharacter","hasHeaders","parseObjectReplicationRecord","objectReplicationRecord","orProperties","ids","rule","ruleId","replicationStatus","policyIndex","findIndex","policy","policyId","rules","validUuidRegex","isNode","process","versions","node","isValidUuid","uuid","generateUuid","prepareXMLRootList","obj","elementName","xmlNamespaceKey","xmlNamespace","isArray","$","validateISODuration","isDuration","replaceAll","searchValue","replaceValue","isPrimitiveType","StorageRetryPolicyType","nextPolicy","options","sendRequest","request","method","toUpperCase","Date","getTime","headers","remove","_nextPolicy","DEFAULT_RETRY_OPTIONS","maxRetryDelayInMs","maxTries","retryDelayInMs","retryPolicyType","EXPONENTIAL","secondaryHost","tryTimeoutInMs","RETRY_ABORT_ERROR","retryOptions","Math","floor","min","attemptSendRequest","secondaryHas404","attempt","newRequest","clone","isPrimaryRetry","info","response","shouldRetry","abortSignal","err","retriableError","includes","statusCode","delayTimeInMs","pow","FIXED","random","_defaultHttpClient","factories","httpClient","toServiceClientOptions","requestPolicyFactories","newPipeline","credential","pipelineOptions","AnonymousCredential","telemetryPolicy","TelemetryPolicyFactory","userAgentOptions","tracingPolicy","userAgent","telemetryString","keepAlivePolicy","keepAliveOptions","generateClientRequestIdPolicy","deserializationPolicy","logPolicy","logger","allowedHeaderNames","allowedQueryParameters","proxyOptions","bearerTokenAuthenticationPolicy","HttpPipelineLogLevel","_options","shouldLog","logLevel","log","_logger","OFF","minimumLogLevel","signRequest","XML_ATTRKEY","XML_CHARKEY","__read","ar","__spread","concat","BlockBlobTier","PremiumPageBlobTier","toAccessTier","tier","ensureCpkIfSpecified","cpk","isHttps","_rawQuery","any","keys","set","parameterName","parameterValue","newValue","get","parameterStrings","parameterValueElement","text","URLQuery","currentState","currentCharacter","setScheme","scheme","_scheme","_host","setPort","port","_port","schemeIndex","indexOf","schemeStart","lastIndexOf","substr","_path","appendPath","currentPath","setQuery","query","_query","queryParameterName","queryParameterValue","getQueryParameterValue","startState","tokenizer","URLTokenizer","token","current","tokenPath","URLBuilder","URLToken","_text","state","_textLength","_currentState","_currentIndex","_currentToken","hasCurrentCharacter","readWhile","character","characterCode","charCodeAt","isAlphaNumericCharacter","readWhileLetterOrDigit","nextScheme","schemeOrHost","readUntilCharacter","getCurrentCharacter","peekCharacters","nextSchemeOrHost","nextCharacter","nextHost","nextPort","nextPath","readRemaining","nextQuery","charactersToPeek","endIndex","condition","terminatingCharacters","module","exports","require","getHeaderKey","headerName","isHttpHeadersLike","object","rawHeaders","contains","headersArray","headerValues","headerNames","toJson","_headersMap","headerValue","header","headerKey","JSON","stringify","HttpHeaders","rangeToString","iRange","offset","count","encodeByteArray","str","fromCharCode","decodeString","byteString","atob","arr","Uint8Array","modelMappers","isXML","validateConstraints","objectName","failValidation","constraintName","constraintValue","ExclusiveMaximum","ExclusiveMinimum","InclusiveMaximum","MaxItems","MaxLength","MinItems","MinLength","MultipleOf","Pattern","UniqueItems","pattern","RegExp","some","item","serialize","updatedOptions","rootName","includeRoot","xmlCharKey","payload","mapperType","nullable","typeName","valueOf","utils","objectType","ArrayBuffer","isView","Blob","serializeBasicTypes","serializeEnumType","isNaN","toUTCString","dateToUnixTime","serializeDateTypes","returnValue","serializeByteArrayType","buffer","ch","len","trimEnd","bufferToBase64Url","serializeBase64UrlType","serializer","isXml","elementType","tempArray","serializedValue","xmlnsKey","xmlNamespacePrefix","serializeSequenceType","Boolean","valueType","tempDictionary","getXmlObjectValue","serializeDictionaryType","getPolymorphicDiscriminatorRecursively","getPolymorphicMapper","modelProps","resolveModelProperties","propertyMapper","readOnly","propName","parentObject","paths","splitSerializeName","pathName","propertyObjectName","toSerialize","polymorphicDiscriminator","clientName","additionalPropertiesMapper","additionalProperties","modelMapper","resolveReferencedMapper","resolveAdditionalProperties","propNames","clientPropName","every","pn","serializeCompositeType","deserialize","responseBody","instance","handledPropertyNames","dictionary","propertyName","wrapped","elementList","property","propertyInstance","isAdditionalProperty","responsePropName","isSpecialXmlProperty","deserializeCompositeType","parseFloat","unixTimeToDate","base64UrlToByteArray","deserializeSequenceType","deserializeDictionaryType","prop","classes","partialclass","charAt","polymorphicPropertyName","discriminatorName","discriminatorValue","uberParent","indexDiscriminator","polymorphicMapper","discriminators","getPolymorphicDiscriminatorSafely","MapperType","strEnum","custom","errorSanitizer","RestError","sanitize","REQUEST_SEND_ERROR","PARSE_ERROR","Constants","coreHttpVersion","HTTP","HTTPS","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","ALL_PROXY","HttpConstants","HttpVerbs","PUT","GET","DELETE","POST","MERGE","HEAD","PATCH","StatusCodes","TooManyRequests","RETRY_AFTER","QueryCollectionFormat","proxyNotSupportedInBrowser","getDefaultProxySettings","_proxyUrl","proxyPolicy","_proxySettings","_request","urlOrConnectionString","credentialOrPipelineOrContainerName","blobNameOrOptions","pipeline","blobName","extractedCreds","sharedKeyCredential","getBlobAndContainerNamesFromUrl","_name","_containerName","blobContext","storageClientContext","withSnapshot","BlobClient","withVersion","getAppendBlobClient","AppendBlobClient","getBlockBlobClient","BlockBlobClient","getPageBlobClient","PageBlobClient","download","conditions","customerProvidedKey","leaseAccessConditions","modifiedAccessConditions","tagConditions","onDownloadProgress","onProgress","range","rangeGetContentCrc64","cpkInfo","wrappedRes","_response","objectReplicationDestinationPolicyId","objectReplicationSourceProperties","maxRetryRequests","readableStreamBody","setStatus","UNKNOWN","exists","getProperties","NOT_FOUND","delete","deleteMethod","deleteIfExists","succeeded","details","parsedHeaders","undelete","setHTTPHeaders","blobHTTPHeaders","setMetadata","setTags","getTags","getBlobLeaseClient","proposeLeaseId","BlobLeaseClient","createSnapshot","beginCopyFromURL","client","abortCopyFromURL","args","startCopyFromURL","poller","blobClient","intervalInMs","resumeFrom","startCopyFromURLOptions","poll","syncCopyFromURL","sourceConditions","copyFromURL","sourceModifiedAccessConditions","setAccessTier","setTier","downloadToBuffer","param1","param2","param3","param4","blockSize","alloc","batch","concurrency","off","addOperation","chunkEnd","maxRetryRequestsPerBlock","stream","loadedBytes","do","downloadToFile","filePath","blobDownloadStream","pathComponents","decodeURIComponent","appendBlobContext","createIfNotExists","ALREADY_EXISTS","seal","appendPositionAccessConditions","appendBlock","onUploadProgress","appendBlockFromURL","sourceURL","sourceOffset","appendBlockFromUrl","sourceRange","blockBlobContext","_blobContext","queryRequest","inputTextConfiguration","outputTextConfiguration","onError","upload","stageBlock","stageBlockFromURL","commitBlockList","blocks","getBlockList","uploadData","data","byteOffset","byteLength","uploadSeekableInternal","uploadBrowserData","browserData","bodyFactory","maxSingleShotSize","ceil","blockID","uploadFile","autoClose","Infinity","uploadStream","bufferSize","maxConcurrency","pageBlobContext","uploadPages","sequenceNumberAccessConditions","uploadPagesFromURL","destOffset","clearPages","getPageRanges","getPageRangesDiff","prevSnapshot","getPageRangesDiffForManagedDisks","resize","updateSequenceNumber","sequenceNumber","startCopyIncremental","copyIncremental","clientContext","_url","ContainerClient","_isContainer","_containerOrBlobOperation","_leaseId","acquireLease","proposedLeaseId","changeLease","releaseLease","renewLease","breakLease","operationOptions","getContainerNameFromUrl","containerContext","getBlobClient","getAccessPolicy","signedIdentifiers","identifier","setAccessPolicy","containerAcl","acl","uploadBlockBlob","blockBlobClient","deleteBlob","listBlobFlatSegment","map","blobItemInteral","listBlobHierarchySegment","listSegments","listBlobsFlatSegmentResponse","listItems","listBlobsFlat","include","includeCopy","includeDeleted","includeMetadata","includeSnapshots","includeVersions","includeUncommitedBlobs","includeTags","iter","byPage","settings","listHierarchySegments","listBlobsHierarchySegmentResponse","listItemsByHierarchy","blob","listBlobsByHierarchy","blobToString","fileReader","FileReader","onloadend","ev","target","onerror","readAsText","streamToBuffer","readStreamToLocalFile","fsStat","fsCreateReadStream","isTokenCredential","getToken","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","array","noop","nextTick","title","browser","env","argv","on","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","asyncGeneratorStep","gen","_next","_throw","arg","_asyncToGenerator","fn","self","doc","document","implementation","createDocument","parser","DOMParser","parseXML","opts","dom","parseFromString","errorNS","parserErrors","getElementsByTagNameNS","innerHTML","throwIfError","domToObject","childNodes","getElementsByTagName","namespaceURI","ignored","childNodeCount","firstChildNode","onlyChildTextValue","nodeType","Node","TEXT_NODE","nodeValue","elementWithAttributes","isElement","hasAttributes","asElementWithAttributes","attr","nodeName","child","childObject","XMLSerializer","stringifyXML","buildNode","serializeToString","buildAttributes","attrs","createAttribute","elem","createElement","textContent","setNamedItem","appendChild","factory","requestContentType","getDefaultUserAgentKey","getDefaultUserAgentHeaderName","getDefaultUserAgentValue","telemetryInfo","keySeparator","valueSeparator","runtimeInfo","platformSpecificData","navigator","window","oscpu","platform","getPlatformSpecificData","userAgentPolicy","userAgentData","addUserAgentHeader","getPathStringFromParameter","parameter","getPathStringFromParameterPath","DEFAULT_CLIENT_RETRY_INTERVAL","DEFAULT_CLIENT_MAX_RETRY_INTERVAL","isNumber","retryLimit","predicate","retryData","retryCount","updateRetryData","retryInterval","innerError","incrementDelta","minRetryInterval","maxRetryInterval","RetryMode","exponentialRetryPolicy","retry","catch","requestError","shouldPolicyRetry","isAborted","aborted","allowedRedirect","redirectPolicy","maximumRetries","maxRetries","handleRedirect","currentRetries","locationHeader","builder","_retryTimeout","rpName","matchRes","checkRPNotRegisteredError","bodyAsText","urlPrefix","extractSubscriptionUrl","provider","originalRequest","postUrl","getUrl","reqOptions","getRequestEssentials","getRegistrationStatus","registerRP","registrationStatus","registerIfNeeded","reuseUrlToo","parsedBody","registrationState","systemErrorRetryPolicy","operationResponse","throttlingRetryPolicy","_handleResponse","_defaultResponseHandler","httpRequest","httpResponse","retryAfterHeader","delayInMs","ThrottlingRetryPolicy","parseRetryAfterHeader","retryAfterInSeconds","Number","parseDateRetryAfterHeader","now","diff","authenticationProvider","nextRequest","credentials","_withCredentials","withCredentials","_httpClient","_requestPolicyOptions","httpPipelineLogger","authPolicyFactory","bearerTokenPolicyFactory","serviceClient","baseUri","wrappedPolicyFactory","generateClientRequestIdHeader","clientRequestIdHeaderName","userAgentHeaderName","getValueOrFunctionResult","userAgentHeaderValue","retryTimeout","rpRegistrationPolicy","rpRegistrationRetryTimeout","noRetryPolicy","deserializationContentTypes","proxySettings","createDefaultRequestPolicyFactories","newRequestPolicyFactories","_requestPolicyFactories","validateRequestProperties","prepare","httpPipeline","sendOperationRequest","operationArguments","operationSpec","callback","serializerOptions","baseUrl","httpMethod","requestUrl","urlParameters","urlParameter","urlParameterValue","getOperationArgumentValueFromParameter","queryParameters","queryParameter","Multi","index","Ssv","Tsv","headerParameters","headerParameter","customHeaders","customHeaderName","shouldDeserialize","requestBody","bodyMapper","requestBodyParameterPathString","isStream","Stream","getXmlValueWithNamespace","Sequence","mediaType","formDataParameters","formData","formDataParameter","formDataParameterValue","formDataParameterPropertyName","serializeRequestBody","streamResponseBody","rawResponse","sendRequestError","flattenResponse","responses","cb","defaultValueCreator","getOperationArgumentValueFromParameterPath","parameterMapper","propertySearchResult","getPropertyFromParameterPath","propertyFound","useDefaultValue","propertyValue","parameterPathString","propertyPath","propertyPathString","parameterPathPart","responseSpec","addOperationResponse","defineProperty","blobBody","isPageableResponse","arrayResponse","defaultUserAgent","packageName","RedactedString","defaultAllowedHeaderNames","defaultAllowedQueryParameters","Set","replacer","bind","sanitizeHeaders","sanitizeUrl","sanitizeQuery","sanitizeObject","allowedKeys","accessor","sanitized","has","urlBuilder","isStreamOperation","parsingOptions","DeserializationPolicy","defaultJsonContentTypes","defaultXmlContentTypes","DefaultDeserializationOptions","expectedContentTypes","json","xml","requestPolicyOptions","jsonContentTypes","xmlContentTypes","errorHandler","msg","errCode","contentComponents","component","parsedResponse","shouldDeserializeResponse","operationResponseGetter","getOperationResponse","isSuccessByStatus","expectedStatusCodes","isOperationSpecEmpty","shouldReturnResponse","isError","errorResponseSpec","default","initialErrorMessage","defaultBodyMapper","defaultHeadersMapper","headersMapper","parsedError","valueToDeserialize","internalError","defaultError","handleErrorResponse","deserializeResponseBody","isWebResourceLike","keepAlive","decompressResponse","pathTemplate","validMethods","segments","forEach","pathParamName","pathParam","stringifiedPathParameters","skipUrlEncoding","queryParams","queryParamName","queryParam","disableClientRequestId","bodyIsStream","serializationMapper","mappers","disableJsonStringifyOnBody","WebResource","rangeResponseFromModel","x","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","source","symbols","to","Function","DefaultKeepAliveOptions","enable","KeepAlivePolicy","requestIdHeaderName","GenerateClientRequestIdPolicy","_requestIdHeaderName","loggingOptions","LogPolicy","sanitizer","logRequest","logResponse","BatchStates","actives","completed","operations","Good","emitter","operation","parallelExecute","nextOperation","MutexLockStatus","lock","UNLOCKED","LOCKED","onUnlockEvent","unlock","emitUnlockEvent","handler","setImmediate","_arrayLikeToArray","arr2","_slicedToArray","_arr","_n","_d","_e","_s","_i","minLen","downloadOperationSpec","getPropertiesOperationSpec","deleteMethodOperationSpec","setAccessControl","setAccessControlOperationSpec","getAccessControl","getAccessControlOperationSpec","rename","renameOperationSpec","undeleteOperationSpec","setExpiry","setExpiryOperationSpec","setHTTPHeadersOperationSpec","setMetadataOperationSpec","acquireLeaseOperationSpec","releaseLeaseOperationSpec","renewLeaseOperationSpec","changeLeaseOperationSpec","breakLeaseOperationSpec","createSnapshotOperationSpec","startCopyFromURLOperationSpec","copyFromURLOperationSpec","abortCopyFromURLOperationSpec","setTierOperationSpec","getAccountInfo","getAccountInfoOperationSpec","queryOperationSpec","getTagsOperationSpec","setTagsOperationSpec","200","206","202","201","204","defaultGetter","NoopHttpTextPropagator","NoopMeter","NoopMetric","NoopMeter_1","NoopMeterProvider","NoopSpan","NoopTracer","withSpan","NoopTracerProvider","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","isBuffer","checked","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","list","pos","swap16","swap32","swap64","equals","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","extendStatics$1","__extends$1","__assign$1","__awaiter$1","__generator$1","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","AADServerParamKeys","ClaimsRequestKeys","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","SSOTypes","PromptValue","LOGIN","SELECT_ACCOUNT","CONSENT","NONE","SID","LOGIN_HINT","ResponseMode","GrantType","CacheAccountType","Separators","CredentialType","CacheSchemaType","CacheType","CodeChallengeMethodValues","PLAIN","S256","AuthorityMetadataSource","APP_METADATA","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","AuthenticationScheme","SERVER_TELEM_CONSTANTS","SCHEMA_VERSION","MAX_HEADER_BYTES","CACHE_KEY","CATEGORY_SEPARATOR","VALUE_SEPARATOR","OVERFLOW_TRUE","OVERFLOW_FALSE","UNKNOWN_ERROR","PasswordGrantConstants","ThrottlingConstants","Errors","LogLevel","AuthErrorMessage","desc","AuthError","_super","errorMessage","suberror","_this","errorString","subError","createUnexpectedError","errDesc","DEFAULT_CRYPTO_IMPLEMENTATION","createNewGuid","base64Decode","base64Encode","generatePkceCodes","_a","getPublicKeyThumbprint","signJwt","ClientAuthErrorMessage","ClientAuthError","createClientInfoDecodingError","caughtError","createClientInfoEmptyError","createTokenParsingError","caughtExtractionError","createTokenNullOrEmptyError","invalidRawTokenString","createEndpointDiscoveryIncompleteError","errDetail","createNetworkError","endpoint","createUnableToGetOpenidConfigError","createHashNotDeserializedError","hashParamObj","createInvalidStateError","invalidState","createStateMismatchError","createStateNotFoundError","missingState","createNonceMismatchError","createNonceNotFoundError","missingNonce","createNoTokensFoundError","createMultipleMatchingTokensInCacheError","createMultipleMatchingAccountsInCacheError","createMultipleMatchingAppMetadataInCacheError","createTokenRequestCannotBeMadeError","createAppendEmptyScopeToSetError","givenScope","createRemoveEmptyScopeFromSetError","createAppendScopeSetError","appendError","createEmptyInputScopeSetError","givenScopeSet","createDeviceCodeCancelledError","createDeviceCodeExpiredError","createNoAccountInSilentRequestError","createNullOrUndefinedCacheRecord","createInvalidCacheEnvironmentError","createNoAccountFoundError","createCachePluginError","createNoCryptoObjectError","createInvalidCacheTypeError","createUnexpectedAccountTypeError","createUnexpectedCredentialTypeError","createInvalidAssertionError","createInvalidCredentialError","createRefreshRequiredError","createUserTimeoutReachedError","createTokenClaimsRequiredError","createNoAuthCodeInServerResponseError","StringUtils","decodeAuthToken","authToken","isEmpty","matches","exec","JWSPayload","JWSSig","queryStringToObject","pl","decode","trimArrayEntries","entry","removeEmptyStringsFromArray","filter","jsonParseHelper","matchPattern","input","AuthorityType","Logger","loggerOptions","packageVersion","level","Info","localCallback","loggerCallback","piiLoggingEnabled","logMessage","containsPii","timestamp","correlationId","executeCallback","errorPii","warning","Warning","warningPii","infoPii","verbose","Verbose","verbosePii","isPiiLoggingEnabled","CredentialEntity","generateAccountId","generateAccountIdForCacheKey","homeAccountId","environment","generateCredentialId","generateCredentialIdForCacheKey","credentialType","clientId","realm","familyId","generateTarget","generateTargetForCacheKey","generateCredentialKey","generateCredentialCacheKey","generateType","ID_TOKEN","ACCESS_TOKEN","REFRESH_TOKEN","getCredentialType","ACCESS_TOKEN_WITH_AUTH_SCHEME","CACHE_KEY_SEPARATOR","scopes","ClientConfigurationErrorMessage","ClientConfigurationError","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createClaimsRequestParsingError","claimsRequestParseError","createInsecureAuthorityUriError","urlString","createUrlParseError","urlParseError","createUrlEmptyError","createScopesNonArrayError","inputScopes","createEmptyScopesArrayError","createClientIdSingleScopeError","createInvalidPromptError","promptValue","createInvalidClaimsRequestError","createEmptyLogoutRequestError","createEmptyTokenRequestError","createInvalidCodeChallengeMethodError","createInvalidCodeChallengeParamsError","createInvalidCloudDiscoveryMetadataError","createInvalidAuthorityMetadataError","createUntrustedAuthorityError","ScopeSet","scopeArr","filteredInput","validateInputScopes","scope","add","inputScopeString","containsScope","lowerCaseScopesSet","printScopesLowerCase","containsScopeSet","scopeSet","asArray","containsOnlyOIDCScopes","defaultScopeCount","defaultScope","appendScope","newScope","appendScopes","newScopes","removeScope","removeOIDCScopes","unionScopeSets","otherScopes","unionScopes","intersectingScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","printScopes","buildClientInfo","rawClientInfo","crypto","decodedClientInfo","AccountEntity","generateAccountKey","generateAccountCacheKey","tenantId","username","localAccountId","authorityType","ADFS_ACCOUNT_TYPE","ADFS","MSAV1_ACCOUNT_TYPE","MSA","MSSTS_ACCOUNT_TYPE","MSSTS","GENERIC_ACCOUNT_TYPE","GENERIC","idTokenClaims","accountInterface","createAccount","clientInfo","authority","idToken","oboAssertion","cloudGraphHostName","msGraphHost","_b","_c","_f","account","getPreferredCache","claims","tid","oid","preferred_username","emails","createGenericAccount","Adfs","generateHomeAccountId","serverClientInfo","authType","cryptoObj","accountId","uid","utid","CLIENT_INFO_SEPARATOR","isAccountEntity","entity","accountInfoIsEqual","accountA","accountB","AuthToken","rawToken","extractTokenClaims","encodedToken","decodedToken","base64TokenPayload","base64Decoded","CacheManager","cryptoImpl","getAllAccounts","currentAccounts","getAccountsFilteredBy","accountValues","accountInfo","readIdTokenFromCache","secret","saveCacheRecord","cacheRecord","setAccount","setIdTokenCredential","accessToken","saveAccessToken","refreshToken","setRefreshTokenCredential","appMetadata","setAppMetadata","currentTokenCache","getCredentialsFilteredBy","currentScopes","currentAccessTokens","accessTokens","tokenEntity","removeCredential","setAccessTokenCredential","accountFilter","getAccountsFilteredByInternal","allCacheKeys","getKeys","matchingAccounts","cacheKey","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","getCredentialsFilteredByInternal","matchingCredentials","idTokens","refreshTokens","credType","getSpecificCredential","matchOboAssertion","matchCredentialType","matchClientId","matchFamilyId","matchTarget","getAppMetadataFilteredBy","getAppMetadataFilteredByInternal","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataByAlias","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","aliases","removeAllAccounts","removeAccount","removeAccountContext","removeItem","ACCOUNT","cacheEntity","CREDENTIAL","removeAppMetadata","readCacheRecord","authScheme","cachedAccount","readAccountFromCache","cachedIdToken","cachedAccessToken","readAccessTokenFromCache","cachedRefreshToken","readRefreshTokenFromCache","cachedAppMetadata","readAppMetadataFromCache","idTokenFilter","credentialCache","numIdTokens","POP","accessTokenFilter","numAccessTokens","familyRT","refreshTokenFilter","appMetadataFilter","appMetadataEntries","numAppMetadata","isAppMetadataFOCI","cloudMetadata","entityScopeSet","requestTargetScopeSet","generateAuthorityMetadataCacheKey","getIdTokenCredential","getAccessTokenCredential","getRefreshTokenCredential","DefaultStorageClass","setServerTelemetry","getServerTelemetry","setAuthorityMetadata","setThrottlingCache","getThrottlingCache","containsKey","clear","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","sendGetRequestAsync","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","cpu","os","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","KeyLocation","ServerError","ThrottlingUtils","generateThrottlingStorageKey","thumbprint","preProcess","cacheManager","throttleTime","THROTTLING","errorCodes","postProcess","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","error_codes","error_description","currentSeconds","removeThrottle","homeAccountIdentifier","NetworkManager","networkClient","sendPostRequest","tokenEndpoint","e_1","BaseClient","configuration","config","authOptions","userAuthOptions","userSystemOptions","systemOptions","userLoggerOption","storageImplementation","storageInterface","networkImplementation","networkInterface","cryptoImplementation","cryptoInterface","clientCredentials","libraryInfo","serverTelemetryManager","persistencePlugin","serializableCache","clientCapabilities","buildClientConfiguration","cryptoUtils","networkManager","createDefaultTokenRequestHeaders","createDefaultLibraryHeaders","X_MS_LIB_CAPABILITY","X_MS_LIB_CAPABILITY_VALUE","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","X_CLIENT_CPU","executePostToTokenEndpoint","clearTelemetryCache","updateAuthority","updatedAuthority","discoveryComplete","RequestValidator","validateRedirectUri","redirectUri","validatePrompt","prompt","validateClaims","validateCodeChallengeParams","codeChallenge","codeChallengeMethod","validateCodeChallengeMethod","sanitizeEQParams","eQParams","RequestParameterBuilder","parameters","Map","addResponseTypeCode","RESPONSE_TYPE","addResponseMode","responseMode","RESPONSE_MODE","QUERY","addScopes","addOidcScopes","requestScopes","SCOPE","addClientId","CLIENT_ID","addRedirectUri","REDIRECT_URI","addPostLogoutRedirectUri","POST_LOGOUT_URI","addIdTokenHint","idTokenHint","ID_TOKEN_HINT","addDomainHint","domainHint","DOMAIN_HINT","addLoginHint","loginHint","addSid","sid","addClaims","mergedClaims","addClientCapabilitiesToClaims","CLAIMS","addCorrelationId","CLIENT_REQUEST_ID","addLibraryInfo","addPrompt","PROMPT","addState","STATE","addNonce","nonce","NONCE","addCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","addAuthorizationCode","CODE","addDeviceCode","DEVICE_CODE","addRefreshToken","addCodeVerifier","codeVerifier","CODE_VERIFIER","addClientSecret","CLIENT_SECRET","addClientAssertion","CLIENT_ASSERTION","addClientAssertionType","clientAssertionType","CLIENT_ASSERTION_TYPE","addOboAssertion","OBO_ASSERTION","addRequestTokenUse","tokenUse","REQUESTED_TOKEN_USE","addGrantType","grantType","GRANT_TYPE","addClientInfo","addExtraQueryParameters","eQparams","XMS_CC","values","addUsername","addPassword","password","addPopToken","cnfString","TOKEN_TYPE","REQ_CNF","createQueryString","queryParameterArray","IdTokenEntity","createIdTokenEntity","idTokenEntity","isIdTokenEntity","TimeUtils","nowSeconds","round","isTokenExpired","expirationSec","AccessTokenEntity","createAccessTokenEntity","extExpiresOn","refreshOn","tokenType","atEntity","currentTime","cachedAt","extendedExpiresOn","BEARER","tokenClaims","cnf","kid","keyId","isAccessTokenEntity","RefreshTokenEntity","createRefreshTokenEntity","rtEntity","isRefreshTokenEntity","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthError","isInteractionRequiredError","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","CacheRecord","accountEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","ProtocolUtils","setRequestState","userState","meta","libraryState","generateLibraryState","stateObj","stateString","parseRequestState","splitState","libraryStateString","libraryStateObj","userRequestState","UrlString","_urlString","getHash","canonicalizeUri","enumerable","validateAsUri","components","getUrlComponents","HostNameAndPort","PathSegments","Protocol","urlRemoveQueryStringParameter","regex","removeHashFromUrl","replaceTenantPath","urlObject","pathArray","COMMON","ORGANIZATIONS","constructAuthorityUriFromObject","parseHash","regEx","urlComponents","AbsolutePath","QueryString","pathSegments","getDomainFromUrl","getAbsoluteUrl","relativeUrl","baseComponents","hashString","hashIndex1","hashIndex2","getDeserializedHash","hash","parsedHash","deserializedHash","hashContainsKnownProperties","ProtocolMode","PopTokenGenerator","generateCnf","kidThumbprint","reqCnf","xms_ksl","SW","signPopToken","resourceRequestMethod","resourceRequestUri","shrClaims","resourceUrlString","resourceUrlComponents","at","ts","u","client_claims","AppMetadataEntity","generateAppMetadataKey","generateAppMetadataCacheKey","createAppMetadataEntity","isAppMetadataEntity","TokenCacheContext","tokenCache","hasChanged","cache","ResponseHandler","cacheStorage","validateServerAuthorizationCodeResponse","serverResponseHash","cachedState","client_info","validateTokenResponse","serverResponse","errString","correlation_id","trace_id","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","idTokenObj","requestStateObj","cacheContext","id_token","generateCacheRecord","beforeCacheAccess","generateAuthenticationResult","afterCacheAccess","generateAccountEntity","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","tenant","token_type","refresh_token","foci","cloud_graph_host_name","msGraphhost","msgraph_host","protocolMode","fromTokenCache","requestState","canonicalAuthority","uniqueId","fromCache","AuthorizationCodeClient","getAuthCodeUrl","createAuthCodeUrlQueryString","authorizationEndpoint","acquireToken","responseHandler","executeTokenRequest","handleFragmentResponse","hashFragment","hashUrlString","serverParams","getLogoutUri","logoutRequest","createLogoutUrlQueryString","endSessionEndpoint","createTokenRequestBody","createTokenQueryParameters","parameterBuilder","tokenQueryParameters","assertion","assertionType","AUTHORIZATION_CODE_GRANT","authenticationScheme","extraScopesToConsent","accountSid","extractAccountSid","extraQueryParameters","postLogoutRedirectUri","RefreshTokenClient","DeviceCodeClient","deviceCodeResponse","getDeviceCode","deviceCodeCallback","acquireTokenWithDeviceCode","executePostRequestToDeviceCodeEndpoint","deviceCodeEndpoint","userCode","deviceCode","verificationUri","interval","user_code","device_code","verification_uri","userSpecifiedTimeout","deviceCodeExpirationTime","pollingIntervalMilli","intervalId","setInterval","error_1","cancel","clearInterval","requestParameters","DEVICE_CODE_GRANT","acquireTokenByRefreshToken","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","acquireTokenWithCachedRefreshToken","refreshTokenRequest","popTokenGenerator","REFRESH_TOKEN_GRANT","SilentFlowClient","ClientCredentialClient","cachedAuthenticationResult","skipCache","getCachedAuthenticationResult","canonicalAuthorityUrlComponents","CLIENT_CREDENTIALS_GRANT","OnBehalfOfClient","idTokenObject","JWT_BEARER","ON_BEHALF_OF","acquireCachedToken","forceRefresh","incrementCacheHits","generateResultFromCacheRecord","UsernamePasswordClient","RESOURCE_OWNER_PASSWORD_GRANT","isOpenIdConfigResponse","AuthorityMetadataEntity","expiresAt","updateCloudDiscoveryMetadata","fromNetwork","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","updateCanonicalAuthority","canonical_authority","resetExpiresAt","isExpired","isAuthorityMetadataEntity","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","ApiId","InteractionType","InteractionStatus","Authority","authorityOptions","_canonicalAuthority","Default","_canonicalAuthorityUrlComponents","replacePath","replaceTenant","cachedAuthorityParts","currentPart","cachedPart","OIDC","resolveEndpointsAsync","metadataEntity","cloudDiscoverySource","endpointSource","hostnameAndPort","CACHE","getEndpointMetadataFromConfig","CONFIG","isAuthoritySameType","getEndpointMetadataFromNetwork","NETWORK","defaultOpenIdConfigurationEndpoint","authorityMetadata","getCloudDiscoveryMetadataFromConfig","getCloudDiscoveryMetadataFromNetwork","cloudDiscoveryMetadata","getCloudDiscoveryMetadataFromNetworkResponse","isInKnownAuthorities","createCloudDiscoveryMetadataFromHost","instanceDiscoveryEndpoint","isCloudInstanceDiscoveryResponse","knownAuthorities","isAlias","AuthorityFactory","createDiscoveredInstance","authorityUri","acquireTokenAuthority","createInstance","authorityUrl","ServerTelemetryEntity","failedRequests","errors","cacheHits","isServerTelemetryEntity","validateKey","validateEntity","ThrottlingEntity","isThrottlingEntity","StubbedNetworkModule","ServerTelemetryManager","telemetryRequest","apiId","wrapperSKU","wrapperVer","telemetryCacheKey","forceRefreshInt","platformFields","lastRequests","getLastRequests","maxErrors","maxErrorsToSend","errorCount","cacheFailedRequest","initialValue","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","BrowserConstants","WrapperSKU","DEFAULT_REQUEST","KEY_FORMAT_JWK","MathUtils","decimalToHex","num","hex","GuidGenerator","generateGuid","getRandomValues","guidHolder","guidResponse","isGuid","guid","BrowserStringUtils","stringToUtf8Arr","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","stringToArrayBuffer","dataString","dataView","utf8ArrToString","sView","nPart","nLen","Base64Encode","urlEncode","encode","urlEncodeArr","inputArr","base64EncArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","uint6ToB64","nUint6","Base64Decode","encodedString","base64DecToArr","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","b64ToUint6","charNum","BrowserAuthErrorMessage","BrowserAuthError","createPkceNotGeneratedError","createCryptoNotAvailableError","createHttpMethodNotImplementedError","createEmptyNavigationUriError","createEmptyHashError","hashValue","createHashDoesNotContainStateError","createHashDoesNotContainKnownPropertiesError","createUnableToParseStateError","createStateInteractionTypeMismatchError","createInteractionInProgressError","createPopupWindowError","createEmptyWindowCreatedError","createUserCancelledError","createMonitorPopupTimeoutError","createMonitorIframeTimeoutError","createRedirectInIframeError","windowParentCheck","createBlockReloadInHiddenIframeError","createBlockAcquireTokenInPopupsError","createIframeClosedPrematurelyError","createSilentSSOInsufficientInfoError","createNoAccountError","createSilentPromptValueError","givenPrompt","createUnableToParseTokenRequestCacheError","createNoTokenRequestCacheError","createAuthRequestNotSetError","createNoCachedAuthorityError","createNonBrowserEnvironmentError","createDatabaseNotOpenError","createNoNetworkConnectivityError","createPostRequestFailedError","errorDesc","createGetRequestFailedError","createFailedToParseNetworkResponseError","PkceGenerator","generateCodes","generateCodeVerifier","generateCodeChallengeFromVerifier","verifier","challenge","pkceCodeVerifier","pkceHashedCodeVerifier","sha256Digest","S256_HASH_ALG","PUBLIC_EXPONENT","BrowserCrypto","hasCryptoAPI","_keygenAlgorithmOptions","modulusLength","publicExponent","hasIECrypto","getMSCryptoDigest","getSubtleCryptoDigest","dataBuffer","generateKeyPair","extractable","usages","msCryptoGenerateKey","subtle","generateKey","exportJwk","msCryptoExportJwk","exportKey","importJwk","keyString","keyBuffer","getJwkString","msCryptoImportKey","importKey","sign","msCryptoSign","hasBrowserCrypto","algorithm","digest","digestOperation","msGenerateKey","msExportKey","resultBuffer","resultString","msImportKey","msSign","jwk","sort","DatabaseStorage","dbName","tableName","dbOpen","open","openDB","indexedDB","createObjectStore","event","db","dbGet","transaction","objectStore","put","dbPut","CryptoOps","browserCrypto","b64Encode","b64Decode","guidGenerator","pkceGenerator","DB_NAME","TABLE_NAME","DB_VERSION","keyPair","publicKeyJwk","pubKeyThumprintObj","publicJwkString","publicJwkBuffer","publicJwkHash","privateKeyJwk","unextractablePrivateKey","EXTRACTABLE","POP_KEY_USAGES","publicKey","kty","privateKey","requestMethod","requestUri","cachedKeyPair","publicKeyJwkString","encodedHeader","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","alg","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","createStorageNotSupportedError","givenStorageLocation","createInvalidCallbackObjectError","callbackObject","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","createInMemoryRedirectUnavailableError","BrowserStorage","cacheLocation","validateWindowStorage","windowStorage","LocalStorage","SessionStorage","getItem","setItem","MemoryStorage","cacheKeys","BrowserProtocolUtils","extractBrowserRequestState","parseServerResponseFromHash","locationHash","BrowserCacheManager","cacheConfig","COOKIE_LIFE_MULTIPLIER","internalStorage","browserStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","idTokenKey","clientInfoKey","CLIENT_INFO","errorKey","ERROR","errorDescKey","ERROR_DESC","migrateCacheEntry","newKey","setTemporaryCache","validateAndParseJson","jsonValue","parsedJson","parsedAccount","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","throttlingCacheKey","parsedThrottlingCache","throttlingCache","getTemporaryCache","generateCacheKey","storeAuthStateInCookie","itemCookie","getItemCookie","setItemCookie","clearItemCookie","cookieName","cookieValue","expires","cookieStr","getCookieExpirationTime","secureCookies","cookie","cookieList","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","today","getCache","setCache","ADAL_ID_TOKEN","generateAuthorityKey","stateId","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","INTERACTION_STATUS_KEY","cleanRequestByState","stateKey","cleanRequestByInteractionType","interactionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","parsedRequest","cachedAuthority","FetchClient","fetch","getFetchHeaders","onLine","getHeaderDict","reqBody","e_3","Headers","optionsHeaders","append","headerDict","XhrClient","sendRequestAsync","xhr","XMLHttpRequest","setXhrHeaders","onload","jsonResponse","responseText","networkResponse","send","headers_1","setRequestHeader","headerArr","getAllResponseHeaders","parts","headerVal","BrowserUtils","clearHash","history","replaceState","location","pathname","replaceHash","urlParts","isInIframe","getCurrentUri","href","getHomepage","getBrowserNetworkClient","blockReloadInHiddenIframes","blockRedirectInIframe","allowRedirectInIframe","isIframedApp","Redirect","blockAcquireTokenInPopups","opener","blockNonBrowserEnvironment","isBrowserEnvironment","detectIEOrEdge","ua","msie","msie11","msedge","NavigationClient","navigateInternal","defaultNavigateWindow","navigateExternal","noHistory","DEFAULT_IFRAME_TIMEOUT_MS","EventType","InteractionHandler","authCodeModule","storageImpl","authModule","handleCodeResponse","networkModule","authCodeResponse","nonceKey","cachedNonce","tokenResponse","cloud_instance_host_name","updateTokenEndpointAuthority","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","RedirectHandler","initiateAuthRequest","params","navigationOptions","redirectStartPage","acquireTokenRedirect","redirectTimeout","onRedirectNavigate","navigationClient","PopupUtils","unloadWindow","openPopup","urlNavigate","popupName","popup","popupWindow","openSizedPopup","focus","currentWindow","winLeft","screenLeft","screenX","winTop","screenTop","screenY","width","innerWidth","documentElement","clientWidth","height","innerHeight","clientHeight","left","top","Popup","close","preventDefault","cleanPopup","monitorPopupForSameOrigin","closed","generatePopupName","generateLogoutPopupName","PopupHandler","popupUtils","monitorPopupForHash","contentHash","SilentHandler","navigateFrameWait","loadFrame","loadFrameSync","monitorIframeForHash","iframe","timeoutMark","performance","removeHiddenIframe","contentWindow","frameHandle","createHiddenIframe","authFrame","style","visibility","position","border","parentNode","removeChild","version$1","PublicClientApplication","loginRedirect","loginPopup","acquireTokenPopup","acquireTokenSilent","silentRequest","cachedToken","tokenRenewalResult","tokenRenewalError_1","preflightBrowserEnvironmentCheck","Silent","getActiveAccount","initializeBaseRequest","emitEvent","ACQUIRE_TOKEN_START","initializeServerTelemetryManager","acquireTokenSilent_silentFlow","createSilentFlowClient","ACQUIRE_TOKEN_SUCCESS","ACQUIRE_TOKEN_FAILURE","ClientApplication","userInputAuth","auth","userInputCache","userInputSystem","system","DEFAULT_AUTH_OPTIONS","navigateToLoginRequestUrl","AAD","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","loadFrameTimeout","windowHashTimeout","iframeHashTimeout","redirectNavigationTimeout","asyncPopups","buildConfiguration","activeLocalAccountId","eventCallbacks","redirectResponse","cacheOptions","DEFAULT_BROWSER_CACHE_MANAGER","handleRedirectPromise","loggedInAccounts","redirectResponseKey","HANDLE_REDIRECT_START","handleRedirectResponse","LOGIN_SUCCESS","HANDLE_REDIRECT_END","LOGIN_FAILURE","responseHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","processHashOnRedirect","homepage","interactionInProgress","getRedirectResponseHash","validateAndExtractStateFromHash","handleHash","isResponseHash","cachedHash","platformStateObj","cachedRequest","currentAuthority","authClient","createAuthCodeClient","isLoggedIn","validRequest","interactionHandler","navigateUrl","e_2","LOGIN_START","preflightInteractiveRequest","initializeAuthorizationCodeRequest","getRedirectStartPage","acquireTokenPopupAsync","popupParameters","POPUP_OPENED","ssoSilent","silentTokenResult","e_4","SSO_SILENT_START","acquireTokenByIframe","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","e_5","initializeAuthorizationRequest","silentTokenHelper","e_6","isServerError","isInvalidGrantError","ACQUIRE_TOKEN_NETWORK_START","createRefreshTokenClient","acquireTokenSilent_authCode","silentHandler","msalFrame","logout","logoutRedirect","validLogoutRequest","logoutUri","e_7","initializeLogoutRequest","LOGOUT_START","setActiveAccount","LOGOUT_SUCCESS","LOGOUT_FAILURE","LOGOUT_END","logoutPopup","mainWindowRedirectUri","logoutPopupAsync","requestAuthority","e_8","absoluteUrl","e_9","getAccountByUsername","userName","allAccounts","accountObj","getAccountByHomeId","getAccountByLocalId","getRedirectUri","requestRedirectUri","requestStartPage","getDiscoveredAuthority","clientConfig","getClientConfiguration","discoveredAuthority","telemetryPayload","browserState","validatedRequest","FRAGMENT","adalIdTokenString","adalIdToken","generatedPkceParams","eventType","message_1","callbackId","addEventCallback","removeEventCallback","getLogger","setLogger","initializeWrapperLibrary","setNavigationClient","EventMessageUtils","getInteractionStatusFromEvent","Login","SsoSilent","AcquireToken","HandleRedirect","Logout","None","telemetry","userAgentInfo","userAgentPrefix","libInfo","DisbleResponseDecompressionNotSupportedInBrowser","disableResponseDecompressionPolicy","BlobDownloadResponse","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","NumberIsNaN","EventEmitter","init","eventListener","errorListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","newListener","unshift","warned","w","warn","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","originalListener","spliceOne","rawListeners","eventNames","originalResponse","tokenRefreshBufferMs","setCachedToken","getCachedToken","expiresOnTimestamp","requiredMillisecondsBeforeNewRefresh","lastCalled","isReady","promise","refresh","ExpiringAccessTokenCache","tokenRefresher","timeBetweenRefreshAttemptsInMs","webResource","updateTokenIfNeeded","CLIENT","setAttributes","spanContext","traceParentHeader","missingFields","traceId","spanId","hexFlags","traceFlags","VERSION","getTraceParentHeader","traceState","serviceRequestId","PollerStoppedError","PollerCancelledError","makeBlobBeginCopyFromURLPollOperation","stopped","pollProgressCallbacks","startPolling","isStopped","isDone","pollOnce","update","fireProgress","cancelOnce","pollOncePromise","clearPollOncePromise","pollUntilDone","isCompleted","isCancelled","stopPolling","cancelOperation","cancelPromise","getOperationState","getResult","isStarted","prevCopyProgress","createOperationSpec","getAccessPolicyOperationSpec","setAccessPolicyOperationSpec","restore","restoreOperationSpec","listBlobFlatSegmentOperationSpec","listBlobHierarchySegmentOperationSpec","Fragment","for","h","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","l","defaultProps","$$typeof","props","_owner","jsx","jsxs","StrictMode","Profiler","Suspense","z","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","refs","updater","D","E","isReactComponent","setState","forceUpdate","F","isPureReactComponent","G","H","I","J","children","L","M","N","escape","O","K","Q","_status","_result","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","IsSomeRendererActing","Children","toArray","only","Component","PureComponent","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","construct","displayName","Qa","tag","_render","Ra","Sa","Ta","Va","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","ob","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","qb","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","rb","sb","tb","setProperty","ub","menuitem","area","base","br","col","embed","hr","img","keygen","link","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","isPropagationStopped","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","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","Od","Alt","Control","Meta","Shift","Pd","Rd","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","datetime","email","month","number","tel","time","week","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","define","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","SpanKind","CanonicalCode","NoopContextManager","global_utils_1","NoopMeterProvider_1","NoopHttpTextPropagator_1","setter_1","context_1","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","html","script","onreadystatechange","installReadyStateChangeImplementation","task","msCrypto","rnds8","rng","validate","REGEX","byteToHex","v4","rnds","_endTime","_key","_value","_attributes","addEvent","updateName","getCurrentSpan","_span","defaultTracer","GLOBAL_TRACER_SYMBOL","loadTracerCache","globalObj","existingCache","setGlobalCache","getTracer","appendBlockOperationSpec","appendBlockFromUrlOperationSpec","sealOperationSpec","uploadOperationSpec","stageBlockOperationSpec","stageBlockFromURLOperationSpec","commitBlockListOperationSpec","getBlockListOperationSpec","uploadPagesOperationSpec","clearPagesOperationSpec","uploadPagesFromURLOperationSpec","getPageRangesOperationSpec","getPageRangesDiffOperationSpec","resizeOperationSpec","updateSequenceNumberOperationSpec","copyIncrementalOperationSpec","abort","readyState","DONE","addProgressListener","FormData","appendFormValue","formKey","formValue","responseType","HEADERS_RECEIVED","rejectOnTerminalEvent","parseHeaders","rawEvent","loaded","responseHeaders","line","setProperties","blobServiceProperties","setPropertiesOperationSpec","getStatistics","getStatisticsOperationSpec","listContainersSegment","listContainersSegmentOperationSpec","getUserDelegationKey","keyInfo","getUserDelegationKeyOperationSpec","submitBatch","submitBatchOperationSpec","filterBlobs","filterBlobsOperationSpec","getBodyAsText","batchResponse","HTTP_HEADER_DELIMITER","subRequests","responseBatchBoundary","perResponsePrefix","batchResponseEnding","parseBatchResponse","responseBodyAsText","subResponses","subResponseCount","deserializedSubResponses","subResponsesSucceededCount","subResponsesFailedCount","subResponse","deserializedSubResponse","responseLines","subRespHeaderStartFound","subRespHeaderEndFound","subRespFailed","contentId","responseLine","tokens","statusMessage","batchRequest","getMultiPartContentType","getMultipartContentType","getHttpRequestBody","getSubRequests","addSubRequestInternal","subRequest","assembleSubRequestFunc","Mutex","preAddSubRequest","postAddSubRequest","setBatchType","batchType","urlOrBlobClient","credentialOrOptions","createPipeline","setBlobAccessTier","credentialOrTier","tierOrOptions","operationCount","tempGuid","boundary","subRequestPrefix","batchRequestEnding","isAnonymousCreds","policyFactoryLength","BatchHeaderFilterPolicyFactory","BatchRequestAssemblePolicyFactory","Pipeline","appendSubRequestToBody","dummyResponse","xMsHeaderName","credentialOrPipeline","_serviceContext","Service","createBatch","deleteBlobs","urlsOrBlobClients","setBlobsAccessTier","batchRequestBody","rawBatchResponse","responseSummary","serviceContext","fromConnectionString","BlobServiceClient","getContainerClient","createContainer","containerClient","containerCreateResponse","deleteContainer","undeleteContainer","destinationContainerName","containerUndeleteResponse","findBlobsByTagsSegment","tagFilterSqlExpression","findBlobsByTagsSegments","findBlobsByTagsItems","findBlobsByTags","listSegmentOptions","listContainersSegmentResponse","listContainers","userDelegationKey","getBlobBatchClient"],"mappings":"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hB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGNmuB,EAAwD,CAC5D9M,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,MAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTsL,IAAK,CACHlH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGNouB,EAAmD,CACvD/M,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,MAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTsL,IAAK,CACHlH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGNquB,EAAwD,CAC5DhN,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,MAEFuB,UAAW,CACTwL,IAAK,CACHpH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGNsuB,EAA+C,CACnDjN,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KACA,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACToL,IAAK,CACHhH,cAAe,KAEjBkH,IAAK,CACHlH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAA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,CAC3BphF,KAAM,8BACNynD,KAAM,mEAXV25B,GAauB,CACnBphF,KAAM,qBACNynD,KAAM,oEAfV25B,GAiBgB,CACZphF,KAAM,mBACNynD,KAAM,qHAnBV25B,GAqB8B,CAC1BphF,KAAM,mBACNynD,KAAM,qFAvBV25B,GAyBwC,CACpCphF,KAAM,yCACNynD,KAAM,yGA3BV25B,GA6ByB,CACrBphF,KAAM,wBACNynD,KAAM,+EA/BV25B,GAiCmC,CAC/BphF,KAAM,kCACNynD,KAAM,2EAnCV25B,GAqCuB,CACnBphF,KAAM,0BACNynD,KAAM,kLAvCV25B,GAyCkB,CACdphF,KAAM,qBACNynD,KAAM,4GA3CV25B,GA6CkB,CACdphF,KAAM,qBACNynD,KAAM,yDA/CV25B,GAiDoB,CAChBphF,KAAM,iBACNynD,KAAM,4BAnDV25B,GAqD0B,CACtBphF,KAAM,yBACNynD,KAAM,qDAvDV25B,GAyD2B,CACvBphF,KAAM,yBACNynD,KAAM,sDA3DV25B,GA6DuB,CACnBphF,KAAM,qBACNynD,KAAM,oKA/DV25B,GAiEuC,CACnCphF,KAAM,sBACNynD,KAAM,uIAnEV25B,GAqEgC,CAC5BphF,KAAM,sBACNynD,KAAM,uFAvEV25B,GAyE8B,CAC1BphF,KAAM,4BACNynD,KAAM,sDA3EV25B,GA6EgC,CAC5BphF,KAAM,mBACNynD,KAAM,wHA/EV25B,GAiFgB,CACZphF,KAAM,mBACNynD,KAAM,2JAnFV25B,GAqFwB,CACpBphF,KAAM,4BACNynD,KAAM,kGAvFV25B,GAyF0B,CACtBphF,KAAM,+BACNynD,KAAM,uCA3FV25B,GA6FqC,CACjCphF,KAAM,4CACNynD,KAAM,iDA/FV25B,GAiGwB,CACpBphF,KAAM,4BACNynD,KAAM,8BAnGV25B,GAqGmB,CACfphF,KAAM,6BACNynD,KAAM,kGAvGV25B,GAyGkB,CACdphF,KAAM,qBACNynD,KAAM,sBA3GV25B,GA6GyB,CACrBphF,KAAM,0BACNynD,KAAM,2EA/GV25B,GAiHiB,CACbphF,KAAM,oBACNynD,KAAM,yBAnHV25B,G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ApIA,GAuIM,EAAa,IAAI,IAAoB,GAAS,GAC9C+9D,EAA8C,CAClD59D,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,MAEFM,iBAAkB,CAChB,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGN4tH,EAAmD,CACvDvsG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFK,YAAa,CACXh8C,cAAe,OACfC,OAAQ,CACNK,UAAU,EACVJ,eAAgB,OAChBC,KAAM,CACJC,KAAM,YAIZsD,YAAa,2BACbw5C,UAAW,CACTuL,IAAK,CACHnH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGN6tH,EAA0D,CAC9DxsG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,KAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,MAGnB7qB,OAAO,EACPiD,WAAU,GAGN8tH,EAA4C,CAChDzsG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEFuB,UAAW,CACToL,IAAK,CACHhH,cAAe,KAEj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O,GAET49H,EACAxtG,IAkCJ,YAAAlR,gBAAA,SAAgB7lC,EAAoB2mB,EAAyFowB,GAC3H,OAAOxwC,KAAK05B,OAAO2W,qBACjB,CACE52C,WAAU,EACV2mB,QAAO,GAET69H,EACAztG,IAEN,EApTA,GAuTM,EAAa,IAAI,IAAoB,GAAS,GAC9C+9D,EAA8C,CAClD59D,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,MAEFM,iBAAkB,CAChB,IACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNouH,EAAmD,CACvD/sG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFK,YAAa,CACXh8C,cAAe,OACfC,OAAQ,CACNK,UAAU,EACVJ,eAAgB,OAChBC,KAAM,CACJC,KAAM,YAIZsD,YAAa,2BACbw5C,UAAW,CACTuL,IAAK,CACHnH,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNquH,EAAkD,CACtDhtG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNsuH,EAA0D,CAC9DjtG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACTuL,IAAK,CACHnH,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNuuH,EAAqD,CACzDltG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACToL,IAAK,CACHrM,WAAY,KACZqF,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNwuH,EAAyD,CAC7DntG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KACA,KACA,KAEFM,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACToL,IAAK,CACHrM,WAAY,KACZqF,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGNyuH,EAA8C,CAClDptG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFuB,UAAW,CACToL,IAAK,CACHhH,cAAe,MAEjBJ,QAAS,CACPjF,WAAY,KACZqF,cAAe,OAGnB7qB,OAAO,EACPiD,WAAU,GAGN0uH,EAA4D,CAChErtG,WAAY,MACZz4B,KAAM,yBACN24B,cAAe,CACb,MAEFI,gBAAiB,CACf,KACA,KAEFM,iBAAkB,CAChB,KACA,IACA,KACA,KAC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","file":"static/js/2.8ae06cbb.chunk.js","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for\n * license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is\n * regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\n\nexport const access: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"access\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const action0: coreHttp.OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'acquire',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action1: coreHttp.OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'release',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action2: coreHttp.OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'renew',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action3: coreHttp.OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'break',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action4: coreHttp.OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'change',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action5: coreHttp.OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"action\",\n defaultValue: 'setAccessControl',\n type: {\n name: \"String\"\n }\n }\n};\nexport const action6: coreHttp.OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"action\",\n defaultValue: 'getAccessControl',\n type: {\n name: \"String\"\n }\n }\n};\nexport const appendPosition: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"appendPositionAccessConditions\",\n \"appendPosition\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-condition-appendpos\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const blobCacheControl: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobCacheControl\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobContentDisposition: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentDisposition\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobContentEncoding: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentEncoding\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobContentLanguage: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentLanguage\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobContentLength: coreHttp.OperationParameter = {\n parameterPath: \"blobContentLength\",\n mapper: {\n required: true,\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const blobContentMD5: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport const blobContentType: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentType\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobSequenceNumber: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobSequenceNumber\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-sequence-number\",\n defaultValue: 0,\n type: {\n name: \"Number\"\n }\n }\n};\nexport const blobTagsString: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"blobTagsString\"\n ],\n mapper: {\n serializedName: \"x-ms-tags\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobType0: coreHttp.OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'PageBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobType1: coreHttp.OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'AppendBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport const blobType2: coreHttp.OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'BlockBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport const blockId: coreHttp.OperationQueryParameter = {\n parameterPath: \"blockId\",\n mapper: {\n required: true,\n serializedName: \"blockid\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const breakPeriod: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"breakPeriod\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-break-period\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const cacheControl: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"cacheControl\"\n ],\n mapper: {\n serializedName: \"x-ms-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp0: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'properties',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp1: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'stats',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp10: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'expiry',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp11: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'snapshot',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp12: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'copy',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp13: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'tier',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp14: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'query',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp15: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'tags',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp16: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'page',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp17: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'pagelist',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp18: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'incrementalcopy',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp19: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'appendblock',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp2: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'list',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp20: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'seal',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp21: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'block',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp22: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'blocklist',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp3: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'userdelegationkey',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp4: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'batch',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp5: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'blobs',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp6: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'metadata',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp7: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'acl',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp8: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'undelete',\n type: {\n name: \"String\"\n }\n }\n};\nexport const comp9: coreHttp.OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'lease',\n type: {\n name: \"String\"\n }\n }\n};\nexport const contentDisposition: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentDisposition\"\n ],\n mapper: {\n serializedName: \"x-ms-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const contentEncoding: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentEncoding\"\n ],\n mapper: {\n serializedName: \"x-ms-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const contentLanguage: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentLanguage\"\n ],\n mapper: {\n serializedName: \"x-ms-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const contentLength: coreHttp.OperationParameter = {\n parameterPath: \"contentLength\",\n mapper: {\n required: true,\n serializedName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const contentType: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentType\"\n ],\n mapper: {\n serializedName: \"x-ms-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const copyActionAbortConstant: coreHttp.OperationParameter = {\n parameterPath: \"copyActionAbortConstant\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-copy-action\",\n defaultValue: 'abort',\n type: {\n name: \"String\"\n }\n }\n};\nexport const copyId: coreHttp.OperationQueryParameter = {\n parameterPath: \"copyId\",\n mapper: {\n required: true,\n serializedName: \"copyid\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const copySource: coreHttp.OperationParameter = {\n parameterPath: \"copySource\",\n mapper: {\n required: true,\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const defaultEncryptionScope: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"containerEncryptionScope\",\n \"defaultEncryptionScope\"\n ],\n mapper: {\n serializedName: \"x-ms-default-encryption-scope\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const deletedContainerName: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"deletedContainerName\"\n ],\n mapper: {\n serializedName: \"x-ms-deleted-container-name\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const deletedContainerVersion: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"deletedContainerVersion\"\n ],\n mapper: {\n serializedName: \"x-ms-deleted-container-version\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const deleteSnapshots: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"deleteSnapshots\"\n ],\n mapper: {\n serializedName: \"x-ms-delete-snapshots\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"include\",\n \"only\"\n ]\n }\n }\n};\nexport const delimiter: coreHttp.OperationQueryParameter = {\n parameterPath: \"delimiter\",\n mapper: {\n required: true,\n serializedName: \"delimiter\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const directoryProperties: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"directoryProperties\"\n ],\n mapper: {\n serializedName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const duration: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"duration\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const encryptionAlgorithm: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionAlgorithm\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-algorithm\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"AES256\"\n ]\n }\n }\n};\nexport const encryptionKey: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionKey\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-key\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const encryptionKeySha256: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionKeySha256\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const encryptionScope: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"encryptionScope\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const expiresOn: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"expiresOn\"\n ],\n mapper: {\n serializedName: \"x-ms-expiry-time\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const expiryOptions: coreHttp.OperationParameter = {\n parameterPath: \"expiryOptions\",\n mapper: {\n required: true,\n serializedName: \"x-ms-expiry-option\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const group: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"group\"\n ],\n mapper: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const ifMatch: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifMatch\"\n ],\n mapper: {\n serializedName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const ifModifiedSince: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifModifiedSince\"\n ],\n mapper: {\n serializedName: \"If-Modified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport const ifNoneMatch: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifNoneMatch\"\n ],\n mapper: {\n serializedName: \"If-None-Match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const ifSequenceNumberEqualTo: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-eq\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const ifSequenceNumberLessThan: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThan\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-lt\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const ifSequenceNumberLessThanOrEqualTo: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThanOrEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-le\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const ifTags: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifTags\"\n ],\n mapper: {\n serializedName: \"x-ms-if-tags\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const ifUnmodifiedSince: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"If-Unmodified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport const include0: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"include\"\n ],\n mapper: {\n serializedName: \"include\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\n \"metadata\",\n \"deleted\"\n ]\n }\n }\n }\n },\n collectionFormat: coreHttp.QueryCollectionFormat.Csv\n};\nexport const include1: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"include\"\n ],\n mapper: {\n serializedName: \"include\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\n \"copy\",\n \"deleted\",\n \"metadata\",\n \"snapshots\",\n \"uncommittedblobs\",\n \"versions\",\n \"tags\"\n ]\n }\n }\n }\n },\n collectionFormat: coreHttp.QueryCollectionFormat.Csv\n};\nexport const leaseId0: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"leaseAccessConditions\",\n \"leaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const leaseId1: coreHttp.OperationParameter = {\n parameterPath: \"leaseId\",\n mapper: {\n required: true,\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const listType: coreHttp.OperationQueryParameter = {\n parameterPath: \"listType\",\n mapper: {\n required: true,\n serializedName: \"blocklisttype\",\n defaultValue: 'committed',\n type: {\n name: \"Enum\",\n allowedValues: [\n \"committed\",\n \"uncommitted\",\n \"all\"\n ]\n }\n }\n};\nexport const marker0: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"marker\"\n ],\n mapper: {\n serializedName: \"marker\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const marker1: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"marker\"\n ],\n mapper: {\n serializedName: \"continuation\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const maxPageSize: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"maxPageSize\"\n ],\n mapper: {\n serializedName: \"maxresults\",\n constraints: {\n InclusiveMinimum: 1\n },\n type: {\n name: \"Number\"\n }\n }\n};\nexport const maxSize: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"appendPositionAccessConditions\",\n \"maxSize\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-condition-maxsize\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport const metadata: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"metadata\"\n ],\n mapper: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n }\n};\nexport const multipartContentType: coreHttp.OperationParameter = {\n parameterPath: \"multipartContentType\",\n mapper: {\n required: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const owner: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"owner\"\n ],\n mapper: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const pageWrite0: coreHttp.OperationParameter = {\n parameterPath: \"pageWrite\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n defaultValue: 'update',\n type: {\n name: \"String\"\n }\n }\n};\nexport const pageWrite1: coreHttp.OperationParameter = {\n parameterPath: \"pageWrite\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n defaultValue: 'clear',\n type: {\n name: \"String\"\n }\n }\n};\nexport const pathRenameMode: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"pathRenameMode\"\n ],\n mapper: {\n serializedName: \"mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"legacy\",\n \"posix\"\n ]\n }\n }\n};\nexport const posixAcl: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"posixAcl\"\n ],\n mapper: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const posixPermissions: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"posixPermissions\"\n ],\n mapper: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const posixUmask: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"posixUmask\"\n ],\n mapper: {\n serializedName: \"x-ms-umask\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const prefix: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"prefix\"\n ],\n mapper: {\n serializedName: \"prefix\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const preventEncryptionScopeOverride: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"containerEncryptionScope\",\n \"preventEncryptionScopeOverride\"\n ],\n mapper: {\n serializedName: \"x-ms-deny-encryption-scope-override\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const prevsnapshot: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"prevsnapshot\"\n ],\n mapper: {\n serializedName: \"prevsnapshot\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const prevSnapshotUrl: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"prevSnapshotUrl\"\n ],\n mapper: {\n serializedName: \"x-ms-previous-snapshot-url\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const proposedLeaseId0: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"proposedLeaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const proposedLeaseId1: coreHttp.OperationParameter = {\n parameterPath: \"proposedLeaseId\",\n mapper: {\n required: true,\n serializedName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const range0: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"range\"\n ],\n mapper: {\n serializedName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const range1: coreHttp.OperationParameter = {\n parameterPath: \"range\",\n mapper: {\n required: true,\n serializedName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const rangeGetContentCRC64: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"rangeGetContentCRC64\"\n ],\n mapper: {\n serializedName: \"x-ms-range-get-content-crc64\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const rangeGetContentMD5: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"rangeGetContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-range-get-content-md5\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const recursiveDirectoryDelete: coreHttp.OperationQueryParameter = {\n parameterPath: \"recursiveDirectoryDelete\",\n mapper: {\n required: true,\n serializedName: \"recursive\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const rehydratePriority: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"rehydratePriority\"\n ],\n mapper: {\n serializedName: \"x-ms-rehydrate-priority\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const renameSource: coreHttp.OperationParameter = {\n parameterPath: \"renameSource\",\n mapper: {\n required: true,\n serializedName: \"x-ms-rename-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const requestId: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"requestId\"\n ],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const resource: coreHttp.OperationQueryParameter = {\n parameterPath: \"resource\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"resource\",\n defaultValue: 'directory',\n type: {\n name: \"String\"\n }\n }\n};\nexport const restype0: coreHttp.OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'service',\n type: {\n name: \"String\"\n }\n }\n};\nexport const restype1: coreHttp.OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'account',\n type: {\n name: \"String\"\n }\n }\n};\nexport const restype2: coreHttp.OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'container',\n type: {\n name: \"String\"\n }\n }\n};\nexport const sealBlob: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sealBlob\"\n ],\n mapper: {\n serializedName: \"x-ms-seal-blob\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const sequenceNumberAction: coreHttp.OperationParameter = {\n parameterPath: \"sequenceNumberAction\",\n mapper: {\n required: true,\n serializedName: \"x-ms-sequence-number-action\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"max\",\n \"update\",\n \"increment\"\n ]\n }\n }\n};\nexport const snapshot: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"snapshot\"\n ],\n mapper: {\n serializedName: \"snapshot\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceContentCrc64: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceContentCrc64\"\n ],\n mapper: {\n serializedName: \"x-ms-source-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport const sourceContentMD5: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-source-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport const sourceIfMatch: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceIfModifiedSince: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfModifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-modified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport const sourceIfNoneMatch: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfNoneMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-none-match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceIfTags: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfTags\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-tags\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceIfUnmodifiedSince: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-unmodified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport const sourceLeaseId: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceLeaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-source-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceRange0: coreHttp.OperationParameter = {\n parameterPath: \"sourceRange\",\n mapper: {\n required: true,\n serializedName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceRange1: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceRange\"\n ],\n mapper: {\n serializedName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const sourceUrl: coreHttp.OperationParameter = {\n parameterPath: \"sourceUrl\",\n mapper: {\n required: true,\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const tier0: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"tier\"\n ],\n mapper: {\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const tier1: coreHttp.OperationParameter = {\n parameterPath: \"tier\",\n mapper: {\n required: true,\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const timeoutInSeconds: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"timeoutInSeconds\"\n ],\n mapper: {\n serializedName: \"timeout\",\n constraints: {\n InclusiveMinimum: 0\n },\n type: {\n name: \"Number\"\n }\n }\n};\nexport const transactionalContentCrc64: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"transactionalContentCrc64\"\n ],\n mapper: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport const transactionalContentMD5: coreHttp.OperationParameter = {\n parameterPath: [\n \"options\",\n \"transactionalContentMD5\"\n ],\n mapper: {\n serializedName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport const upn: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"upn\"\n ],\n mapper: {\n serializedName: \"upn\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport const url: coreHttp.OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n required: true,\n serializedName: \"url\",\n defaultValue: '',\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\nexport const version: coreHttp.OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-version\",\n defaultValue: '2020-02-10',\n type: {\n name: \"String\"\n }\n }\n};\nexport const versionId: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"versionId\"\n ],\n mapper: {\n serializedName: \"versionid\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const where: coreHttp.OperationQueryParameter = {\n parameterPath: [\n \"options\",\n \"where\"\n ],\n mapper: {\n serializedName: \"where\",\n type: {\n name: \"String\"\n }\n }\n};\nexport const xMsRequiresSync: coreHttp.OperationParameter = {\n parameterPath: \"xMsRequiresSync\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-requires-sync\",\n defaultValue: 'true',\n type: {\n name: \"String\"\n }\n }\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, 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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\n\n\nexport const KeyInfo: coreHttp.CompositeMapper = {\n serializedName: \"KeyInfo\",\n type: {\n name: \"Composite\",\n className: \"KeyInfo\",\n modelProperties: {\n startsOn: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiresOn: {\n xmlName: \"Expiry\",\n required: true,\n serializedName: \"Expiry\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const UserDelegationKey: coreHttp.CompositeMapper = {\n serializedName: \"UserDelegationKey\",\n type: {\n name: \"Composite\",\n className: \"UserDelegationKey\",\n modelProperties: {\n signedObjectId: {\n xmlName: \"SignedOid\",\n required: true,\n serializedName: \"SignedOid\",\n type: {\n name: \"String\"\n }\n },\n signedTenantId: {\n xmlName: \"SignedTid\",\n required: true,\n serializedName: \"SignedTid\",\n type: {\n name: \"String\"\n }\n },\n signedStartsOn: {\n xmlName: \"SignedStart\",\n required: true,\n serializedName: \"SignedStart\",\n type: {\n name: \"String\"\n }\n },\n signedExpiresOn: {\n xmlName: \"SignedExpiry\",\n required: true,\n serializedName: \"SignedExpiry\",\n type: {\n name: \"String\"\n }\n },\n signedService: {\n xmlName: \"SignedService\",\n required: true,\n serializedName: \"SignedService\",\n type: {\n name: \"String\"\n }\n },\n signedVersion: {\n xmlName: \"SignedVersion\",\n required: true,\n serializedName: \"SignedVersion\",\n type: {\n name: \"String\"\n }\n },\n value: {\n xmlName: \"Value\",\n required: true,\n serializedName: \"Value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const StorageError: coreHttp.CompositeMapper = {\n serializedName: \"StorageError\",\n type: {\n name: \"Composite\",\n className: \"StorageError\",\n modelProperties: {\n message: {\n xmlName: \"Message\",\n serializedName: \"Message\",\n type: {\n name: \"String\"\n }\n },\n code: {\n xmlName: \"Code\",\n serializedName: \"Code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DataLakeStorageErrorError: coreHttp.CompositeMapper = {\n serializedName: \"DataLakeStorageError_error\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageErrorError\",\n modelProperties: {\n code: {\n xmlName: \"Code\",\n serializedName: \"Code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n xmlName: \"Message\",\n serializedName: \"Message\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DataLakeStorageError: coreHttp.CompositeMapper = {\n serializedName: \"DataLakeStorageError\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageError\",\n modelProperties: {\n dataLakeStorageErrorDetails: {\n xmlName: \"error\",\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageErrorError\"\n }\n }\n }\n }\n};\n\nexport const AccessPolicy: coreHttp.CompositeMapper = {\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n startsOn: {\n xmlName: \"Start\",\n serializedName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiresOn: {\n xmlName: \"Expiry\",\n serializedName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n xmlName: \"Permission\",\n serializedName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobPropertiesInternal: coreHttp.CompositeMapper = {\n xmlName: \"Properties\",\n serializedName: \"BlobPropertiesInternal\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesInternal\",\n modelProperties: {\n createdOn: {\n xmlName: \"Creation-Time\",\n serializedName: \"Creation-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n lastModified: {\n xmlName: \"Last-Modified\",\n required: true,\n serializedName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n xmlName: \"Etag\",\n required: true,\n serializedName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n xmlName: \"Content-Length\",\n serializedName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n xmlName: \"Content-Type\",\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n xmlName: \"Content-Encoding\",\n serializedName: \"Content-Encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n xmlName: \"Content-Language\",\n serializedName: \"Content-Language\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n xmlName: \"Content-MD5\",\n serializedName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentDisposition: {\n xmlName: \"Content-Disposition\",\n serializedName: \"Content-Disposition\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n xmlName: \"Cache-Control\",\n serializedName: \"Cache-Control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n xmlName: \"x-ms-blob-sequence-number\",\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n xmlName: \"BlobType\",\n serializedName: \"BlobType\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n leaseStatus: {\n xmlName: \"LeaseStatus\",\n serializedName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n leaseState: {\n xmlName: \"LeaseState\",\n serializedName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n xmlName: \"LeaseDuration\",\n serializedName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n copyId: {\n xmlName: \"CopyId\",\n serializedName: \"CopyId\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n xmlName: \"CopyStatus\",\n serializedName: \"CopyStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n copySource: {\n xmlName: \"CopySource\",\n serializedName: \"CopySource\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n xmlName: \"CopyProgress\",\n serializedName: \"CopyProgress\",\n type: {\n name: \"String\"\n }\n },\n copyCompletedOn: {\n xmlName: \"CopyCompletionTime\",\n serializedName: \"CopyCompletionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n xmlName: \"CopyStatusDescription\",\n serializedName: \"CopyStatusDescription\",\n type: {\n name: \"String\"\n }\n },\n serverEncrypted: {\n xmlName: \"ServerEncrypted\",\n serializedName: \"ServerEncrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n incrementalCopy: {\n xmlName: \"IncrementalCopy\",\n serializedName: \"IncrementalCopy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n xmlName: \"DestinationSnapshot\",\n serializedName: \"DestinationSnapshot\",\n type: {\n name: \"String\"\n }\n },\n deletedOn: {\n xmlName: \"DeletedTime\",\n serializedName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n xmlName: \"RemainingRetentionDays\",\n serializedName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n },\n accessTier: {\n xmlName: \"AccessTier\",\n serializedName: \"AccessTier\",\n type: {\n name: \"String\"\n }\n },\n accessTierInferred: {\n xmlName: \"AccessTierInferred\",\n serializedName: \"AccessTierInferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n xmlName: \"ArchiveStatus\",\n serializedName: \"ArchiveStatus\",\n type: {\n name: \"String\"\n }\n },\n customerProvidedKeySha256: {\n xmlName: \"CustomerProvidedKeySha256\",\n serializedName: \"CustomerProvidedKeySha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n xmlName: \"EncryptionScope\",\n serializedName: \"EncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangedOn: {\n xmlName: \"AccessTierChangeTime\",\n serializedName: \"AccessTierChangeTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n tagCount: {\n xmlName: \"TagCount\",\n serializedName: \"TagCount\",\n type: {\n name: \"Number\"\n }\n },\n expiresOn: {\n xmlName: \"Expiry-Time\",\n serializedName: \"Expiry-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n xmlName: \"Sealed\",\n serializedName: \"Sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n rehydratePriority: {\n xmlName: \"RehydratePriority\",\n serializedName: \"RehydratePriority\",\n type: {\n name: \"String\"\n }\n },\n lastAccessedOn: {\n xmlName: \"LastAccessTime\",\n serializedName: \"LastAccessTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobTag: coreHttp.CompositeMapper = {\n xmlName: \"Tag\",\n serializedName: \"BlobTag\",\n type: {\n name: \"Composite\",\n className: \"BlobTag\",\n modelProperties: {\n key: {\n xmlName: \"Key\",\n required: true,\n serializedName: \"Key\",\n type: {\n name: \"String\"\n }\n },\n value: {\n xmlName: \"Value\",\n required: true,\n serializedName: \"Value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobTags: coreHttp.CompositeMapper = {\n xmlName: \"Tags\",\n serializedName: \"BlobTags\",\n type: {\n name: \"Composite\",\n className: \"BlobTags\",\n modelProperties: {\n blobTagSet: {\n xmlIsWrapped: true,\n xmlName: \"TagSet\",\n xmlElementName: \"Tag\",\n required: true,\n serializedName: \"BlobTagSet\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobTag\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobItemInternal: coreHttp.CompositeMapper = {\n xmlName: \"Blob\",\n serializedName: \"BlobItemInternal\",\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n deleted: {\n xmlName: \"Deleted\",\n required: true,\n serializedName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n snapshot: {\n xmlName: \"Snapshot\",\n required: true,\n serializedName: \"Snapshot\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n xmlName: \"VersionId\",\n serializedName: \"VersionId\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n xmlName: \"IsCurrentVersion\",\n serializedName: \"IsCurrentVersion\",\n type: {\n name: \"Boolean\"\n }\n },\n properties: {\n xmlName: \"Properties\",\n required: true,\n serializedName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesInternal\"\n }\n },\n metadata: {\n xmlName: \"Metadata\",\n serializedName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n blobTags: {\n xmlName: \"Tags\",\n serializedName: \"BlobTags\",\n type: {\n name: \"Composite\",\n className: \"BlobTags\"\n }\n },\n objectReplicationMetadata: {\n xmlName: \"OrMetadata\",\n serializedName: \"ObjectReplicationMetadata\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobFlatListSegment: coreHttp.CompositeMapper = {\n xmlName: \"Blobs\",\n serializedName: \"BlobFlatListSegment\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\",\n modelProperties: {\n blobItems: {\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n required: true,\n serializedName: \"BlobItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const ListBlobsFlatSegmentResponse: coreHttp.CompositeMapper = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListBlobsFlatSegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsFlatSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n xmlIsAttribute: true,\n xmlName: \"ContainerName\",\n required: true,\n serializedName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n segment: {\n xmlName: \"Blobs\",\n required: true,\n serializedName: \"Segment\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\"\n }\n },\n continuationToken: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobPrefix: coreHttp.CompositeMapper = {\n serializedName: \"BlobPrefix\",\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobHierarchyListSegment: coreHttp.CompositeMapper = {\n xmlName: \"Blobs\",\n serializedName: \"BlobHierarchyListSegment\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\",\n modelProperties: {\n blobPrefixes: {\n xmlName: \"BlobPrefixes\",\n xmlElementName: \"BlobPrefix\",\n serializedName: \"BlobPrefixes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\"\n }\n }\n }\n },\n blobItems: {\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n required: true,\n serializedName: \"BlobItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const ListBlobsHierarchySegmentResponse: coreHttp.CompositeMapper = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListBlobsHierarchySegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsHierarchySegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n xmlIsAttribute: true,\n xmlName: \"ContainerName\",\n required: true,\n serializedName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n delimiter: {\n xmlName: \"Delimiter\",\n serializedName: \"Delimiter\",\n type: {\n name: \"String\"\n }\n },\n segment: {\n xmlName: \"Blobs\",\n required: true,\n serializedName: \"Segment\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\"\n }\n },\n continuationToken: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const Block: coreHttp.CompositeMapper = {\n serializedName: \"Block\",\n type: {\n name: \"Composite\",\n className: \"Block\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n size: {\n xmlName: \"Size\",\n required: true,\n serializedName: \"Size\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const BlockList: coreHttp.CompositeMapper = {\n serializedName: \"BlockList\",\n type: {\n name: \"Composite\",\n className: \"BlockList\",\n modelProperties: {\n committedBlocks: {\n xmlIsWrapped: true,\n xmlName: \"CommittedBlocks\",\n xmlElementName: \"Block\",\n serializedName: \"CommittedBlocks\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n },\n uncommittedBlocks: {\n xmlIsWrapped: true,\n xmlName: \"UncommittedBlocks\",\n xmlElementName: \"Block\",\n serializedName: \"UncommittedBlocks\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlockLookupList: coreHttp.CompositeMapper = {\n xmlName: \"BlockList\",\n serializedName: \"BlockLookupList\",\n type: {\n name: \"Composite\",\n className: \"BlockLookupList\",\n modelProperties: {\n committed: {\n xmlName: \"Committed\",\n xmlElementName: \"Committed\",\n serializedName: \"Committed\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n uncommitted: {\n xmlName: \"Uncommitted\",\n xmlElementName: \"Uncommitted\",\n serializedName: \"Uncommitted\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n latest: {\n xmlName: \"Latest\",\n xmlElementName: \"Latest\",\n serializedName: \"Latest\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const ContainerProperties: coreHttp.CompositeMapper = {\n serializedName: \"ContainerProperties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\",\n modelProperties: {\n lastModified: {\n xmlName: \"Last-Modified\",\n required: true,\n serializedName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n xmlName: \"Etag\",\n required: true,\n serializedName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n leaseStatus: {\n xmlName: \"LeaseStatus\",\n serializedName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n leaseState: {\n xmlName: \"LeaseState\",\n serializedName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n xmlName: \"LeaseDuration\",\n serializedName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n publicAccess: {\n xmlName: \"PublicAccess\",\n serializedName: \"PublicAccess\",\n type: {\n name: \"String\"\n }\n },\n hasImmutabilityPolicy: {\n xmlName: \"HasImmutabilityPolicy\",\n serializedName: \"HasImmutabilityPolicy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n xmlName: \"HasLegalHold\",\n serializedName: \"HasLegalHold\",\n type: {\n name: \"Boolean\"\n }\n },\n defaultEncryptionScope: {\n xmlName: \"DefaultEncryptionScope\",\n serializedName: \"DefaultEncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n preventEncryptionScopeOverride: {\n xmlName: \"DenyEncryptionScopeOverride\",\n serializedName: \"DenyEncryptionScopeOverride\",\n type: {\n name: \"Boolean\"\n }\n },\n deletedOn: {\n xmlName: \"DeletedTime\",\n serializedName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n xmlName: \"RemainingRetentionDays\",\n serializedName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ContainerItem: coreHttp.CompositeMapper = {\n xmlName: \"Container\",\n serializedName: \"ContainerItem\",\n type: {\n name: \"Composite\",\n className: \"ContainerItem\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n deleted: {\n xmlName: \"Deleted\",\n serializedName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n version: {\n xmlName: \"Version\",\n serializedName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n xmlName: \"Properties\",\n required: true,\n serializedName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\"\n }\n },\n metadata: {\n xmlName: \"Metadata\",\n serializedName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const DelimitedTextConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"DelimitedTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"DelimitedTextConfiguration\",\n modelProperties: {\n columnSeparator: {\n xmlName: \"ColumnSeparator\",\n required: true,\n serializedName: \"ColumnSeparator\",\n type: {\n name: \"String\"\n }\n },\n fieldQuote: {\n xmlName: \"FieldQuote\",\n required: true,\n serializedName: \"FieldQuote\",\n type: {\n name: \"String\"\n }\n },\n recordSeparator: {\n xmlName: \"RecordSeparator\",\n required: true,\n serializedName: \"RecordSeparator\",\n type: {\n name: \"String\"\n }\n },\n escapeChar: {\n xmlName: \"EscapeChar\",\n required: true,\n serializedName: \"EscapeChar\",\n type: {\n name: \"String\"\n }\n },\n headersPresent: {\n xmlName: \"HasHeaders\",\n required: true,\n serializedName: \"HeadersPresent\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const JsonTextConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"JsonTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"JsonTextConfiguration\",\n modelProperties: {\n recordSeparator: {\n xmlName: \"RecordSeparator\",\n required: true,\n serializedName: \"RecordSeparator\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ArrowField: coreHttp.CompositeMapper = {\n xmlName: \"Field\",\n serializedName: \"ArrowField\",\n type: {\n name: \"Composite\",\n className: \"ArrowField\",\n modelProperties: {\n type: {\n xmlName: \"Type\",\n required: true,\n serializedName: \"Type\",\n type: {\n name: \"String\"\n }\n },\n name: {\n xmlName: \"Name\",\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n precision: {\n xmlName: \"Precision\",\n serializedName: \"Precision\",\n type: {\n name: \"Number\"\n }\n },\n scale: {\n xmlName: \"Scale\",\n serializedName: \"Scale\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ArrowConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"ArrowConfiguration\",\n type: {\n name: \"Composite\",\n className: \"ArrowConfiguration\",\n modelProperties: {\n schema: {\n xmlIsWrapped: true,\n xmlName: \"Schema\",\n xmlElementName: \"Field\",\n required: true,\n serializedName: \"Schema\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ArrowField\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const ListContainersSegmentResponse: coreHttp.CompositeMapper = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListContainersSegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListContainersSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n containerItems: {\n xmlIsWrapped: true,\n xmlName: \"Containers\",\n xmlElementName: \"Container\",\n required: true,\n serializedName: \"ContainerItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ContainerItem\"\n }\n }\n }\n },\n continuationToken: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const CorsRule: coreHttp.CompositeMapper = {\n serializedName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n xmlName: \"AllowedOrigins\",\n required: true,\n serializedName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n xmlName: \"AllowedMethods\",\n required: true,\n serializedName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n xmlName: \"AllowedHeaders\",\n required: true,\n serializedName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n xmlName: \"ExposedHeaders\",\n required: true,\n serializedName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n xmlName: \"MaxAgeInSeconds\",\n required: true,\n serializedName: \"MaxAgeInSeconds\",\n constraints: {\n InclusiveMinimum: 0\n },\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const FilterBlobItem: coreHttp.CompositeMapper = {\n xmlName: \"Blob\",\n serializedName: \"FilterBlobItem\",\n type: {\n name: \"Composite\",\n className: \"FilterBlobItem\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n xmlName: \"ContainerName\",\n required: true,\n serializedName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n tagValue: {\n xmlName: \"TagValue\",\n required: true,\n serializedName: \"TagValue\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FilterBlobSegment: coreHttp.CompositeMapper = {\n xmlName: \"EnumerationResults\",\n serializedName: \"FilterBlobSegment\",\n type: {\n name: \"Composite\",\n className: \"FilterBlobSegment\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n where: {\n xmlName: \"Where\",\n required: true,\n serializedName: \"Where\",\n type: {\n name: \"String\"\n }\n },\n blobs: {\n xmlIsWrapped: true,\n xmlName: \"Blobs\",\n xmlElementName: \"Blob\",\n required: true,\n serializedName: \"Blobs\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"FilterBlobItem\"\n }\n }\n }\n },\n continuationToken: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const GeoReplication: coreHttp.CompositeMapper = {\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n xmlName: \"Status\",\n required: true,\n serializedName: \"Status\",\n type: {\n name: \"String\"\n }\n },\n lastSyncOn: {\n xmlName: \"LastSyncTime\",\n required: true,\n serializedName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const RetentionPolicy: coreHttp.CompositeMapper = {\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n xmlName: \"Days\",\n serializedName: \"Days\",\n constraints: {\n InclusiveMinimum: 1\n },\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const Logging: coreHttp.CompositeMapper = {\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n xmlName: \"Version\",\n required: true,\n serializedName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n deleteProperty: {\n xmlName: \"Delete\",\n required: true,\n serializedName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n xmlName: \"Read\",\n required: true,\n serializedName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n xmlName: \"Write\",\n required: true,\n serializedName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n xmlName: \"RetentionPolicy\",\n required: true,\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const Metrics: coreHttp.CompositeMapper = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n xmlName: \"Version\",\n serializedName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n xmlName: \"IncludeAPIs\",\n serializedName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n xmlName: \"RetentionPolicy\",\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const PageRange: coreHttp.CompositeMapper = {\n serializedName: \"PageRange\",\n type: {\n name: \"Composite\",\n className: \"PageRange\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n xmlName: \"End\",\n required: true,\n serializedName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ClearRange: coreHttp.CompositeMapper = {\n serializedName: \"ClearRange\",\n type: {\n name: \"Composite\",\n className: \"ClearRange\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n xmlName: \"End\",\n required: true,\n serializedName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const PageList: coreHttp.CompositeMapper = {\n serializedName: \"PageList\",\n type: {\n name: \"Composite\",\n className: \"PageList\",\n modelProperties: {\n pageRange: {\n xmlName: \"PageRange\",\n xmlElementName: \"PageRange\",\n serializedName: \"PageRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"PageRange\"\n }\n }\n }\n },\n clearRange: {\n xmlName: \"ClearRange\",\n xmlElementName: \"ClearRange\",\n serializedName: \"ClearRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ClearRange\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const QueryFormat: coreHttp.CompositeMapper = {\n serializedName: \"QueryFormat\",\n type: {\n name: \"Composite\",\n className: \"QueryFormat\",\n modelProperties: {\n type: {\n xmlName: \"Type\",\n serializedName: \"Type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"delimited\",\n \"json\",\n \"arrow\"\n ]\n }\n },\n delimitedTextConfiguration: {\n xmlName: \"DelimitedTextConfiguration\",\n serializedName: \"DelimitedTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"DelimitedTextConfiguration\"\n }\n },\n jsonTextConfiguration: {\n xmlName: \"JsonTextConfiguration\",\n serializedName: \"JsonTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"JsonTextConfiguration\"\n }\n },\n arrowConfiguration: {\n xmlName: \"ArrowConfiguration\",\n serializedName: \"ArrowConfiguration\",\n type: {\n name: \"Composite\",\n className: \"ArrowConfiguration\"\n }\n }\n }\n }\n};\n\nexport const QuerySerialization: coreHttp.CompositeMapper = {\n serializedName: \"QuerySerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\",\n modelProperties: {\n format: {\n xmlName: \"Format\",\n required: true,\n serializedName: \"Format\",\n type: {\n name: \"Composite\",\n className: \"QueryFormat\"\n }\n }\n }\n }\n};\n\nexport const QueryRequest: coreHttp.CompositeMapper = {\n serializedName: \"QueryRequest\",\n type: {\n name: \"Composite\",\n className: \"QueryRequest\",\n modelProperties: {\n queryType: {\n xmlName: \"QueryType\",\n required: true,\n isConstant: true,\n serializedName: \"QueryType\",\n defaultValue: 'SQL',\n type: {\n name: \"String\"\n }\n },\n expression: {\n xmlName: \"Expression\",\n required: true,\n serializedName: \"Expression\",\n type: {\n name: \"String\"\n }\n },\n inputSerialization: {\n xmlName: \"InputSerialization\",\n serializedName: \"InputSerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\"\n }\n },\n outputSerialization: {\n xmlName: \"OutputSerialization\",\n serializedName: \"OutputSerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\"\n }\n }\n }\n }\n};\n\nexport const SignedIdentifier: coreHttp.CompositeMapper = {\n serializedName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n xmlName: \"Id\",\n required: true,\n serializedName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n xmlName: \"AccessPolicy\",\n required: true,\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\n\nexport const StaticWebsite: coreHttp.CompositeMapper = {\n serializedName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\",\n modelProperties: {\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n indexDocument: {\n xmlName: \"IndexDocument\",\n serializedName: \"IndexDocument\",\n type: {\n name: \"String\"\n }\n },\n errorDocument404Path: {\n xmlName: \"ErrorDocument404Path\",\n serializedName: \"ErrorDocument404Path\",\n type: {\n name: \"String\"\n }\n },\n defaultIndexDocumentPath: {\n xmlName: \"DefaultIndexDocumentPath\",\n serializedName: \"DefaultIndexDocumentPath\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobServiceProperties: coreHttp.CompositeMapper = {\n xmlName: \"StorageServiceProperties\",\n serializedName: \"BlobServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"BlobServiceProperties\",\n modelProperties: {\n blobAnalyticsLogging: {\n xmlName: \"Logging\",\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n xmlName: \"HourMetrics\",\n serializedName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n xmlName: \"MinuteMetrics\",\n serializedName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n xmlIsWrapped: true,\n xmlName: \"Cors\",\n xmlElementName: \"CorsRule\",\n serializedName: \"Cors\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n },\n defaultServiceVersion: {\n xmlName: \"DefaultServiceVersion\",\n serializedName: \"DefaultServiceVersion\",\n type: {\n name: \"String\"\n }\n },\n deleteRetentionPolicy: {\n xmlName: \"DeleteRetentionPolicy\",\n serializedName: \"DeleteRetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n },\n staticWebsite: {\n xmlName: \"StaticWebsite\",\n serializedName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\"\n }\n }\n }\n }\n};\n\nexport const BlobServiceStatistics: coreHttp.CompositeMapper = {\n xmlName: \"StorageServiceStats\",\n serializedName: \"BlobServiceStatistics\",\n type: {\n name: \"Composite\",\n className: \"BlobServiceStatistics\",\n modelProperties: {\n geoReplication: {\n xmlName: \"GeoReplication\",\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\n\nexport const ContainerEncryptionScope: coreHttp.CompositeMapper = {\n xmlName: \"container-encryption-scope\",\n type: {\n name: \"Composite\",\n className: \"ContainerEncryptionScope\",\n modelProperties: {\n defaultEncryptionScope: {\n xmlName: \"defaultEncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n preventEncryptionScopeOverride: {\n xmlName: \"preventEncryptionScopeOverride\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const LeaseAccessConditions: coreHttp.CompositeMapper = {\n xmlName: \"lease-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"LeaseAccessConditions\",\n modelProperties: {\n leaseId: {\n xmlName: \"leaseId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ModifiedAccessConditions: coreHttp.CompositeMapper = {\n xmlName: \"modified-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"ModifiedAccessConditions\",\n modelProperties: {\n ifModifiedSince: {\n xmlName: \"ifModifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n ifUnmodifiedSince: {\n xmlName: \"ifUnmodifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n ifMatch: {\n xmlName: \"ifMatch\",\n type: {\n name: \"String\"\n }\n },\n ifNoneMatch: {\n xmlName: \"ifNoneMatch\",\n type: {\n name: \"String\"\n }\n },\n ifTags: {\n xmlName: \"ifTags\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DirectoryHttpHeaders: coreHttp.CompositeMapper = {\n xmlName: \"directory-http-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryHttpHeaders\",\n modelProperties: {\n cacheControl: {\n xmlName: \"cacheControl\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n xmlName: \"contentType\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n xmlName: \"contentEncoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n xmlName: \"contentLanguage\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n xmlName: \"contentDisposition\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SourceModifiedAccessConditions: coreHttp.CompositeMapper = {\n xmlName: \"source-modified-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"SourceModifiedAccessConditions\",\n modelProperties: {\n sourceIfModifiedSince: {\n xmlName: \"sourceIfModifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n sourceIfUnmodifiedSince: {\n xmlName: \"sourceIfUnmodifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n sourceIfMatch: {\n xmlName: \"sourceIfMatch\",\n type: {\n name: \"String\"\n }\n },\n sourceIfNoneMatch: {\n xmlName: \"sourceIfNoneMatch\",\n type: {\n name: \"String\"\n }\n },\n sourceIfTags: {\n xmlName: \"sourceIfTags\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const CpkInfo: coreHttp.CompositeMapper = {\n xmlName: \"cpk-info\",\n type: {\n name: \"Composite\",\n className: \"CpkInfo\",\n modelProperties: {\n encryptionKey: {\n xmlName: \"encryptionKey\",\n type: {\n name: \"String\"\n }\n },\n encryptionKeySha256: {\n xmlName: \"encryptionKeySha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionAlgorithm: {\n xmlName: \"encryptionAlgorithm\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"AES256\"\n ]\n }\n }\n }\n }\n};\n\nexport const BlobHTTPHeaders: coreHttp.CompositeMapper = {\n xmlName: \"blob-HTTP-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobHTTPHeaders\",\n modelProperties: {\n blobCacheControl: {\n xmlName: \"blobCacheControl\",\n type: {\n name: \"String\"\n }\n },\n blobContentType: {\n xmlName: \"blobContentType\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n xmlName: \"blobContentMD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobContentEncoding: {\n xmlName: \"blobContentEncoding\",\n type: {\n name: \"String\"\n }\n },\n blobContentLanguage: {\n xmlName: \"blobContentLanguage\",\n type: {\n name: \"String\"\n }\n },\n blobContentDisposition: {\n xmlName: \"blobContentDisposition\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SequenceNumberAccessConditions: coreHttp.CompositeMapper = {\n xmlName: \"sequence-number-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"SequenceNumberAccessConditions\",\n modelProperties: {\n ifSequenceNumberLessThanOrEqualTo: {\n xmlName: \"ifSequenceNumberLessThanOrEqualTo\",\n type: {\n name: \"Number\"\n }\n },\n ifSequenceNumberLessThan: {\n xmlName: \"ifSequenceNumberLessThan\",\n type: {\n name: \"Number\"\n }\n },\n ifSequenceNumberEqualTo: {\n xmlName: \"ifSequenceNumberEqualTo\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const AppendPositionAccessConditions: coreHttp.CompositeMapper = {\n xmlName: \"append-position-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"AppendPositionAccessConditions\",\n modelProperties: {\n maxSize: {\n xmlName: \"maxSize\",\n type: {\n name: \"Number\"\n }\n },\n appendPosition: {\n xmlName: \"appendPosition\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-setproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-getstatistics-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListContainersSegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-listcontainerssegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceListContainersSegmentHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetUserDelegationKeyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-getuserdelegationkey-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetUserDelegationKeyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSubmitBatchHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-submitbatch-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceSubmitBatchHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceFilterBlobsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"service-filterblobs-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceFilterBlobsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-create-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetPropertiesHeaders\",\n modelProperties: {\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n },\n hasImmutabilityPolicy: {\n serializedName: \"x-ms-has-immutability-policy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n serializedName: \"x-ms-has-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n },\n defaultEncryptionScope: {\n serializedName: \"x-ms-default-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n denyEncryptionScopeOverride: {\n serializedName: \"x-ms-deny-encryption-scope-override\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerDeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetMetadataHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-setmetadata-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetMetadataHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccessPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-getaccesspolicy-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccessPolicyHeaders\",\n modelProperties: {\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetAccessPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-setaccesspolicy-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetAccessPolicyHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRestoreHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-restore-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerRestoreHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerAcquireLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-acquirelease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerAcquireLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerReleaseLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-releaselease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerReleaseLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRenewLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-renewlease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenewLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerBreakLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-breaklease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerBreakLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerChangeLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-changelease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerChangeLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobFlatSegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-listblobflatsegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobFlatSegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobHierarchySegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-listblobhierarchysegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobHierarchySegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"container-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DirectoryCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"directory-create-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const DirectoryRenameHeaders: coreHttp.CompositeMapper = {\n serializedName: \"directory-rename-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryRenameHeaders\",\n modelProperties: {\n marker: {\n serializedName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const DirectoryDeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"directory-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryDeleteHeaders\",\n modelProperties: {\n marker: {\n serializedName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const DirectorySetAccessControlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"directory-setaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectorySetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DirectoryGetAccessControlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"directory-getaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryGetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsOwner: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n },\n xMsGroup: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n },\n xMsPermissions: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n },\n xMsAcl: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDownloadHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-download-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobDownloadHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n objectReplicationPolicyId: {\n serializedName: \"x-ms-or-policy-id\",\n type: {\n name: \"String\"\n }\n },\n objectReplicationRules: {\n serializedName: \"x-ms-or\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-or-\"\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n copyCompletedOn: {\n serializedName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n serializedName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n tagCount: {\n serializedName: \"x-ms-tag-count\",\n type: {\n name: \"Number\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n lastAccessed: {\n serializedName: \"x-ms-last-access-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetPropertiesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n createdOn: {\n serializedName: \"x-ms-creation-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n objectReplicationPolicyId: {\n serializedName: \"x-ms-or-policy-id\",\n type: {\n name: \"String\"\n }\n },\n objectReplicationRules: {\n serializedName: \"x-ms-or\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-or-\"\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n copyCompletedOn: {\n serializedName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n isIncrementalCopy: {\n serializedName: \"x-ms-incremental-copy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n serializedName: \"x-ms-copy-destination-snapshot\",\n type: {\n name: \"String\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n accessTier: {\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n },\n accessTierInferred: {\n serializedName: \"x-ms-access-tier-inferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n serializedName: \"x-ms-archive-status\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangedOn: {\n serializedName: \"x-ms-access-tier-change-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n serializedName: \"x-ms-is-current-version\",\n type: {\n name: \"Boolean\"\n }\n },\n tagCount: {\n serializedName: \"x-ms-tag-count\",\n type: {\n name: \"Number\"\n }\n },\n expiresOn: {\n serializedName: \"x-ms-expiry-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n rehydratePriority: {\n serializedName: \"x-ms-rehydrate-priority\",\n type: {\n name: \"String\"\n }\n },\n lastAccessed: {\n serializedName: \"x-ms-last-access-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetAccessControlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-setaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetAccessControlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-getaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsOwner: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n },\n xMsGroup: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n },\n xMsPermissions: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n },\n xMsAcl: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobRenameHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-rename-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobRenameHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-create-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"appendblob-create-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobUploadHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blockblob-upload-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobUploadHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobUndeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-undelete-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobUndeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetExpiryHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-setexpiry-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetExpiryHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetHTTPHeadersHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-sethttpheaders-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetHTTPHeadersHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetMetadataHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-setmetadata-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetMetadataHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobAcquireLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-acquirelease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobAcquireLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobReleaseLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-releaselease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobReleaseLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobRenewLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-renewlease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobRenewLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobChangeLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-changelease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobChangeLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobBreakLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-breaklease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobBreakLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCreateSnapshotHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-createsnapshot-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobCreateSnapshotHeaders\",\n modelProperties: {\n snapshot: {\n serializedName: \"x-ms-snapshot\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobStartCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-startcopyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobStartCopyFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-copyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobCopyFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"success\"\n ]\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobAbortCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-abortcopyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobAbortCopyFromURLHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTierHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-settier-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTierHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blockblob-stageblock-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blockblob-stageblockfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockFromURLHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobCommitBlockListHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blockblob-commitblocklist-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobCommitBlockListHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobGetBlockListHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blockblob-getblocklist-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobGetBlockListHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-uploadpages-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobClearPagesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-clearpages-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobClearPagesHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-uploadpagesfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-getpageranges-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesDiffHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-getpagerangesdiff-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesDiffHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobResizeHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-resize-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobResizeHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUpdateSequenceNumberHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-updatesequencenumber-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUpdateSequenceNumberHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCopyIncrementalHeaders: coreHttp.CompositeMapper = {\n serializedName: \"pageblob-copyincremental-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCopyIncrementalHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockHeaders: coreHttp.CompositeMapper = {\n serializedName: \"appendblob-appendblock-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockFromUrlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"appendblob-appendblockfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockFromUrlHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobSealHeaders: coreHttp.CompositeMapper = {\n serializedName: \"appendblob-seal-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobSealHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobQueryHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-query-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobQueryHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n copyCompletionTime: {\n serializedName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n serializedName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetTagsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-gettags-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetTagsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTagsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"blob-settags-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTagsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, 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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./context\"), exports);\n__exportStar(require(\"./NoopContextManager\"), exports);\n//# sourceMappingURL=index.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.3.0\";\nexport const SERVICE_VERSION: string = \"2020-02-10\";\n\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES: number = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES: number = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES: number = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES: number = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS: number = 5;\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\"\n }\n};\n\nexport const HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\"\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const SIZE_1_MB = 1 * 1024 * 1024;\nexport const BATCH_MAX_REQUEST = 256;\nexport const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport const HTTP_LINE_ENDING = \"\\r\\n\";\nexport const HTTP_VERSION_1_1 = \"HTTP/1.1\";\n\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\nexport const StorageBlobLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n \"x-ms-if-tags\",\n \"x-ms-source-if-tags\"\n];\n\nexport const StorageBlobLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\"\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { getTracer, OperationTracingOptions, SpanOptions } from \"@azure/core-tracing\";\nimport { Span, SpanOptions as OTSpanOptions, SpanKind } from \"@opentelemetry/api\";\n\n/**\n * Creates a span using the global tracer.\n * @param name The name of the operation being performed.\n * @param tracingOptions The options for the underlying http request.\n */\nexport function createSpan(\n operationName: string,\n tracingOptions: OperationTracingOptions = {}\n): { span: Span; spanOptions: SpanOptions } {\n const tracer = getTracer();\n const spanOptions: OTSpanOptions = {\n ...tracingOptions.spanOptions,\n kind: SpanKind.INTERNAL\n };\n\n const span = tracer.startSpan(`Azure.Storage.Blob.${operationName}`, spanOptions);\n span.setAttribute(\"az.namespace\", \"Microsoft.Storage\");\n\n let newOptions = tracingOptions.spanOptions || {};\n if (span.isRecording()) {\n newOptions = {\n ...tracingOptions.spanOptions,\n parent: span.context(),\n attributes: {\n ...spanOptions.attributes,\n \"az.namespace\": \"Microsoft.Storage\"\n }\n };\n }\n\n return {\n span,\n spanOptions: newOptions\n };\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { HttpHeaders, isNode, URLBuilder } from \"@azure/core-http\";\n\nimport {\n BlobQueryArrowConfiguration,\n BlobQueryCsvTextConfiguration,\n BlobQueryJsonTextConfiguration\n} from \"../Clients\";\nimport { QuerySerialization, BlobTags } from \"../generated/src/models\";\nimport { DevelopmentConnectionString, HeaderConstants, URLConstants } from \"./constants\";\nimport {\n Tags,\n ObjectReplicationPolicy,\n ObjectReplicationRule,\n ObjectReplicationStatus\n} from \"../models\";\n\n/**\n * Reserved URL characters must be properly escaped for Storage services like Blob or File.\n *\n * ## URL encode and escape strategy for JS SDKs\n *\n * When customers pass a URL string into XxxClient classes constructor, the URL string may already be URL encoded or not.\n * But before sending to Azure Storage server, the URL must be encoded. However, it's hard for a SDK to guess whether the URL\n * string has been encoded or not. We have 2 potential strategies, and chose strategy two for the XxxClient constructors.\n *\n * ### Strategy One: Assume the customer URL string is not encoded, and always encode URL string in SDK.\n *\n * This is what legacy V2 SDK does, simple and works for most of the cases.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%253A\" and send to server. A blob named \"b%3A\" will be created.\n *\n * But this strategy will make it not possible to create a blob with \"?\" in it's name. Because when customer URL string is\n * \"http://account.blob.core.windows.net/con/blob?name\", the \"?name\" will be treated as URL paramter instead of blob name.\n * If customer URL string is \"http://account.blob.core.windows.net/con/blob%3Fname\", a blob named \"blob%3Fname\" will be created.\n * V2 SDK doesn't have this issue because it doesn't allow customer pass in a full URL, it accepts a separate blob name and encodeURIComponent for it.\n * We cannot accept a SDK cannot create a blob name with \"?\". So we implement strategy two:\n *\n * ### Strategy Two: SDK doesn't assume the URL has been encoded or not. It will just escape the special characters.\n *\n * This is what V10 Blob Go SDK does. It accepts a URL type in Go, and call url.EscapedPath() to escape the special chars unescaped.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will escape \":\" like \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%3A\" to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%253A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%253A\" to server. A blob named \"b%3A\" will be created.\n *\n * This strategy gives us flexibility to create with any special characters. But \"%\" will be treated as a special characters, if the URL string\n * is not encoded, there shouldn't a \"%\" in the URL string, otherwise the URL is not a valid URL.\n * If customer needs to create a blob with \"%\" in it's blob name, use \"%25\" instead of \"%\". Just like above 3rd sample.\n * And following URL strings are invalid:\n * - \"http://account.blob.core.windows.net/con/b%\"\n * - \"http://account.blob.core.windows.net/con/b%2\"\n * - \"http://account.blob.core.windows.net/con/b%G\"\n *\n * Another special character is \"?\", use \"%2F\" to represent a blob name with \"?\" in a URL string.\n *\n * ### Strategy for containerName, blobName or other specific XXXName parameters in methods such as `containerClient.getBlobClient(blobName)`\n *\n * We will apply strategy one, and call encodeURIComponent for these parameters like blobName. Because what customers passes in is a plain name instead of a URL.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata\n *\n * @export\n * @param {string} url\n * @returns {string}\n */\nexport function escapeURLPath(url: string): string {\n const urlParsed = URLBuilder.parse(url);\n\n let path = urlParsed.getPath();\n path = path || \"/\";\n\n path = escape(path);\n urlParsed.setPath(path);\n\n return urlParsed.toString();\n}\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n proxyUri?: string; // Development Connection String may contain proxyUri\n}\n\nfunction getProxyUriFromDevConnString(connectionString: string): string {\n // Development Connection String\n // https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key\n let proxyUri = \"\";\n if (connectionString.search(\"DevelopmentStorageProxyUri=\") !== -1) {\n // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri\n const matchCredentials = connectionString.split(\";\");\n for (const element of matchCredentials) {\n if (element.trim().startsWith(\"DevelopmentStorageProxyUri=\")) {\n proxyUri = element.trim().match(\"DevelopmentStorageProxyUri=(.*)\")![1];\n }\n }\n }\n return proxyUri;\n}\n\nexport function getValueInConnString(\n connectionString: string,\n argument:\n | \"BlobEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\"\n) {\n const elements = connectionString.split(\";\");\n for (const element of elements) {\n if (element.trim().startsWith(argument)) {\n return element.trim().match(argument + \"=(.*)\")![1];\n }\n }\n return \"\";\n}\n\n/**\n * Extracts the parts of an Azure Storage account connection string.\n *\n * @export\n * @param {string} connectionString Connection string.\n * @returns {ConnectionString} String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n let proxyUri = \"\";\n\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\n }\n\n // Matching BlobEndpoint in the Account connection string\n let blobEndpoint = getValueInConnString(connectionString, \"BlobEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n blobEndpoint = blobEndpoint.endsWith(\"/\") ? blobEndpoint.slice(0, -1) : blobEndpoint;\n\n if (\n connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1\n ) {\n // Account connection string\n\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n\n if (!blobEndpoint) {\n // BlobEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`\n\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol!.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\"\n );\n }\n\n endpointSuffix = getValueInConnString(connectionString, \"EndpointSuffix\");\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: blobEndpoint,\n accountName,\n accountKey,\n proxyUri\n };\n } else {\n // SAS connection string\n\n let accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n let accountName = getAccountNameFromUrl(blobEndpoint);\n if (!blobEndpoint) {\n throw new Error(\"Invalid BlobEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: blobEndpoint, accountName, accountSas };\n }\n}\n\n/**\n * Internal escape method implemented Strategy Two mentioned in escapeURL() description.\n *\n * @param {string} text\n * @returns {string}\n */\nfunction escape(text: string): string {\n return encodeURIComponent(text)\n .replace(/%2F/g, \"/\") // Don't escape for \"/\"\n .replace(/'/g, \"%27\") // Escape for \"'\"\n .replace(/\\+/g, \"%20\")\n .replace(/%25/g, \"%\"); // Revert encoded \"%\"\n}\n\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} name String to be appended to URL\n * @returns {string} An updated URL string\n */\nexport function appendToURLPath(url: string, name: string): string {\n const urlParsed = URLBuilder.parse(url);\n\n let path = urlParsed.getPath();\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.setPath(path);\n\n return urlParsed.toString();\n}\n\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} name Parameter name\n * @param {string} [value] Parameter value\n * @returns {string} An updated URL string\n */\nexport function setURLParameter(url: string, name: string, value?: string): string {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setQueryParameter(name, value);\n return urlParsed.toString();\n}\n\n/**\n * Get URL parameter by name.\n *\n * @export\n * @param {string} url\n * @param {string} name\n * @returns {(string | string[] | undefined)}\n */\nexport function getURLParameter(url: string, name: string): string | string[] | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getQueryParameterValue(name);\n}\n\n/**\n * Set URL host.\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} host New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url: string, host: string): string {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setHost(host);\n return urlParsed.toString();\n}\n\n/**\n * Get URL path from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLPath(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getPath();\n}\n\n/**\n * Get URL scheme from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLScheme(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getScheme();\n}\n\n/**\n * Get URL path and query from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLPathAndQuery(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n const pathString = urlParsed.getPath();\n if (!pathString) {\n throw new RangeError(\"Invalid url without valid path.\");\n }\n\n let queryString = urlParsed.getQuery() || \"\";\n queryString = queryString.trim();\n if (queryString != \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : `?${queryString}`; // Ensure query string start with '?'\n }\n\n return `${pathString}${queryString}`;\n}\n\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @export\n * @param {string} url\n * @returns {{[key: string]: string}}\n */\nexport function getURLQueries(url: string): { [key: string]: string } {\n let queryString = URLBuilder.parse(url).getQuery();\n if (!queryString) {\n return {};\n }\n\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substr(1) : queryString;\n\n let querySubStrings: string[] = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value: string) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (\n indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1\n );\n });\n\n const queries: { [key: string]: string } = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key: string = splitResults[0];\n const value: string = splitResults[1];\n queries[key] = value;\n }\n\n return queries;\n}\n\n/**\n * Rounds a date off to seconds.\n *\n * @export\n * @param {Date} date\n * @param {boolean} [withMilliseconds=true] If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns {string} Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n\n/**\n * Base64 encode.\n *\n * @export\n * @param {string} content\n * @returns {string}\n */\nexport function base64encode(content: string): string {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n\n/**\n * Base64 decode.\n *\n * @export\n * @param {string} encodedString\n * @returns {string}\n */\nexport function base64decode(encodedString: string): string {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @export\n * @param {number} blockIndex\n * @returns {string}\n */\nexport function generateBlockID(blockIDPrefix: string, blockIndex: number): string {\n // To generate a 64 bytes base64 string, source string should be 48\n const maxSourceStringLength = 48;\n\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n const maxBlockIndexLength = 6;\n\n const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n const res =\n blockIDPrefix +\n padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n\n/**\n * Delay specified time interval.\n *\n * @export\n * @param {number} timeInMs\n * @param {AbortSignalLike} [aborter]\n * @param {Error} [abortError]\n */\nexport async function delay(timeInMs: number, aborter?: AbortSignalLike, abortError?: Error) {\n return new Promise((resolve, reject) => {\n let timeout: any;\n\n const abortHandler = () => {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n\n const resolveHandler = () => {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n\n timeout = setTimeout(resolveHandler, timeInMs);\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n });\n}\n\n/**\n * String.prototype.padStart()\n *\n * @export\n * @param {string} currentString\n * @param {number} targetLength\n * @param {string} [padString=\" \"]\n * @returns {string}\n */\nexport function padStart(\n currentString: string,\n targetLength: number,\n padString: string = \" \"\n): string {\n // TS doesn't know this code needs to run downlevel sometimes.\n // @ts-expect-error\n if (String.prototype.padStart) {\n return currentString.padStart(targetLength, padString);\n }\n\n padString = padString || \" \";\n if (currentString.length > targetLength) {\n return currentString;\n } else {\n targetLength = targetLength - currentString.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + currentString;\n }\n}\n\nexport function sanitizeURL(url: string): string {\n let safeURL: string = url;\n if (getURLParameter(safeURL, URLConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, URLConstants.Parameters.SIGNATURE, \"*****\");\n }\n\n return safeURL;\n}\n\nexport function sanitizeHeaders(originalHeader: HttpHeaders): HttpHeaders {\n const headers: HttpHeaders = new HttpHeaders();\n for (const header of originalHeader.headersArray()) {\n if (header.name.toLowerCase() === HeaderConstants.AUTHORIZATION.toLowerCase()) {\n headers.set(header.name, \"*****\");\n } else if (header.name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(header.name, sanitizeURL(header.value));\n } else {\n headers.set(header.name, header.value);\n }\n }\n\n return headers;\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @export\n * @param {string} str1\n * @param {string} str2\n * @returns {boolean}\n */\nexport function iEqual(str1: string, str2: string): boolean {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n\n/**\n * Extracts account name from the url\n * @param {string} url url to extract the account name from\n * @returns {string} with the account name\n */\nexport function getAccountNameFromUrl(url: string): string {\n const parsedUrl: URLBuilder = URLBuilder.parse(url);\n let accountName;\n try {\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n accountName = parsedUrl.getHost()!.split(\".\")[0];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = parsedUrl.getPath()!.split(\"/\")[1];\n } else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n } catch (error) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\n\nexport function isIpEndpointStyle(parsedUrl: URLBuilder): boolean {\n if (parsedUrl.getHost() == undefined) {\n return false;\n }\n\n const host =\n parsedUrl.getHost()! + (parsedUrl.getPort() == undefined ? \"\" : \":\" + parsedUrl.getPort());\n\n // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'.\n // Case 2: localhost(:port), use broad regex to match port part.\n // Case 3: Ipv4, use broad regex which just check if host contains Ipv4.\n // For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.\n return /^.*:.*:.*$|^localhost(:[0-9]+)?$|^(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])){3}(:[0-9]+)?$/.test(\n host\n );\n}\n\n/**\n * Convert Tags to encoded string.\n *\n * @export\n * @param {Tags} tags\n * @returns {string | undefined}\n */\nexport function toBlobTagsString(tags?: Tags): string | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const tagPairs = [];\n for (const key in tags) {\n if (tags.hasOwnProperty(key)) {\n const value = tags[key];\n tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n }\n\n return tagPairs.join(\"&\");\n}\n\n/**\n * Convert Tags type to BlobTags.\n *\n * @export\n * @param {Tags} [tags]\n * @returns {(BlobTags | undefined)}\n */\nexport function toBlobTags(tags?: Tags): BlobTags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: BlobTags = {\n blobTagSet: []\n };\n\n for (const key in tags) {\n if (tags.hasOwnProperty(key)) {\n const value = tags[key];\n res.blobTagSet.push({\n key,\n value\n });\n }\n }\n return res;\n}\n\n/**\n * Covert BlobTags to Tags type.\n *\n * @export\n * @param {BlobTags} [tags]\n * @returns {(Tags | undefined)}\n */\nexport function toTags(tags?: BlobTags): Tags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: Tags = {};\n for (const blobTag of tags.blobTagSet) {\n res[blobTag.key] = blobTag.value;\n }\n return res;\n}\n\n/**\n * Convert BlobQueryTextConfiguration to QuerySerialization type.\n *\n * @export\n * @param {(BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration | BlobQueryArrowConfiguration)} [textConfiguration]\n * @returns {(QuerySerialization | undefined)}\n */\nexport function toQuerySerialization(\n textConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration\n): QuerySerialization | undefined {\n if (textConfiguration === undefined) {\n return undefined;\n }\n\n switch (textConfiguration.kind) {\n case \"csv\":\n return {\n format: {\n type: \"delimited\",\n delimitedTextConfiguration: {\n columnSeparator: textConfiguration.columnSeparator || \",\",\n fieldQuote: textConfiguration.fieldQuote || \"\",\n recordSeparator: textConfiguration.recordSeparator,\n escapeChar: textConfiguration.escapeCharacter || \"\",\n headersPresent: textConfiguration.hasHeaders || false\n }\n }\n };\n case \"json\":\n return {\n format: {\n type: \"json\",\n jsonTextConfiguration: {\n recordSeparator: textConfiguration.recordSeparator\n }\n }\n };\n case \"arrow\":\n return {\n format: {\n type: \"arrow\",\n arrowConfiguration: {\n schema: textConfiguration.schema\n }\n }\n };\n\n default:\n throw Error(\"Invalid BlobQueryTextConfiguration.\");\n }\n}\n\nexport function parseObjectReplicationRecord(\n objectReplicationRecord?: Record\n): ObjectReplicationPolicy[] | undefined {\n if (!objectReplicationRecord) {\n return undefined;\n }\n\n if (\"policy-id\" in objectReplicationRecord) {\n // If the dictionary contains a key with policy id, we are not required to do any parsing since\n // the policy id should already be stored in the ObjectReplicationDestinationPolicyId.\n return undefined;\n }\n\n let orProperties: ObjectReplicationPolicy[] = [];\n for (const key in objectReplicationRecord) {\n const ids = key.split(\"_\");\n const policyPrefix = \"or-\";\n if (ids[0].startsWith(policyPrefix)) {\n ids[0] = ids[0].substring(policyPrefix.length);\n }\n const rule: ObjectReplicationRule = {\n ruleId: ids[1],\n replicationStatus: objectReplicationRecord[key] as ObjectReplicationStatus\n };\n const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]);\n if (policyIndex > -1) {\n orProperties[policyIndex].rules.push(rule);\n } else {\n orProperties.push({\n policyId: ids[0],\n rules: [rule]\n });\n }\n }\n return orProperties;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { Constants } from \"./constants\";\n\nconst validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;\n\n/**\n * A constant that indicates whether the environment is node.js or browser based.\n */\nexport const isNode =\n typeof process !== \"undefined\" &&\n !!process.version &&\n !!process.versions &&\n !!process.versions.node;\n\n/**\n * Checks if a parsed URL is HTTPS\n *\n * @param {object} urlToCheck The url to check\n * @return {boolean} True if the URL is HTTPS; false otherwise.\n */\nexport function urlIsHTTPS(urlToCheck: { protocol: string }): boolean {\n return urlToCheck.protocol.toLowerCase() === Constants.HTTPS;\n}\n\n/**\n * Encodes an URI.\n *\n * @param {string} uri The URI to be encoded.\n * @return {string} The encoded URI.\n */\nexport function encodeUri(uri: string): string {\n return encodeURIComponent(uri)\n .replace(/!/g, \"%21\")\n .replace(/\"/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\n\n/**\n * Returns a stripped version of the Http Response which only contains body,\n * headers and the status.\n *\n * @param {HttpOperationResponse} response The Http Response\n *\n * @return {object} The stripped version of Http Response.\n */\nexport function stripResponse(response: HttpOperationResponse): any {\n const strippedResponse: any = {};\n strippedResponse.body = response.bodyAsText;\n strippedResponse.headers = response.headers;\n strippedResponse.status = response.status;\n return strippedResponse;\n}\n\n/**\n * Returns a stripped version of the Http Request that does not contain the\n * Authorization header.\n *\n * @param {WebResourceLike} request The Http Request object\n *\n * @return {WebResourceLike} The stripped version of Http Request.\n */\nexport function stripRequest(request: WebResourceLike): WebResourceLike {\n const strippedRequest = request.clone();\n if (strippedRequest.headers) {\n strippedRequest.headers.remove(\"authorization\");\n }\n return strippedRequest;\n}\n\n/**\n * Validates the given uuid as a string\n *\n * @param {string} uuid The uuid as a string that needs to be validated\n *\n * @return {boolean} True if the uuid is valid; false otherwise.\n */\nexport function isValidUuid(uuid: string): boolean {\n return validUuidRegex.test(uuid);\n}\n\n/**\n * Generated UUID\n *\n * @return {string} RFC4122 v4 UUID.\n */\nexport function generateUuid(): string {\n return uuidv4();\n}\n\n/**\n * Executes an array of promises sequentially. Inspiration of this method is here:\n * https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html. An awesome blog on promises!\n *\n * @param {Array} promiseFactories An array of promise factories(A function that return a promise)\n *\n * @param {any} [kickstart] Input to the first promise that is used to kickstart the promise chain.\n * If not provided then the promise chain starts with undefined.\n *\n * @return A chain of resolved or rejected promises\n */\nexport function executePromisesSequentially(\n promiseFactories: Array,\n kickstart: any\n): Promise {\n let result = Promise.resolve(kickstart);\n promiseFactories.forEach((promiseFactory) => {\n result = result.then(promiseFactory);\n });\n return result;\n}\n\n/**\n * A wrapper for setTimeout that resolves a promise after t milliseconds.\n * @param {number} t The number of milliseconds to be delayed.\n * @param {T} value The value to be resolved with after a timeout of t milliseconds.\n * @returns {Promise} Resolved promise\n */\nexport function delay(t: number, value?: T): Promise {\n return new Promise((resolve) => setTimeout(() => resolve(value), t));\n}\n\n/**\n * Service callback that is returned for REST requests initiated by the service client.\n */\nexport interface ServiceCallback {\n /**\n * A method that will be invoked as a callback to a service function.\n * @param {Error | RestError | null} err The error occurred if any, while executing the request; otherwise null.\n * @param {TResult} [result] The deserialized response body if an error did not occur.\n * @param {WebResourceLike} [request] The raw/actual request sent to the server if an error did not occur.\n * @param {HttpOperationResponse} [response] The raw/actual response from the server if an error did not occur.\n */\n (\n err: Error | RestError | null,\n result?: TResult,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ): void;\n}\n\n/**\n * Converts a Promise to a callback.\n * @param {Promise} promise The Promise to be converted to a callback\n * @returns {Function} A function that takes the callback (cb: Function): void\n * @deprecated generated code should instead depend on responseToBody\n */\nexport function promiseToCallback(promise: Promise): Function {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return (cb: Function): void => {\n promise\n .then((data: any) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n return cb(undefined, data);\n })\n .catch((err: Error) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(err);\n });\n };\n}\n\n/**\n * Converts a Promise to a service callback.\n * @param {Promise} promise - The Promise of HttpOperationResponse to be converted to a service callback\n * @returns {Function} A function that takes the service callback (cb: ServiceCallback): void\n */\nexport function promiseToServiceCallback(promise: Promise): Function {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return (cb: ServiceCallback): void => {\n promise\n .then((data: HttpOperationResponse) => {\n return process.nextTick(cb, undefined, data.parsedBody as T, data.request, data);\n })\n .catch((err: Error) => {\n process.nextTick(cb, err);\n });\n };\n}\n\nexport function prepareXMLRootList(\n obj: any,\n elementName: string,\n xmlNamespaceKey?: string,\n xmlNamespace?: string\n): { [s: string]: any } {\n if (!Array.isArray(obj)) {\n obj = [obj];\n }\n\n if (!xmlNamespaceKey || !xmlNamespace) {\n return { [elementName]: obj };\n }\n\n return { [elementName]: obj, $: { [xmlNamespaceKey]: xmlNamespace } };\n}\n\n/**\n * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor\n * @param {object} targetCtor The target object on which the properties need to be applied.\n * @param {Array} sourceCtors An array of source objects from which the properties need to be taken.\n */\nexport function applyMixins(targetCtor: any, sourceCtors: any[]): void {\n sourceCtors.forEach((sourceCtors) => {\n Object.getOwnPropertyNames(sourceCtors.prototype).forEach((name) => {\n targetCtor.prototype[name] = sourceCtors.prototype[name];\n });\n });\n}\n\nconst validateISODuration = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n/**\n * Indicates whether the given string is in ISO 8601 format.\n * @param {string} value The value to be validated for ISO 8601 duration format.\n * @return {boolean} `true` if valid, `false` otherwise.\n */\nexport function isDuration(value: string): boolean {\n return validateISODuration.test(value);\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param {string | undefined} value The value to search and replace in.\n * @param {string} searchValue The value to search for in the value argument.\n * @param {string} replaceValue The value to replace searchValue with in the value argument.\n * @returns {string | undefined} The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n\n/**\n * Determines whether the given entity is a basic/primitive type\n * (string, number, boolean, null, undefined).\n * @param {any} value Any entity\n * @return {boolean} - true is it is primitive type, false otherwise.\n */\nexport function isPrimitiveType(value: any): boolean {\n return (typeof value !== \"object\" && typeof value !== \"function\") || value === null;\n}\n\nexport function getEnvironmentValue(name: string): string | undefined {\n if (process.env[name]) {\n return process.env[name];\n } else if (process.env[name.toLowerCase()]) {\n return process.env[name.toLowerCase()];\n }\n return undefined;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { AbortError } from \"@azure/abort-controller\";\n\nimport {\n AbortSignalLike,\n BaseRequestPolicy,\n HttpOperationResponse,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n RestError,\n WebResource\n} from \"@azure/core-http\";\n\nimport { StorageRetryOptions } from \"../StorageRetryPolicyFactory\";\nimport { URLConstants } from \"../utils/constants\";\nimport { delay, setURLHost, setURLParameter } from \"../utils/utils.common\";\nimport { logger } from \"../log\";\n\n/**\n * A factory method used to generated a RetryPolicy factory.\n *\n * @export\n * @param {StorageRetryOptions} retryOptions\n * @returns\n */\nexport function NewRetryPolicyFactory(retryOptions?: StorageRetryOptions): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy => {\n return new StorageRetryPolicy(nextPolicy, options, retryOptions);\n }\n };\n}\n\n/**\n * RetryPolicy types.\n *\n * @export\n * @enum {number}\n */\nexport enum StorageRetryPolicyType {\n /**\n * Exponential retry. Retry time delay grows exponentially.\n */\n EXPONENTIAL,\n /**\n * Linear retry. Retry time delay grows linearly.\n */\n FIXED\n}\n\n// Default values of StorageRetryOptions\nconst DEFAULT_RETRY_OPTIONS: StorageRetryOptions = {\n maxRetryDelayInMs: 120 * 1000,\n maxTries: 4,\n retryDelayInMs: 4 * 1000,\n retryPolicyType: StorageRetryPolicyType.EXPONENTIAL,\n secondaryHost: \"\",\n tryTimeoutInMs: undefined // Use server side default timeout strategy\n};\n\nconst RETRY_ABORT_ERROR = new AbortError(\"The operation was aborted.\");\n\n/**\n * Retry policy with exponential retry and linear retry implemented.\n *\n * @class RetryPolicy\n * @extends {BaseRequestPolicy}\n */\nexport class StorageRetryPolicy extends BaseRequestPolicy {\n /**\n * RetryOptions.\n *\n * @private\n * @type {StorageRetryOptions}\n * @memberof StorageRetryPolicy\n */\n private readonly retryOptions: StorageRetryOptions;\n\n /**\n * Creates an instance of RetryPolicy.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @param {StorageRetryOptions} [retryOptions=DEFAULT_RETRY_OPTIONS]\n * @memberof StorageRetryPolicy\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryOptions: StorageRetryOptions = DEFAULT_RETRY_OPTIONS\n ) {\n super(nextPolicy, options);\n\n // Initialize retry options\n this.retryOptions = {\n retryPolicyType: retryOptions.retryPolicyType\n ? retryOptions.retryPolicyType\n : DEFAULT_RETRY_OPTIONS.retryPolicyType,\n\n maxTries:\n retryOptions.maxTries && retryOptions.maxTries >= 1\n ? Math.floor(retryOptions.maxTries)\n : DEFAULT_RETRY_OPTIONS.maxTries,\n\n tryTimeoutInMs:\n retryOptions.tryTimeoutInMs && retryOptions.tryTimeoutInMs >= 0\n ? retryOptions.tryTimeoutInMs\n : DEFAULT_RETRY_OPTIONS.tryTimeoutInMs,\n\n retryDelayInMs:\n retryOptions.retryDelayInMs && retryOptions.retryDelayInMs >= 0\n ? Math.min(\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs!\n )\n : DEFAULT_RETRY_OPTIONS.retryDelayInMs,\n\n maxRetryDelayInMs:\n retryOptions.maxRetryDelayInMs && retryOptions.maxRetryDelayInMs >= 0\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs,\n\n secondaryHost: retryOptions.secondaryHost\n ? retryOptions.secondaryHost\n : DEFAULT_RETRY_OPTIONS.secondaryHost\n };\n }\n\n /**\n * Sends request.\n *\n * @param {WebResource} request\n * @returns {Promise}\n * @memberof StorageRetryPolicy\n */\n public async sendRequest(request: WebResource): Promise {\n return this.attemptSendRequest(request, false, 1);\n }\n\n /**\n * Decide and perform next retry. Won't mutate request parameter.\n *\n * @protected\n * @param {WebResource} request\n * @param {boolean} secondaryHas404 If attempt was against the secondary & it returned a StatusNotFound (404), then\n * the resource was not found. This may be due to replication delay. So, in this\n * case, we'll never try the secondary again for this operation.\n * @param {number} attempt How many retries has been attempted to performed, starting from 1, which includes\n * the attempt will be performed by this method call.\n * @returns {Promise}\n * @memberof StorageRetryPolicy\n */\n protected async attemptSendRequest(\n request: WebResource,\n secondaryHas404: boolean,\n attempt: number\n ): Promise {\n const newRequest: WebResource = request.clone();\n\n const isPrimaryRetry =\n secondaryHas404 ||\n !this.retryOptions.secondaryHost ||\n !(request.method === \"GET\" || request.method === \"HEAD\" || request.method === \"OPTIONS\") ||\n attempt % 2 === 1;\n\n if (!isPrimaryRetry) {\n newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost!);\n }\n\n // Set the server-side timeout query parameter \"timeout=[seconds]\"\n if (this.retryOptions.tryTimeoutInMs) {\n newRequest.url = setURLParameter(\n newRequest.url,\n URLConstants.Parameters.TIMEOUT,\n Math.floor(this.retryOptions.tryTimeoutInMs! / 1000).toString()\n );\n }\n\n let response: HttpOperationResponse | undefined;\n try {\n logger.info(`RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? \"Primary\" : \"Secondary\"}`);\n response = await this._nextPolicy.sendRequest(newRequest);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response)) {\n return response;\n }\n\n secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404);\n } catch (err) {\n logger.error(`RetryPolicy: Caught error, message: ${err.message}, code: ${err.code}`);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response, err)) {\n throw err;\n }\n }\n\n await this.delay(isPrimaryRetry, attempt, request.abortSignal);\n return await this.attemptSendRequest(request, secondaryHas404, ++attempt);\n }\n\n /**\n * Decide whether to retry according to last HTTP response and retry counters.\n *\n * @protected\n * @param {boolean} isPrimaryRetry\n * @param {number} attempt\n * @param {HttpOperationResponse} [response]\n * @param {RestError} [err]\n * @returns {boolean}\n * @memberof StorageRetryPolicy\n */\n protected shouldRetry(\n isPrimaryRetry: boolean,\n attempt: number,\n response?: HttpOperationResponse,\n err?: RestError\n ): boolean {\n if (attempt >= this.retryOptions.maxTries!) {\n logger.info(\n `RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions\n .maxTries!}, no further try.`\n );\n return false;\n }\n\n // Handle network failures, you may need to customize the list when you implement\n // your own http client\n const retriableErrors = [\n \"ETIMEDOUT\",\n \"ESOCKETTIMEDOUT\",\n \"ECONNREFUSED\",\n \"ECONNRESET\",\n \"ENOENT\",\n \"ENOTFOUND\",\n \"TIMEOUT\",\n \"EPIPE\",\n \"REQUEST_SEND_ERROR\" // For default xhr based http client provided in ms-rest-js\n ];\n if (err) {\n for (const retriableError of retriableErrors) {\n if (\n err.name.toUpperCase().includes(retriableError) ||\n err.message.toUpperCase().includes(retriableError) ||\n (err.code &&\n err.code\n .toString()\n .toUpperCase()\n .includes(retriableError))\n ) {\n logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`);\n return true;\n }\n }\n }\n\n // If attempt was against the secondary & it returned a StatusNotFound (404), then\n // the resource was not found. This may be due to replication delay. So, in this\n // case, we'll never try the secondary again for this operation.\n if (response || err) {\n const statusCode = response ? response.status : err ? err.statusCode : 0;\n if (!isPrimaryRetry && statusCode === 404) {\n logger.info(`RetryPolicy: Secondary access with 404, will retry.`);\n return true;\n }\n\n // Server internal error or server timeout\n if (statusCode === 503 || statusCode === 500) {\n logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`);\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Delay a calculated time between retries.\n *\n * @private\n * @param {boolean} isPrimaryRetry\n * @param {number} attempt\n * @param {AbortSignalLike} [abortSignal]\n * @memberof StorageRetryPolicy\n */\n private async delay(isPrimaryRetry: boolean, attempt: number, abortSignal?: AbortSignalLike) {\n let delayTimeInMs: number = 0;\n\n if (isPrimaryRetry) {\n switch (this.retryOptions.retryPolicyType) {\n case StorageRetryPolicyType.EXPONENTIAL:\n delayTimeInMs = Math.min(\n (Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs!,\n this.retryOptions.maxRetryDelayInMs!\n );\n break;\n case StorageRetryPolicyType.FIXED:\n delayTimeInMs = this.retryOptions.retryDelayInMs!;\n break;\n }\n } else {\n delayTimeInMs = Math.random() * 1000;\n }\n\n logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`);\n return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The @azure/logger configuration for this package.\n */\nexport const logger = createClientLogger(\"storage-blob\");\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport {\n BaseRequestPolicy,\n HttpOperationResponse,\n isNode,\n RequestPolicy,\n RequestPolicyOptions,\n WebResource\n} from \"@azure/core-http\";\n\nimport { HeaderConstants, URLConstants } from \"../utils/constants\";\nimport { setURLParameter } from \"../utils/utils.common\";\n\n/**\n * StorageBrowserPolicy will handle differences between Node.js and browser runtime, including:\n *\n * 1. Browsers cache GET/HEAD requests by adding conditional headers such as 'IF_MODIFIED_SINCE'.\n * StorageBrowserPolicy is a policy used to add a timestamp query to GET/HEAD request URL\n * thus avoid the browser cache.\n *\n * 2. Remove cookie header for security\n *\n * 3. Remove content-length header to avoid browsers warning\n *\n * @class StorageBrowserPolicy\n * @extends {BaseRequestPolicy}\n */\nexport class StorageBrowserPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of StorageBrowserPolicy.\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @memberof StorageBrowserPolicy\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends out request.\n *\n * @param {WebResource} request\n * @returns {Promise}\n * @memberof StorageBrowserPolicy\n */\n public async sendRequest(request: WebResource): Promise {\n if (isNode) {\n return this._nextPolicy.sendRequest(request);\n }\n\n if (request.method.toUpperCase() === \"GET\" || request.method.toUpperCase() === \"HEAD\") {\n request.url = setURLParameter(\n request.url,\n URLConstants.Parameters.FORCE_BROWSER_NO_CACHE,\n new Date().getTime().toString()\n );\n }\n\n request.headers.remove(HeaderConstants.COOKIE);\n\n // According to XHR standards, content-length should be fully controlled by browsers\n request.headers.remove(HeaderConstants.CONTENT_LENGTH);\n\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { StorageBrowserPolicy } from \"./policies/StorageBrowserPolicy\";\nexport { StorageBrowserPolicy };\n\n/**\n * StorageBrowserPolicyFactory is a factory class helping generating StorageBrowserPolicy objects.\n *\n * @export\n * @class StorageBrowserPolicyFactory\n * @implements {RequestPolicyFactory}\n */\nexport class StorageBrowserPolicyFactory implements RequestPolicyFactory {\n /**\n * Creates a StorageBrowserPolicyFactory object.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @returns {StorageBrowserPolicy}\n * @memberof StorageBrowserPolicyFactory\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageBrowserPolicy {\n return new StorageBrowserPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { StorageRetryPolicy, StorageRetryPolicyType } from \"./policies/StorageRetryPolicy\";\n\nexport { StorageRetryPolicyType, StorageRetryPolicy };\n\n/**\n * Storage Blob retry options interface.\n *\n * @export\n * @interface StorageRetryOptions\n */\nexport interface StorageRetryOptions {\n /**\n * Optional. StorageRetryPolicyType, default is exponential retry policy.\n *\n * @type {StorageRetryPolicyType}\n * @memberof StorageRetryOptions\n */\n readonly retryPolicyType?: StorageRetryPolicyType;\n\n /**\n * Optional. Max try number of attempts, default is 4.\n * A value of 1 means 1 try and no retries.\n * A value smaller than 1 means default retry number of attempts.\n *\n * @type {number}\n * @memberof StorageRetryOptions\n */\n readonly maxTries?: number;\n\n /**\n * Optional. Indicates the maximum time in ms allowed for any single try of an HTTP request.\n * A value of zero or undefined means no default timeout on SDK client, Azure\n * Storage server's default timeout policy will be used.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-blob-service-operations\n *\n * @type {number}\n * @memberof StorageRetryOptions\n */\n readonly tryTimeoutInMs?: number;\n\n /**\n * Optional. Specifies the amount of delay to use before retrying an operation (default is 4s or 4 * 1000ms).\n * The delay increases (exponentially or linearly) with each retry up to a maximum specified by\n * maxRetryDelayInMs. If you specify 0, then you must also specify 0 for maxRetryDelayInMs.\n *\n * @type {number}\n * @memberof StorageRetryOptions\n */\n readonly retryDelayInMs?: number;\n\n /**\n * Optional. Specifies the maximum delay allowed before retrying an operation (default is 120s or 120 * 1000ms).\n * If you specify 0, then you must also specify 0 for retryDelayInMs.\n *\n * @type {number}\n * @memberof StorageRetryOptions\n */\n readonly maxRetryDelayInMs?: number;\n\n /**\n * If a secondaryHost is specified, retries will be tried against this host. If secondaryHost is undefined\n * (the default) then operations are not retried against another host.\n *\n * NOTE: Before setting this field, make sure you understand the issues around\n * reading stale and potentially-inconsistent data at\n * {@link https://docs.microsoft.com/en-us/azure/storage/common/storage-designing-ha-apps-with-ragrs}\n *\n * @type {string}\n * @memberof StorageRetryOptions\n */\n readonly secondaryHost?: string;\n}\n\n/**\n * StorageRetryPolicyFactory is a factory class helping generating {@link StorageRetryPolicy} objects.\n *\n * @export\n * @class StorageRetryPolicyFactory\n * @implements {RequestPolicyFactory}\n */\nexport class StorageRetryPolicyFactory implements RequestPolicyFactory {\n private retryOptions?: StorageRetryOptions;\n\n /**\n * Creates an instance of StorageRetryPolicyFactory.\n * @param {StorageRetryOptions} [retryOptions]\n * @memberof StorageRetryPolicyFactory\n */\n constructor(retryOptions?: StorageRetryOptions) {\n this.retryOptions = retryOptions;\n }\n\n /**\n * Creates a StorageRetryPolicy object.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @returns {StorageRetryPolicy}\n * @memberof StorageRetryPolicyFactory\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy {\n return new StorageRetryPolicy(nextPolicy, options, this.retryOptions);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DefaultHttpClient } from \"@azure/core-http\";\nimport { IHttpClient } from \"../Pipeline\";\n\nconst _defaultHttpClient = new DefaultHttpClient();\n\nexport function getCachedDefaultHttpClient(): IHttpClient {\n return _defaultHttpClient;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport {\n BaseRequestPolicy,\n deserializationPolicy,\n disableResponseDecompressionPolicy,\n HttpClient as IHttpClient,\n HttpHeaders,\n HttpOperationResponse,\n HttpRequestBody,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n ServiceClientOptions,\n WebResource,\n proxyPolicy,\n isNode,\n TokenCredential,\n isTokenCredential,\n bearerTokenAuthenticationPolicy,\n tracingPolicy,\n logPolicy,\n ProxyOptions,\n keepAlivePolicy,\n KeepAliveOptions,\n generateClientRequestIdPolicy,\n UserAgentOptions\n} from \"@azure/core-http\";\n\nimport { logger } from \"./log\";\nimport { StorageBrowserPolicyFactory } from \"./StorageBrowserPolicyFactory\";\nimport { StorageRetryOptions, StorageRetryPolicyFactory } from \"./StorageRetryPolicyFactory\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport {\n StorageOAuthScopes,\n StorageBlobLoggingAllowedHeaderNames,\n StorageBlobLoggingAllowedQueryParameters\n} from \"./utils/constants\";\nimport { TelemetryPolicyFactory } from \"./TelemetryPolicyFactory\";\nimport { getCachedDefaultHttpClient } from \"./utils/cache\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n BaseRequestPolicy,\n StorageOAuthScopes,\n deserializationPolicy,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions\n};\n\n/**\n * Option interface for Pipeline constructor.\n *\n * @export\n * @interface PipelineOptions\n */\nexport interface PipelineOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n *\n * @type {IHttpClient}\n * @memberof PipelineOptions\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * A Pipeline class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n *\n * @export\n * @class Pipeline\n */\nexport class Pipeline {\n /**\n * A list of chained request policy factories.\n *\n * @type {RequestPolicyFactory[]}\n * @memberof Pipeline\n */\n public readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n *\n * @type {PipelineOptions}\n * @memberof Pipeline\n */\n public readonly options: PipelineOptions;\n\n /**\n * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface.\n *\n * @param {RequestPolicyFactory[]} factories\n * @param {PipelineOptions} [options={}]\n * @memberof Pipeline\n */\n constructor(factories: RequestPolicyFactory[], options: PipelineOptions = {}) {\n this.factories = factories;\n // when options.httpClient is not specified, passing in a DefaultHttpClient instance to\n // avoid each client creating its own http client.\n this.options = {\n ...options,\n httpClient: options.httpClient || getCachedDefaultHttpClient()\n };\n }\n\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns {ServiceClientOptions} The ServiceClientOptions object from this Pipeline.\n * @memberof Pipeline\n */\n public toServiceClientOptions(): ServiceClientOptions {\n return {\n httpClient: this.options.httpClient,\n requestPolicyFactories: this.factories\n };\n }\n}\n\n/**\n * Options interface for the {@link newPipeline} function.\n *\n * @export\n * @interface StoragePipelineOptions\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n *\n * @type {UserAgentOptions}\n * @memberof StoragePipelineOptions\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n *\n * @type {StorageRetryOptions}\n * @memberof StoragePipelineOptions\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n *\n * @type {KeepAliveOptions}\n * @memberof StoragePipelineOptions\n */\n keepAliveOptions?: KeepAliveOptions;\n\n /**\n * Configures the HTTP client to send requests and receive responses.\n *\n * @type {IHttpClient}\n * @memberof StoragePipelineOptions\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\n * @export\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [pipelineOptions] Optional. Options.\n * @returns {Pipeline} A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {}\n): Pipeline {\n if (credential === undefined) {\n credential = new AnonymousCredential();\n }\n\n // Order is important. Closer to the API at the top & closer to the network at the bottom.\n // The credential's policy factory must appear close to the wire so it can sign any\n // changes made by other factories (like UniqueRequestIDPolicyFactory)\n\n const telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions);\n const factories: RequestPolicyFactory[] = [\n tracingPolicy({ userAgent: telemetryPolicy.telemetryString }),\n keepAlivePolicy(pipelineOptions.keepAliveOptions),\n telemetryPolicy,\n generateClientRequestIdPolicy(),\n new StorageBrowserPolicyFactory(),\n deserializationPolicy(), // Default deserializationPolicy is provided by protocol layer\n new StorageRetryPolicyFactory(pipelineOptions.retryOptions),\n logPolicy({\n logger: logger.info,\n allowedHeaderNames: StorageBlobLoggingAllowedHeaderNames,\n allowedQueryParameters: StorageBlobLoggingAllowedQueryParameters\n })\n ];\n\n if (isNode) {\n // policies only available in Node.js runtime, not in browsers\n factories.push(proxyPolicy(pipelineOptions.proxyOptions));\n factories.push(disableResponseDecompressionPolicy());\n }\n factories.push(\n isTokenCredential(credential)\n ? bearerTokenAuthenticationPolicy(credential, StorageOAuthScopes)\n : credential\n );\n\n return new Pipeline(factories, pipelineOptions);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * The different levels of logs that can be used with the HttpPipelineLogger.\n */\nexport enum HttpPipelineLogLevel {\n /**\n * A log level that indicates that no logs will be logged.\n */\n OFF,\n\n /**\n * An error log.\n */\n ERROR,\n\n /**\n * A warning log.\n */\n WARNING,\n\n /**\n * An information log.\n */\n INFO\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { HttpPipelineLogger } from \"../httpPipelineLogger\";\nimport { HttpPipelineLogLevel } from \"../httpPipelineLogLevel\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Creates a new RequestPolicy per-request that uses the provided nextPolicy.\n */\nexport type RequestPolicyFactory = {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike): RequestPolicy;\n};\n\nexport interface RequestPolicy {\n sendRequest(httpRequest: WebResourceLike): Promise;\n}\n\nexport abstract class BaseRequestPolicy implements RequestPolicy {\n protected constructor(\n readonly _nextPolicy: RequestPolicy,\n readonly _options: RequestPolicyOptionsLike\n ) {}\n\n public abstract sendRequest(webResource: WebResourceLike): Promise;\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return this._options.shouldLog(logLevel);\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel The log level of this log.\n * @param message The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n this._options.log(logLevel, message);\n }\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport interface RequestPolicyOptionsLike {\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n shouldLog(logLevel: HttpPipelineLogLevel): boolean;\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel The log level of this log.\n * @param message The message of this log.\n */\n log(logLevel: HttpPipelineLogLevel, message: string): void;\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport class RequestPolicyOptions {\n constructor(private _logger?: HttpPipelineLogger) {}\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return (\n !!this._logger &&\n logLevel !== HttpPipelineLogLevel.OFF &&\n logLevel <= this._logger.minimumLogLevel\n );\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel The log level of this log.\n * @param message The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n if (this._logger && this.shouldLog(logLevel)) {\n this._logger.log(logLevel, message);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { RequestPolicy, RequestPolicyOptions } from \"@azure/core-http\";\n\nimport { CredentialPolicy } from \"./CredentialPolicy\";\n\n/**\n * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources\n * or for use with Shared Access Signatures (SAS).\n *\n * @export\n * @class AnonymousCredentialPolicy\n * @extends {CredentialPolicy}\n */\nexport class AnonymousCredentialPolicy extends CredentialPolicy {\n /**\n * Creates an instance of AnonymousCredentialPolicy.\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @memberof AnonymousCredentialPolicy\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { BaseRequestPolicy, HttpOperationResponse, WebResource } from \"@azure/core-http\";\n\n/**\n * Credential policy used to sign HTTP(S) requests before sending. This is an\n * abstract class.\n *\n * @export\n * @abstract\n * @class CredentialPolicy\n * @extends {BaseRequestPolicy}\n */\nexport abstract class CredentialPolicy extends BaseRequestPolicy {\n /**\n * Sends out request.\n *\n * @param {WebResource} request\n * @returns {Promise}\n * @memberof CredentialPolicy\n */\n public sendRequest(request: WebResource): Promise {\n return this._nextPolicy.sendRequest(this.signRequest(request));\n }\n\n /**\n * Child classes must implement this method with request signing. This method\n * will be executed in {@link sendRequest}.\n *\n * @protected\n * @abstract\n * @param {WebResource} request\n * @returns {WebResource}\n * @memberof CredentialPolicy\n */\n protected signRequest(request: WebResource): WebResource {\n // Child classes must override this method with request signing. This method\n // will be executed in sendRequest().\n return request;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { RequestPolicy, RequestPolicyOptions } from \"@azure/core-http\";\n\nimport { AnonymousCredentialPolicy } from \"../policies/AnonymousCredentialPolicy\";\nimport { Credential } from \"./Credential\";\n\n/**\n * AnonymousCredential provides a credentialPolicyCreator member used to create\n * AnonymousCredentialPolicy objects. AnonymousCredentialPolicy is used with\n * HTTP(S) requests that read public resources or for use with Shared Access\n * Signatures (SAS).\n *\n * @export\n * @class AnonymousCredential\n * @extends {Credential}\n */\nexport class AnonymousCredential extends Credential {\n /**\n * Creates an {@link AnonymousCredentialPolicy} object.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @returns {AnonymousCredentialPolicy}\n * @memberof AnonymousCredential\n */\n public create(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions\n ): AnonymousCredentialPolicy {\n return new AnonymousCredentialPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { CredentialPolicy } from \"../policies/CredentialPolicy\";\n\n/**\n * Credential is an abstract class for Azure Storage HTTP requests signing. This\n * class will host an credentialPolicyCreator factory which generates CredentialPolicy.\n *\n * @export\n * @abstract\n * @class Credential\n */\nexport abstract class Credential implements RequestPolicyFactory {\n /**\n * Creates a RequestPolicy object.\n *\n * @param {RequestPolicy} _nextPolicy\n * @param {RequestPolicyOptions} _options\n * @returns {RequestPolicy}\n * @memberof Credential\n */\n public create(\n // tslint:disable-next-line:variable-name\n _nextPolicy: RequestPolicy,\n // tslint:disable-next-line:variable-name\n _options: RequestPolicyOptions\n ): RequestPolicy {\n throw new Error(\"Method should be implemented in children classes.\");\n }\n}\n\n/**\n * A factory function that creates a new CredentialPolicy that uses the provided nextPolicy.\n */\nexport type CredentialPolicyCreator = (\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions\n) => CredentialPolicy;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Default key used to access the XML attributes.\n */\nexport const XML_ATTRKEY = \"$\";\n/**\n * Default key used to access the XML value content.\n */\nexport const XML_CHARKEY = \"_\";\n\n/**\n * Options to govern behavior of xml parser and builder.\n */\nexport interface SerializerOptions {\n /**\n * indicates the name of the root element in the resulting XML when building XML.\n */\n rootName?: string;\n /**\n * indicates whether the root element is to be included or not in the output when parsing XML.\n */\n includeRoot?: boolean;\n /**\n * key used to access the XML value content when parsing XML.\n */\n xmlCharKey?: string;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport {\n LeaseAccessConditions,\n SequenceNumberAccessConditions,\n AppendPositionAccessConditions,\n AccessTier,\n CpkInfo,\n BlobDownloadResponseModel\n} from \"./generatedModels\";\nimport { EncryptionAlgorithmAES25 } from \"./utils/constants\";\n\n/**\n * Blob tags.\n */\nexport type Tags = Record;\n\n/**\n * A map of name-value pairs to associate with the resource.\n */\nexport interface Metadata {\n /**\n * A name-value pair.\n */\n [propertyName: string]: string;\n}\n\n/**\n * standard HTTP conditional headers and tags condition.\n */\nexport interface ModifiedAccessConditions\n extends MatchConditions,\n ModificationConditions,\n TagConditions {}\n\n/**\n * standard HTTP conditional headers, tags condition and lease condition\n */\nexport interface BlobRequestConditions extends ModifiedAccessConditions, LeaseAccessConditions {}\n\n/**\n * Conditions to add to the creation of this page blob.\n */\nexport interface PageBlobRequestConditions\n extends BlobRequestConditions,\n SequenceNumberAccessConditions {}\n\n/**\n * Conditions to add to the creation of this append blob.\n */\nexport interface AppendBlobRequestConditions\n extends BlobRequestConditions,\n AppendPositionAccessConditions {}\n\n/**\n * Specifies HTTP options for conditional requests based on modification time.\n */\nexport interface ModificationConditions {\n /**\n * Specify this header value to operate only on a blob if it has been modified since the\n * specified date/time.\n */\n ifModifiedSince?: Date;\n /**\n * Specify this header value to operate only on a blob if it has not been modified since the\n * specified date/time.\n */\n ifUnmodifiedSince?: Date;\n}\n\n/**\n * Specifies HTTP options for conditional requests based on ETag matching.\n */\nexport interface MatchConditions {\n /**\n * Specify an ETag value to operate only on blobs with a matching value.\n */\n ifMatch?: string;\n /**\n * Specify an ETag value to operate only on blobs without a matching value.\n */\n ifNoneMatch?: string;\n}\n\n/**\n * Specifies HTTP options for conditional requests based on blob tags.\n */\nexport interface TagConditions {\n /**\n * Optional SQL statement to apply to the tags of the blob.\n */\n tagConditions?: string;\n}\n\n/**\n * Conditions to meet for the container.\n */\nexport interface ContainerRequestConditions extends LeaseAccessConditions, ModificationConditions {}\n\n/**\n * Represents the access tier on a blob.\n * For detailed information about block blob level tiering see {@link https://docs.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers|Hot, cool and archive storage tiers.}\n */\nexport enum BlockBlobTier {\n /**\n * Optimized for storing data that is accessed frequently.\n */\n Hot = \"Hot\",\n /**\n * Optimized for storing data that is infrequently accessed and stored for at least 30 days.\n */\n Cool = \"Cool\",\n /**\n * Optimized for storing data that is rarely accessed and stored for at least 180 days\n * with flexible latency requirements (on the order of hours).\n */\n Archive = \"Archive\"\n}\n\n/**\n * Specifies the page blob tier to set the blob to. This is only applicable to page blobs on premium storage accounts.\n * Please see {@link https://docs.microsoft.com/azure/storage/storage-premium-storage#scalability-and-performance-targets|here}\n * for detailed information on the corresponding IOPS and throughput per PageBlobTier.\n */\nexport enum PremiumPageBlobTier {\n /**\n * P4 Tier.\n */\n P4 = \"P4\",\n /**\n * P6 Tier.\n */\n P6 = \"P6\",\n /**\n * P10 Tier.\n */\n P10 = \"P10\",\n /**\n * P15 Tier.\n */\n P15 = \"P15\",\n /**\n * P20 Tier.\n */\n P20 = \"P20\",\n /**\n * P30 Tier.\n */\n P30 = \"P30\",\n /**\n * P40 Tier.\n */\n P40 = \"P40\",\n /**\n * P50 Tier.\n */\n P50 = \"P50\",\n /**\n * P60 Tier.\n */\n P60 = \"P60\",\n /**\n * P70 Tier.\n */\n P70 = \"P70\",\n /**\n * P80 Tier.\n */\n P80 = \"P80\"\n}\n\nexport function toAccessTier(\n tier: BlockBlobTier | PremiumPageBlobTier | string | undefined\n): AccessTier | undefined {\n if (tier == undefined) {\n return undefined;\n }\n\n return tier as AccessTier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service).\n}\n\nexport function ensureCpkIfSpecified(cpk: CpkInfo | undefined, isHttps: boolean) {\n if (cpk && !isHttps) {\n throw new RangeError(\"Customer-provided encryption key must be used over HTTPS.\");\n }\n\n if (cpk && !cpk.encryptionAlgorithm) {\n cpk.encryptionAlgorithm = EncryptionAlgorithmAES25;\n }\n}\n\n/**\n * Specifies the Replication Status of a blob. This is used when a storage account has\n * Object Replication Policy(s) applied. See {@link ObjectReplicationPolicy} and {@link ObjectReplicationRule}.\n */\nexport type ObjectReplicationStatus = \"complete\" | \"failed\";\n\n/**\n * Contains the Object Replication Rule ID and {@link ObjectReplicationStatus} of a blob.\n * There can be more than one {@link ObjectReplicationRule} under a {@link ObjectReplicationPolicy}.\n */\nexport interface ObjectReplicationRule {\n /**\n * The Object Replication Rule ID.\n *\n * @type {string}\n * @memberof ObjectReplicationRule\n */\n ruleId: string;\n\n /**\n * The Replication Status\n *\n * @type {ObjectReplicationStatus}\n * @memberof ObjectReplicationRule\n */\n replicationStatus: ObjectReplicationStatus;\n}\n\n/**\n * Contains Object Replication Policy ID and the respective list of {@link ObjectReplicationRule}.\n * This is used when retrieving the Object Replication Properties on the source blob. The policy id for the\n * destination blob is set in ObjectReplicationDestinationPolicyId of the respective method responses\n * (e.g. {@link BlobProperties.ObjectReplicationDestinationPolicyId}.\n *\n * @export\n * @interface ObjectReplicationPolicy\n */\nexport interface ObjectReplicationPolicy {\n /**\n * The Object Replication Policy ID.\n *\n * @type {string}\n * @memberof ObjectReplicationPolicy\n */\n policyId: string;\n\n /**\n * The Rule ID(s) and respective Replication Status(s) that are under the Policy ID.\n *\n * @type {ObjectReplicationRule[]}\n * @memberof ObjectReplicationPolicy\n */\n rules: ObjectReplicationRule[];\n}\n\n/**\n * Contains response data for the {@link BlobClient.download} operation.\n *\n * @export\n * @interface BlobDownloadResponseParsed\n */\nexport interface BlobDownloadResponseParsed extends BlobDownloadResponseModel {\n /**\n * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob.\n *\n * @type {ObjectReplicationPolicy[]}\n * @memberof BlobDownloadResponseParsed\n */\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n\n /**\n * Object Replication Policy Id of the destination blob.\n *\n * @type {string}\n * @memberof BlobDownloadResponseParsed\n */\n objectReplicationDestinationPolicyId?: string;\n}\n\n/**\n * The type of a {@link BlobQueryArrowField}.\n */\nexport type BlobQueryArrowFieldType =\n | \"int64\"\n | \"bool\"\n | \"timestamp[ms]\"\n | \"string\"\n | \"double\"\n | \"decimal\";\n\n/**\n * Describe a field in {@link BlobQueryArrowConfiguration}.\n *\n * @export\n * @interface BlobQueryArrowField\n */\nexport interface BlobQueryArrowField {\n /**\n * The type of the field.\n *\n * @type {BlobQueryArrowFieldType}\n * @memberof BlobQueryArrowField\n */\n type: BlobQueryArrowFieldType;\n\n /**\n * The name of the field.\n *\n * @type {string}\n * @memberof BlobQueryArrowField\n */\n name?: string;\n\n /**\n * The precision of the field. Required if type is \"decimal\".\n *\n * @type {number}\n * @memberof BlobQueryArrowField\n */\n precision?: number;\n\n /**\n * The scale of the field. Required if type is is \"decimal\".\n *\n * @type {number}\n * @memberof BlobQueryArrowField\n */\n scale?: number;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { replaceAll } from \"./util/utils\";\n\ntype URLQueryParseState = \"ParameterName\" | \"ParameterValue\";\n\n/**\n * A class that handles the query portion of a URLBuilder.\n */\nexport class URLQuery {\n private readonly _rawQuery: { [queryParameterName: string]: string | string[] } = {};\n\n /**\n * Get whether or not there any query parameters in this URLQuery.\n */\n public any(): boolean {\n return Object.keys(this._rawQuery).length > 0;\n }\n\n /**\n * Get the keys of the query string.\n */\n public keys(): string[] {\n return Object.keys(this._rawQuery);\n }\n\n /**\n * Set a query parameter with the provided name and value. If the parameterValue is undefined or\n * empty, then this will attempt to remove an existing query parameter with the provided\n * parameterName.\n */\n public set(parameterName: string, parameterValue: any): void {\n if (parameterName) {\n if (parameterValue !== undefined && parameterValue !== null) {\n const newValue = Array.isArray(parameterValue) ? parameterValue : parameterValue.toString();\n this._rawQuery[parameterName] = newValue;\n } else {\n delete this._rawQuery[parameterName];\n }\n }\n }\n\n /**\n * Get the value of the query parameter with the provided name. If no parameter exists with the\n * provided parameter name, then undefined will be returned.\n */\n public get(parameterName: string): string | string[] | undefined {\n return parameterName ? this._rawQuery[parameterName] : undefined;\n }\n\n /**\n * Get the string representation of this query. The return value will not start with a \"?\".\n */\n public toString(): string {\n let result = \"\";\n for (const parameterName in this._rawQuery) {\n if (result) {\n result += \"&\";\n }\n const parameterValue = this._rawQuery[parameterName];\n if (Array.isArray(parameterValue)) {\n const parameterStrings = [];\n for (const parameterValueElement of parameterValue) {\n parameterStrings.push(`${parameterName}=${parameterValueElement}`);\n }\n result += parameterStrings.join(\"&\");\n } else {\n result += `${parameterName}=${parameterValue}`;\n }\n }\n return result;\n }\n\n /**\n * Parse a URLQuery from the provided text.\n */\n public static parse(text: string): URLQuery {\n const result = new URLQuery();\n\n if (text) {\n if (text.startsWith(\"?\")) {\n text = text.substring(1);\n }\n\n let currentState: URLQueryParseState = \"ParameterName\";\n\n let parameterName = \"\";\n let parameterValue = \"\";\n for (let i = 0; i < text.length; ++i) {\n const currentCharacter: string = text[i];\n switch (currentState) {\n case \"ParameterName\":\n switch (currentCharacter) {\n case \"=\":\n currentState = \"ParameterValue\";\n break;\n\n case \"&\":\n parameterName = \"\";\n parameterValue = \"\";\n break;\n\n default:\n parameterName += currentCharacter;\n break;\n }\n break;\n\n case \"ParameterValue\":\n switch (currentCharacter) {\n case \"&\":\n result.set(parameterName, parameterValue);\n parameterName = \"\";\n parameterValue = \"\";\n currentState = \"ParameterName\";\n break;\n\n default:\n parameterValue += currentCharacter;\n break;\n }\n break;\n\n default:\n throw new Error(\"Unrecognized URLQuery parse state: \" + currentState);\n }\n }\n if (currentState === \"ParameterValue\") {\n result.set(parameterName, parameterValue);\n }\n }\n\n return result;\n }\n}\n\n/**\n * A class that handles creating, modifying, and parsing URLs.\n */\nexport class URLBuilder {\n private _scheme: string | undefined;\n private _host: string | undefined;\n private _port: string | undefined;\n private _path: string | undefined;\n private _query: URLQuery | undefined;\n\n /**\n * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL\n * (such as a host, port, path, or query), those parts will be added to this URL as well.\n */\n public setScheme(scheme: string | undefined): void {\n if (!scheme) {\n this._scheme = undefined;\n } else {\n this.set(scheme, \"SCHEME\");\n }\n }\n\n /**\n * Get the scheme that has been set in this URL.\n */\n public getScheme(): string | undefined {\n return this._scheme;\n }\n\n /**\n * Set the host for this URL. If the provided host contains other parts of a URL (such as a\n * port, path, or query), those parts will be added to this URL as well.\n */\n public setHost(host: string | undefined): void {\n if (!host) {\n this._host = undefined;\n } else {\n this.set(host, \"SCHEME_OR_HOST\");\n }\n }\n\n /**\n * Get the host that has been set in this URL.\n */\n public getHost(): string | undefined {\n return this._host;\n }\n\n /**\n * Set the port for this URL. If the provided port contains other parts of a URL (such as a\n * path or query), those parts will be added to this URL as well.\n */\n public setPort(port: number | string | undefined): void {\n if (port === undefined || port === null || port === \"\") {\n this._port = undefined;\n } else {\n this.set(port.toString(), \"PORT\");\n }\n }\n\n /**\n * Get the port that has been set in this URL.\n */\n public getPort(): string | undefined {\n return this._port;\n }\n\n /**\n * Set the path for this URL. If the provided path contains a query, then it will be added to\n * this URL as well.\n */\n public setPath(path: string | undefined): void {\n if (!path) {\n this._path = undefined;\n } else {\n const schemeIndex = path.indexOf(\"://\");\n if (schemeIndex !== -1) {\n const schemeStart = path.lastIndexOf(\"/\", schemeIndex);\n // Make sure to only grab the URL part of the path before setting the state back to SCHEME\n // this will handle cases such as \"/a/b/c/https://microsoft.com\" => \"https://microsoft.com\"\n this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), \"SCHEME\");\n } else {\n this.set(path, \"PATH\");\n }\n }\n }\n\n /**\n * Append the provided path to this URL's existing path. If the provided path contains a query,\n * then it will be added to this URL as well.\n */\n public appendPath(path: string | undefined): void {\n if (path) {\n let currentPath: string | undefined = this.getPath();\n if (currentPath) {\n if (!currentPath.endsWith(\"/\")) {\n currentPath += \"/\";\n }\n\n if (path.startsWith(\"/\")) {\n path = path.substring(1);\n }\n\n path = currentPath + path;\n }\n this.set(path, \"PATH\");\n }\n }\n\n /**\n * Get the path that has been set in this URL.\n */\n public getPath(): string | undefined {\n return this._path;\n }\n\n /**\n * Set the query in this URL.\n */\n public setQuery(query: string | undefined): void {\n if (!query) {\n this._query = undefined;\n } else {\n this._query = URLQuery.parse(query);\n }\n }\n\n /**\n * Set a query parameter with the provided name and value in this URL's query. If the provided\n * query parameter value is undefined or empty, then the query parameter will be removed if it\n * existed.\n */\n public setQueryParameter(queryParameterName: string, queryParameterValue: any): void {\n if (queryParameterName) {\n if (!this._query) {\n this._query = new URLQuery();\n }\n this._query.set(queryParameterName, queryParameterValue);\n }\n }\n\n /**\n * Get the value of the query parameter with the provided query parameter name. If no query\n * parameter exists with the provided name, then undefined will be returned.\n */\n public getQueryParameterValue(queryParameterName: string): string | string[] | undefined {\n return this._query ? this._query.get(queryParameterName) : undefined;\n }\n\n /**\n * Get the query in this URL.\n */\n public getQuery(): string | undefined {\n return this._query ? this._query.toString() : undefined;\n }\n\n /**\n * Set the parts of this URL by parsing the provided text using the provided startState.\n */\n private set(text: string, startState: URLTokenizerState): void {\n const tokenizer = new URLTokenizer(text, startState);\n\n while (tokenizer.next()) {\n const token: URLToken | undefined = tokenizer.current();\n let tokenPath: string | undefined;\n if (token) {\n switch (token.type) {\n case \"SCHEME\":\n this._scheme = token.text || undefined;\n break;\n\n case \"HOST\":\n this._host = token.text || undefined;\n break;\n\n case \"PORT\":\n this._port = token.text || undefined;\n break;\n\n case \"PATH\":\n tokenPath = token.text || undefined;\n if (!this._path || this._path === \"/\" || tokenPath !== \"/\") {\n this._path = tokenPath;\n }\n break;\n\n case \"QUERY\":\n this._query = URLQuery.parse(token.text);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenType: ${token.type}`);\n }\n }\n }\n }\n\n public toString(): string {\n let result = \"\";\n\n if (this._scheme) {\n result += `${this._scheme}://`;\n }\n\n if (this._host) {\n result += this._host;\n }\n\n if (this._port) {\n result += `:${this._port}`;\n }\n\n if (this._path) {\n if (!this._path.startsWith(\"/\")) {\n result += \"/\";\n }\n result += this._path;\n }\n\n if (this._query && this._query.any()) {\n result += `?${this._query.toString()}`;\n }\n\n return result;\n }\n\n /**\n * If the provided searchValue is found in this URLBuilder, then replace it with the provided\n * replaceValue.\n */\n public replaceAll(searchValue: string, replaceValue: string): void {\n if (searchValue) {\n this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue));\n this.setHost(replaceAll(this.getHost(), searchValue, replaceValue));\n this.setPort(replaceAll(this.getPort(), searchValue, replaceValue));\n this.setPath(replaceAll(this.getPath(), searchValue, replaceValue));\n this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue));\n }\n }\n\n public static parse(text: string): URLBuilder {\n const result = new URLBuilder();\n result.set(text, \"SCHEME_OR_HOST\");\n return result;\n }\n}\n\ntype URLTokenizerState = \"SCHEME\" | \"SCHEME_OR_HOST\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\" | \"DONE\";\n\ntype URLTokenType = \"SCHEME\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\";\n\nexport class URLToken {\n public constructor(public readonly text: string, public readonly type: URLTokenType) {}\n\n public static scheme(text: string): URLToken {\n return new URLToken(text, \"SCHEME\");\n }\n\n public static host(text: string): URLToken {\n return new URLToken(text, \"HOST\");\n }\n\n public static port(text: string): URLToken {\n return new URLToken(text, \"PORT\");\n }\n\n public static path(text: string): URLToken {\n return new URLToken(text, \"PATH\");\n }\n\n public static query(text: string): URLToken {\n return new URLToken(text, \"QUERY\");\n }\n}\n\n/**\n * Get whether or not the provided character (single character string) is an alphanumeric (letter or\n * digit) character.\n */\nexport function isAlphaNumericCharacter(character: string): boolean {\n const characterCode: number = character.charCodeAt(0);\n return (\n (48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ ||\n (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ ||\n (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */\n );\n}\n\n/**\n * A class that tokenizes URL strings.\n */\nexport class URLTokenizer {\n readonly _textLength: number;\n _currentState: URLTokenizerState;\n _currentIndex: number;\n _currentToken: URLToken | undefined;\n\n public constructor(readonly _text: string, state?: URLTokenizerState) {\n this._textLength = _text ? _text.length : 0;\n this._currentState = state !== undefined && state !== null ? state : \"SCHEME_OR_HOST\";\n this._currentIndex = 0;\n }\n\n /**\n * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer\n * hasn't started or has finished tokenizing.\n */\n public current(): URLToken | undefined {\n return this._currentToken;\n }\n\n /**\n * Advance to the next URLToken and return whether or not a URLToken was found.\n */\n public next(): boolean {\n if (!hasCurrentCharacter(this)) {\n this._currentToken = undefined;\n } else {\n switch (this._currentState) {\n case \"SCHEME\":\n nextScheme(this);\n break;\n\n case \"SCHEME_OR_HOST\":\n nextSchemeOrHost(this);\n break;\n\n case \"HOST\":\n nextHost(this);\n break;\n\n case \"PORT\":\n nextPort(this);\n break;\n\n case \"PATH\":\n nextPath(this);\n break;\n\n case \"QUERY\":\n nextQuery(this);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenizerState: ${this._currentState}`);\n }\n }\n return !!this._currentToken;\n }\n}\n\n/**\n * Read the remaining characters from this Tokenizer's character stream.\n */\nfunction readRemaining(tokenizer: URLTokenizer): string {\n let result = \"\";\n if (tokenizer._currentIndex < tokenizer._textLength) {\n result = tokenizer._text.substring(tokenizer._currentIndex);\n tokenizer._currentIndex = tokenizer._textLength;\n }\n return result;\n}\n\n/**\n * Whether or not this URLTokenizer has a current character.\n */\nfunction hasCurrentCharacter(tokenizer: URLTokenizer): boolean {\n return tokenizer._currentIndex < tokenizer._textLength;\n}\n\n/**\n * Get the character in the text string at the current index.\n */\nfunction getCurrentCharacter(tokenizer: URLTokenizer): string {\n return tokenizer._text[tokenizer._currentIndex];\n}\n\n/**\n * Advance to the character in text that is \"step\" characters ahead. If no step value is provided,\n * then step will default to 1.\n */\nfunction nextCharacter(tokenizer: URLTokenizer, step?: number): void {\n if (hasCurrentCharacter(tokenizer)) {\n if (!step) {\n step = 1;\n }\n tokenizer._currentIndex += step;\n }\n}\n\n/**\n * Starting with the current character, peek \"charactersToPeek\" number of characters ahead in this\n * Tokenizer's stream of characters.\n */\nfunction peekCharacters(tokenizer: URLTokenizer, charactersToPeek: number): string {\n let endIndex: number = tokenizer._currentIndex + charactersToPeek;\n if (tokenizer._textLength < endIndex) {\n endIndex = tokenizer._textLength;\n }\n return tokenizer._text.substring(tokenizer._currentIndex, endIndex);\n}\n\n/**\n * Read characters from this Tokenizer until the end of the stream or until the provided condition\n * is false when provided the current character.\n */\nfunction readWhile(tokenizer: URLTokenizer, condition: (character: string) => boolean): string {\n let result = \"\";\n\n while (hasCurrentCharacter(tokenizer)) {\n const currentCharacter: string = getCurrentCharacter(tokenizer);\n if (!condition(currentCharacter)) {\n break;\n } else {\n result += currentCharacter;\n nextCharacter(tokenizer);\n }\n }\n\n return result;\n}\n\n/**\n * Read characters from this Tokenizer until a non-alphanumeric character or the end of the\n * character stream is reached.\n */\nfunction readWhileLetterOrDigit(tokenizer: URLTokenizer): string {\n return readWhile(tokenizer, (character: string) => isAlphaNumericCharacter(character));\n}\n\n/**\n * Read characters from this Tokenizer until one of the provided terminating characters is read or\n * the end of the character stream is reached.\n */\nfunction readUntilCharacter(tokenizer: URLTokenizer, ...terminatingCharacters: string[]): string {\n return readWhile(\n tokenizer,\n (character: string) => terminatingCharacters.indexOf(character) === -1\n );\n}\n\nfunction nextScheme(tokenizer: URLTokenizer): void {\n const scheme: string = readWhileLetterOrDigit(tokenizer);\n tokenizer._currentToken = URLToken.scheme(scheme);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"HOST\";\n }\n}\n\nfunction nextSchemeOrHost(tokenizer: URLTokenizer): void {\n const schemeOrHost: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n tokenizer._currentToken = URLToken.scheme(schemeOrHost);\n tokenizer._currentState = \"HOST\";\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"PORT\";\n }\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n }\n}\n\nfunction nextHost(tokenizer: URLTokenizer): void {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n nextCharacter(tokenizer, 3);\n }\n\n const host: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n tokenizer._currentToken = URLToken.host(host);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n tokenizer._currentState = \"PORT\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPort(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \":\") {\n nextCharacter(tokenizer);\n }\n\n const port: string = readUntilCharacter(tokenizer, \"/\", \"?\");\n tokenizer._currentToken = URLToken.port(port);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPath(tokenizer: URLTokenizer): void {\n const path: string = readUntilCharacter(tokenizer, \"?\");\n tokenizer._currentToken = URLToken.path(path);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextQuery(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \"?\") {\n nextCharacter(tokenizer);\n }\n\n const query: string = readRemaining(tokenizer);\n tokenizer._currentToken = URLToken.query(query);\n tokenizer._currentState = \"DONE\";\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport class StorageSharedKeyCredential {}\n","'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","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * A collection of HttpHeaders that can be sent with a HTTP request.\n */\nfunction getHeaderKey(headerName: string): string {\n return headerName.toLowerCase();\n}\n\n/**\n * An individual header within a HttpHeaders collection.\n */\nexport interface HttpHeader {\n /**\n * The name of the header.\n */\n name: string;\n\n /**\n * The value of the header.\n */\n value: string;\n}\n\n/**\n * A HttpHeaders collection represented as a simple JSON object.\n */\nexport type RawHttpHeaders = { [headerName: string]: string };\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport interface HttpHeadersLike {\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName The name of the header to set. This value is case-insensitive.\n * @param headerValue The value of the header to set.\n */\n set(headerName: string, headerValue: string | number): void;\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName The name of the header.\n */\n get(headerName: string): string | undefined;\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n contains(headerName: string): boolean;\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName The name of the header to remove.\n */\n remove(headerName: string): boolean;\n /**\n * Get the headers that are contained this collection as an object.\n */\n rawHeaders(): RawHttpHeaders;\n /**\n * Get the headers that are contained in this collection as an array.\n */\n headersArray(): HttpHeader[];\n /**\n * Get the header names that are contained in this collection.\n */\n headerNames(): string[];\n /**\n * Get the header values that are contained in this collection.\n */\n headerValues(): string[];\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n clone(): HttpHeadersLike;\n /**\n * Get the JSON object representation of this HTTP header collection.\n * The result is the same as `rawHeaders()`.\n */\n toJson(): RawHttpHeaders;\n}\n\nexport function isHttpHeadersLike(object?: any): object is HttpHeadersLike {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n\n if (\n typeof object.rawHeaders === \"function\" &&\n typeof object.clone === \"function\" &&\n typeof object.get === \"function\" &&\n typeof object.set === \"function\" &&\n typeof object.contains === \"function\" &&\n typeof object.remove === \"function\" &&\n typeof object.headersArray === \"function\" &&\n typeof object.headerValues === \"function\" &&\n typeof object.headerNames === \"function\" &&\n typeof object.toJson === \"function\"\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport class HttpHeaders implements HttpHeadersLike {\n private readonly _headersMap: { [headerKey: string]: HttpHeader };\n\n constructor(rawHeaders?: RawHttpHeaders) {\n this._headersMap = {};\n if (rawHeaders) {\n for (const headerName in rawHeaders) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName The name of the header to set. This value is case-insensitive.\n * @param headerValue The value of the header to set.\n */\n public set(headerName: string, headerValue: string | number): void {\n this._headersMap[getHeaderKey(headerName)] = {\n name: headerName,\n value: headerValue.toString()\n };\n }\n\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName The name of the header.\n */\n public get(headerName: string): string | undefined {\n const header: HttpHeader = this._headersMap[getHeaderKey(headerName)];\n return !header ? undefined : header.value;\n }\n\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n public contains(headerName: string): boolean {\n return !!this._headersMap[getHeaderKey(headerName)];\n }\n\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName The name of the header to remove.\n */\n public remove(headerName: string): boolean {\n const result: boolean = this.contains(headerName);\n delete this._headersMap[getHeaderKey(headerName)];\n return result;\n }\n\n /**\n * Get the headers that are contained this collection as an object.\n */\n public rawHeaders(): RawHttpHeaders {\n const result: RawHttpHeaders = {};\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n result[header.name.toLowerCase()] = header.value;\n }\n return result;\n }\n\n /**\n * Get the headers that are contained in this collection as an array.\n */\n public headersArray(): HttpHeader[] {\n const headers: HttpHeader[] = [];\n for (const headerKey in this._headersMap) {\n headers.push(this._headersMap[headerKey]);\n }\n return headers;\n }\n\n /**\n * Get the header names that are contained in this collection.\n */\n public headerNames(): string[] {\n const headerNames: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerNames.push(headers[i].name);\n }\n return headerNames;\n }\n\n /**\n * Get the header values that are contained in this collection.\n */\n public headerValues(): string[] {\n const headerValues: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerValues.push(headers[i].value);\n }\n return headerValues;\n }\n\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n public toJson(): RawHttpHeaders {\n return this.rawHeaders();\n }\n\n /**\n * Get the string representation of this HTTP header collection.\n */\n public toString(): string {\n return JSON.stringify(this.toJson());\n }\n\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n public clone(): HttpHeaders {\n return new HttpHeaders(this.rawHeaders());\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// tslint:disable:max-line-length\n/**\n * Range for Blob Service Operations.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-the-range-header-for-blob-service-operations\n *\n * @export\n * @interface Range\n */\nexport interface Range {\n /**\n * StartByte, larger than or equal 0.\n *\n * @type {string}\n * @memberof Range\n */\n offset: number;\n /**\n * Optional. Count of bytes, larger than 0.\n * If not provided, will return bytes from offset to the end.\n *\n * @type {string}\n * @memberof Range\n */\n count?: number;\n}\n\n/**\n * Generate a range string. For example:\n *\n * \"bytes=255-\" or \"bytes=0-511\"\n *\n * @export\n * @param {Range} iRange\n * @returns {string}\n */\nexport function rangeToString(iRange: Range): string {\n if (iRange.offset < 0) {\n throw new RangeError(`Range.offset cannot be smaller than 0.`);\n }\n if (iRange.count && iRange.count <= 0) {\n throw new RangeError(\n `Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end.`\n );\n }\n return iRange.count\n ? `bytes=${iRange.offset}-${iRange.offset + iRange.count - 1}`\n : `bytes=${iRange.offset}-`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Encodes a string in base64 format.\n * @param value the string to encode\n */\nexport function encodeString(value: string): string {\n return btoa(value);\n}\n\n/**\n * Encodes a byte array in base64 format.\n * @param value the Uint8Aray to encode\n */\nexport function encodeByteArray(value: Uint8Array): string {\n let str = \"\";\n for (let i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return btoa(str);\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value the base64 string to decode\n */\nexport function decodeString(value: string): Uint8Array {\n const byteString = atob(value);\n const arr = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n arr[i] = byteString.charCodeAt(i);\n }\n return arr;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/* eslint-disable eqeqeq */\n\nimport * as base64 from \"./util/base64\";\nimport * as utils from \"./util/utils\";\nimport { XML_ATTRKEY, XML_CHARKEY, SerializerOptions } from \"./util/serializer.common\";\n\nexport class Serializer {\n constructor(\n public readonly modelMappers: { [key: string]: any } = {},\n public readonly isXML?: boolean\n ) {}\n\n validateConstraints(mapper: Mapper, value: any, objectName: string): void {\n const failValidation = (\n constraintName: keyof MapperConstraints,\n constraintValue: any\n ): Error => {\n throw new Error(\n `\"${objectName}\" with value \"${value}\" should satisfy the constraint \"${constraintName}\": ${constraintValue}.`\n );\n };\n if (mapper.constraints && value != undefined) {\n const {\n ExclusiveMaximum,\n ExclusiveMinimum,\n InclusiveMaximum,\n InclusiveMinimum,\n MaxItems,\n MaxLength,\n MinItems,\n MinLength,\n MultipleOf,\n Pattern,\n UniqueItems\n } = mapper.constraints;\n if (ExclusiveMaximum != undefined && value >= ExclusiveMaximum) {\n failValidation(\"ExclusiveMaximum\", ExclusiveMaximum);\n }\n if (ExclusiveMinimum != undefined && value <= ExclusiveMinimum) {\n failValidation(\"ExclusiveMinimum\", ExclusiveMinimum);\n }\n if (InclusiveMaximum != undefined && value > InclusiveMaximum) {\n failValidation(\"InclusiveMaximum\", InclusiveMaximum);\n }\n if (InclusiveMinimum != undefined && value < InclusiveMinimum) {\n failValidation(\"InclusiveMinimum\", InclusiveMinimum);\n }\n if (MaxItems != undefined && value.length > MaxItems) {\n failValidation(\"MaxItems\", MaxItems);\n }\n if (MaxLength != undefined && value.length > MaxLength) {\n failValidation(\"MaxLength\", MaxLength);\n }\n if (MinItems != undefined && value.length < MinItems) {\n failValidation(\"MinItems\", MinItems);\n }\n if (MinLength != undefined && value.length < MinLength) {\n failValidation(\"MinLength\", MinLength);\n }\n if (MultipleOf != undefined && value % MultipleOf !== 0) {\n failValidation(\"MultipleOf\", MultipleOf);\n }\n if (Pattern) {\n const pattern: RegExp = typeof Pattern === \"string\" ? new RegExp(Pattern) : Pattern;\n if (typeof value !== \"string\" || value.match(pattern) === null) {\n failValidation(\"Pattern\", Pattern);\n }\n }\n if (\n UniqueItems &&\n value.some((item: any, i: number, ar: Array) => ar.indexOf(item) !== i)\n ) {\n failValidation(\"UniqueItems\", UniqueItems);\n }\n }\n }\n\n /**\n * Serialize the given object based on its metadata defined in the mapper\n *\n * @param {Mapper} mapper The mapper which defines the metadata of the serializable object\n *\n * @param {object|string|Array|number|boolean|Date|stream} object A valid Javascript object to be serialized\n *\n * @param {string} objectName Name of the serialized object\n *\n * @param {options} options additional options to deserialization\n *\n * @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object\n */\n serialize(\n mapper: Mapper,\n object: any,\n objectName?: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY\n };\n let payload: any = {};\n const mapperType = mapper.type.name as string;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n if (mapperType.match(/^Sequence$/i) !== null) {\n payload = [];\n }\n\n if (mapper.isConstant) {\n object = mapper.defaultValue;\n }\n\n // This table of allowed values should help explain\n // the mapper.required and mapper.nullable properties.\n // X means \"neither undefined or null are allowed\".\n // || required\n // || true | false\n // nullable || ==========================\n // true || null | undefined/null\n // false || X | undefined\n // undefined || X | undefined/null\n\n const { required, nullable } = mapper;\n\n if (required && nullable && object === undefined) {\n throw new Error(`${objectName} cannot be undefined.`);\n }\n if (required && !nullable && object == undefined) {\n throw new Error(`${objectName} cannot be null or undefined.`);\n }\n if (!required && nullable === false && object === null) {\n throw new Error(`${objectName} cannot be null.`);\n }\n\n if (object == undefined) {\n payload = object;\n } else {\n // Validate Constraints if any\n this.validateConstraints(mapper, object, objectName);\n if (mapperType.match(/^any$/i) !== null) {\n payload = object;\n } else if (mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i) !== null) {\n payload = serializeBasicTypes(mapperType, objectName, object);\n } else if (mapperType.match(/^Enum$/i) !== null) {\n const enumMapper: EnumMapper = mapper as EnumMapper;\n payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object);\n } else if (\n mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null\n ) {\n payload = serializeDateTypes(mapperType, object, objectName);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = serializeByteArrayType(objectName, object);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = serializeBase64UrlType(objectName, object);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = serializeSequenceType(\n this,\n mapper as SequenceMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = serializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Composite$/i) !== null) {\n payload = serializeCompositeType(\n this,\n mapper as CompositeMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n }\n }\n return payload;\n }\n\n /**\n * Deserialize the given object based on its metadata defined in the mapper\n *\n * @param {object} mapper The mapper which defines the metadata of the serializable object\n *\n * @param {object|string|Array|number|boolean|Date|stream} responseBody A valid Javascript entity to be deserialized\n *\n * @param {string} objectName Name of the deserialized object\n *\n * @param options Controls behavior of XML parser and builder.\n *\n * @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object\n */\n deserialize(\n mapper: Mapper,\n responseBody: any,\n objectName: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY\n };\n if (responseBody == undefined) {\n if (this.isXML && mapper.type.name === \"Sequence\" && !mapper.xmlIsWrapped) {\n // Edge case for empty XML non-wrapped lists. xml2js can't distinguish\n // between the list being empty versus being missing,\n // so let's do the more user-friendly thing and return an empty list.\n responseBody = [];\n }\n // specifically check for undefined as default value can be a falsey value `0, \"\", false, null`\n if (mapper.defaultValue !== undefined) {\n responseBody = mapper.defaultValue;\n }\n return responseBody;\n }\n\n let payload: any;\n const mapperType = mapper.type.name;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n\n if (mapperType.match(/^Composite$/i) !== null) {\n payload = deserializeCompositeType(\n this,\n mapper as CompositeMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else {\n if (this.isXML) {\n const xmlCharKey = updatedOptions.xmlCharKey;\n /**\n * If the mapper specifies this as a non-composite type value but the responseBody contains\n * both header (\"$\" i.e., XML_ATTRKEY) and body (\"#\" i.e., XML_CHARKEY) properties,\n * then just reduce the responseBody value to the body (\"#\" i.e., XML_CHARKEY) property.\n */\n if (responseBody[XML_ATTRKEY] != undefined && responseBody[xmlCharKey] != undefined) {\n responseBody = responseBody[xmlCharKey];\n }\n }\n\n if (mapperType.match(/^Number$/i) !== null) {\n payload = parseFloat(responseBody);\n if (isNaN(payload)) {\n payload = responseBody;\n }\n } else if (mapperType.match(/^Boolean$/i) !== null) {\n if (responseBody === \"true\") {\n payload = true;\n } else if (responseBody === \"false\") {\n payload = false;\n } else {\n payload = responseBody;\n }\n } else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i) !== null) {\n payload = responseBody;\n } else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/i) !== null) {\n payload = new Date(responseBody);\n } else if (mapperType.match(/^UnixTime$/i) !== null) {\n payload = unixTimeToDate(responseBody);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = base64.decodeString(responseBody);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = base64UrlToByteArray(responseBody);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = deserializeSequenceType(\n this,\n mapper as SequenceMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = deserializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n }\n }\n\n if (mapper.isConstant) {\n payload = mapper.defaultValue;\n }\n\n return payload;\n }\n}\n\nfunction trimEnd(str: string, ch: string): string {\n let len = str.length;\n while (len - 1 >= 0 && str[len - 1] === ch) {\n --len;\n }\n return str.substr(0, len);\n}\n\nfunction bufferToBase64Url(buffer: any): string | undefined {\n if (!buffer) {\n return undefined;\n }\n if (!(buffer instanceof Uint8Array)) {\n throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`);\n }\n // Uint8Array to Base64.\n const str = base64.encodeByteArray(buffer);\n // Base64 to Base64Url.\n return trimEnd(str, \"=\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\");\n}\n\nfunction base64UrlToByteArray(str: string): Uint8Array | undefined {\n if (!str) {\n return undefined;\n }\n if (str && typeof str.valueOf() !== \"string\") {\n throw new Error(\"Please provide an input of type string for converting to Uint8Array\");\n }\n // Base64Url to Base64.\n str = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n // Base64 to Uint8Array.\n return base64.decodeString(str);\n}\n\nfunction splitSerializeName(prop: string | undefined): string[] {\n const classes: string[] = [];\n let partialclass = \"\";\n if (prop) {\n const subwords = prop.split(\".\");\n\n for (const item of subwords) {\n if (item.charAt(item.length - 1) === \"\\\\\") {\n partialclass += item.substr(0, item.length - 1) + \".\";\n } else {\n partialclass += item;\n classes.push(partialclass);\n partialclass = \"\";\n }\n }\n }\n\n return classes;\n}\n\nfunction dateToUnixTime(d: string | Date): number | undefined {\n if (!d) {\n return undefined;\n }\n\n if (typeof d.valueOf() === \"string\") {\n d = new Date(d as string);\n }\n return Math.floor((d as Date).getTime() / 1000);\n}\n\nfunction unixTimeToDate(n: number): Date | undefined {\n if (!n) {\n return undefined;\n }\n return new Date(n * 1000);\n}\n\nfunction serializeBasicTypes(typeName: string, objectName: string, value: any): any {\n if (value !== null && value !== undefined) {\n if (typeName.match(/^Number$/i) !== null) {\n if (typeof value !== \"number\") {\n throw new Error(`${objectName} with value ${value} must be of type number.`);\n }\n } else if (typeName.match(/^String$/i) !== null) {\n if (typeof value.valueOf() !== \"string\") {\n throw new Error(`${objectName} with value \"${value}\" must be of type string.`);\n }\n } else if (typeName.match(/^Uuid$/i) !== null) {\n if (!(typeof value.valueOf() === \"string\" && utils.isValidUuid(value))) {\n throw new Error(\n `${objectName} with value \"${value}\" must be of type string and a valid uuid.`\n );\n }\n } else if (typeName.match(/^Boolean$/i) !== null) {\n if (typeof value !== \"boolean\") {\n throw new Error(`${objectName} with value ${value} must be of type boolean.`);\n }\n } else if (typeName.match(/^Stream$/i) !== null) {\n const objectType = typeof value;\n if (\n objectType !== \"string\" &&\n objectType !== \"function\" &&\n !(value instanceof ArrayBuffer) &&\n !ArrayBuffer.isView(value) &&\n !((typeof Blob === \"function\" || typeof Blob === \"object\") && value instanceof Blob)\n ) {\n throw new Error(\n `${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.`\n );\n }\n }\n }\n\n return value;\n}\n\nfunction serializeEnumType(objectName: string, allowedValues: Array, value: any): any {\n if (!allowedValues) {\n throw new Error(\n `Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`\n );\n }\n const isPresent = allowedValues.some((item) => {\n if (typeof item.valueOf() === \"string\") {\n return item.toLowerCase() === value.toLowerCase();\n }\n return item === value;\n });\n if (!isPresent) {\n throw new Error(\n `${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(\n allowedValues\n )}.`\n );\n }\n return value;\n}\n\nfunction serializeByteArrayType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = base64.encodeByteArray(value);\n }\n return returnValue;\n}\n\nfunction serializeBase64UrlType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = bufferToBase64Url(value) || \"\";\n }\n return returnValue;\n}\n\nfunction serializeDateTypes(typeName: string, value: any, objectName: string): any {\n if (value != undefined) {\n if (typeName.match(/^Date$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value =\n value instanceof Date\n ? value.toISOString().substring(0, 10)\n : new Date(value).toISOString().substring(0, 10);\n } else if (typeName.match(/^DateTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value = value instanceof Date ? value.toISOString() : new Date(value).toISOString();\n } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`);\n }\n value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString();\n } else if (typeName.match(/^UnixTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(\n `${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` +\n `for it to be serialized in UnixTime/Epoch format.`\n );\n }\n value = dateToUnixTime(value);\n } else if (typeName.match(/^TimeSpan$/i) !== null) {\n if (!utils.isDuration(value)) {\n throw new Error(\n `${objectName} must be a string in ISO 8601 format. Instead was \"${value}\".`\n );\n }\n }\n }\n return value;\n}\n\nfunction serializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any[] {\n if (!Array.isArray(object)) {\n throw new Error(`${objectName} must be of type Array.`);\n }\n const elementType = mapper.type.element;\n if (!elementType || typeof elementType !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempArray = [];\n for (let i = 0; i < object.length; i++) {\n const serializedValue = serializer.serialize(elementType, object[i], objectName, options);\n\n if (isXml && elementType.xmlNamespace) {\n const xmlnsKey = elementType.xmlNamespacePrefix\n ? `xmlns:${elementType.xmlNamespacePrefix}`\n : \"xmlns\";\n if (elementType.type.name === \"Composite\") {\n tempArray[i] = { ...serializedValue };\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n } else {\n tempArray[i] = {};\n tempArray[i][options.xmlCharKey] = serializedValue;\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n }\n } else {\n tempArray[i] = serializedValue;\n }\n }\n return tempArray;\n}\n\nfunction serializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): { [key: string]: any } {\n if (typeof object !== \"object\") {\n throw new Error(`${objectName} must be of type object.`);\n }\n const valueType = mapper.type.value;\n if (!valueType || typeof valueType !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(object)) {\n const serializedValue = serializer.serialize(valueType, object[key], objectName, options);\n // If the element needs an XML namespace we need to add it within the $ property\n tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);\n }\n\n // Add the namespace to the root element if needed\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : \"xmlns\";\n\n return { ...tempDictionary, $: { [xmlnsKey]: mapper.xmlNamespace } };\n }\n\n return tempDictionary;\n}\n\n/**\n * Resolves the additionalProperties property from a referenced mapper\n * @param serializer the serializer containing the entire set of mappers\n * @param mapper the composite mapper to resolve\n * @param objectName name of the object being serialized\n */\nfunction resolveAdditionalProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): SequenceMapper | BaseMapper | CompositeMapper | DictionaryMapper | EnumMapper | undefined {\n const additionalProperties = mapper.type.additionalProperties;\n\n if (!additionalProperties && mapper.type.className) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n return modelMapper?.type.additionalProperties;\n }\n\n return additionalProperties;\n}\n\n/**\n * Finds the mapper referenced by className\n * @param serializer the serializer containing the entire set of mappers\n * @param mapper the composite mapper to resolve\n * @param objectName name of the object being serialized\n */\nfunction resolveReferencedMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): CompositeMapper | undefined {\n const className = mapper.type.className;\n if (!className) {\n throw new Error(\n `Class name for model \"${objectName}\" is not provided in the mapper \"${JSON.stringify(\n mapper,\n undefined,\n 2\n )}\".`\n );\n }\n\n return serializer.modelMappers[className];\n}\n\n/**\n * Resolves a composite mapper's modelProperties.\n * @param serializer the serializer containing the entire set of mappers\n * @param mapper the composite mapper to resolve\n */\nfunction resolveModelProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): { [propertyName: string]: Mapper } {\n let modelProps = mapper.type.modelProperties;\n if (!modelProps) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n if (!modelMapper) {\n throw new Error(`mapper() cannot be null or undefined for model \"${mapper.type.className}\".`);\n }\n modelProps = modelMapper?.type.modelProperties;\n if (!modelProps) {\n throw new Error(\n `modelProperties cannot be null or undefined in the ` +\n `mapper \"${JSON.stringify(modelMapper)}\" of type \"${\n mapper.type.className\n }\" for object \"${objectName}\".`\n );\n }\n }\n\n return modelProps;\n}\n\nfunction serializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, object, \"clientName\");\n }\n\n if (object != undefined) {\n const payload: any = {};\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n if (propertyMapper.readOnly) {\n continue;\n }\n\n let propName: string | undefined;\n let parentObject: any = payload;\n if (serializer.isXML) {\n if (propertyMapper.xmlIsWrapped) {\n propName = propertyMapper.xmlName;\n } else {\n propName = propertyMapper.xmlElementName || propertyMapper.xmlName;\n }\n } else {\n const paths = splitSerializeName(propertyMapper.serializedName!);\n propName = paths.pop();\n\n for (const pathName of paths) {\n const childObject = parentObject[pathName];\n if (\n childObject == undefined &&\n (object[key] != undefined || propertyMapper.defaultValue !== undefined)\n ) {\n parentObject[pathName] = {};\n }\n parentObject = parentObject[pathName];\n }\n }\n\n if (parentObject != undefined) {\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix\n ? `xmlns:${mapper.xmlNamespacePrefix}`\n : \"xmlns\";\n parentObject[XML_ATTRKEY] = {\n ...parentObject[XML_ATTRKEY],\n [xmlnsKey]: mapper.xmlNamespace\n };\n }\n const propertyObjectName =\n propertyMapper.serializedName !== \"\"\n ? objectName + \".\" + propertyMapper.serializedName\n : objectName;\n\n let toSerialize = object[key];\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (\n polymorphicDiscriminator &&\n polymorphicDiscriminator.clientName === key &&\n toSerialize == undefined\n ) {\n toSerialize = mapper.serializedName;\n }\n\n const serializedValue = serializer.serialize(\n propertyMapper,\n toSerialize,\n propertyObjectName,\n options\n );\n\n if (serializedValue !== undefined && propName != undefined) {\n const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);\n if (isXml && propertyMapper.xmlIsAttribute) {\n // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.\n // This keeps things simple while preventing name collision\n // with names in user documents.\n parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};\n parentObject[XML_ATTRKEY][propName] = serializedValue;\n } else if (isXml && propertyMapper.xmlIsWrapped) {\n parentObject[propName] = { [propertyMapper.xmlElementName!]: value };\n } else {\n parentObject[propName] = value;\n }\n }\n }\n }\n\n const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName);\n if (additionalPropertiesMapper) {\n const propNames = Object.keys(modelProps);\n for (const clientPropName in object) {\n const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName);\n if (isAdditionalProperty) {\n payload[clientPropName] = serializer.serialize(\n additionalPropertiesMapper,\n object[clientPropName],\n objectName + '[\"' + clientPropName + '\"]',\n options\n );\n }\n }\n }\n\n return payload;\n }\n return object;\n}\n\nfunction getXmlObjectValue(\n propertyMapper: Mapper,\n serializedValue: any,\n isXml: boolean,\n options: Required\n) {\n if (!isXml || !propertyMapper.xmlNamespace) {\n return serializedValue;\n }\n\n const xmlnsKey = propertyMapper.xmlNamespacePrefix\n ? `xmlns:${propertyMapper.xmlNamespacePrefix}`\n : \"xmlns\";\n const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace };\n\n if ([\"Composite\"].includes(propertyMapper.type.name)) {\n if (serializedValue[XML_ATTRKEY]) {\n return serializedValue;\n } else {\n const result: any = { ...serializedValue };\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n }\n }\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n}\n\nfunction isSpecialXmlProperty(propertyName: string, options: Required): boolean {\n return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);\n}\n\nfunction deserializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, responseBody, \"serializedName\");\n }\n\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n let instance: { [key: string]: any } = {};\n const handledPropertyNames: string[] = [];\n\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n const paths = splitSerializeName(modelProps[key].serializedName!);\n handledPropertyNames.push(paths[0]);\n const { serializedName, xmlName, xmlElementName } = propertyMapper;\n let propertyObjectName = objectName;\n if (serializedName !== \"\" && serializedName !== undefined) {\n propertyObjectName = objectName + \".\" + serializedName;\n }\n\n const headerCollectionPrefix = (propertyMapper as DictionaryMapper).headerCollectionPrefix;\n if (headerCollectionPrefix) {\n const dictionary: any = {};\n for (const headerKey of Object.keys(responseBody)) {\n if (headerKey.startsWith(headerCollectionPrefix)) {\n dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(\n (propertyMapper as DictionaryMapper).type.value,\n responseBody[headerKey],\n propertyObjectName,\n options\n );\n }\n\n handledPropertyNames.push(headerKey);\n }\n instance[key] = dictionary;\n } else if (serializer.isXML) {\n if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {\n instance[key] = serializer.deserialize(\n propertyMapper,\n responseBody[XML_ATTRKEY][xmlName!],\n propertyObjectName,\n options\n );\n } else {\n const propertyName = xmlElementName || xmlName || serializedName;\n if (propertyMapper.xmlIsWrapped) {\n /* a list of wrapped by \n For the xml example below\n \n ...\n ...\n \n the responseBody has\n {\n Cors: {\n CorsRule: [{...}, {...}]\n }\n }\n xmlName is \"Cors\" and xmlElementName is\"CorsRule\".\n */\n const wrapped = responseBody[xmlName!];\n const elementList = wrapped?.[xmlElementName!] ?? [];\n instance[key] = serializer.deserialize(\n propertyMapper,\n elementList,\n propertyObjectName,\n options\n );\n } else {\n const property = responseBody[propertyName!];\n instance[key] = serializer.deserialize(\n propertyMapper,\n property,\n propertyObjectName,\n options\n );\n }\n }\n } else {\n // deserialize the property if it is present in the provided responseBody instance\n let propertyInstance;\n let res = responseBody;\n // traversing the object step by step.\n for (const item of paths) {\n if (!res) break;\n res = res[item];\n }\n propertyInstance = res;\n const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator;\n // checking that the model property name (key)(ex: \"fishtype\") and the\n // clientName of the polymorphicDiscriminator {metadata} (ex: \"fishtype\")\n // instead of the serializedName of the polymorphicDiscriminator (ex: \"fish.type\")\n // is a better approach. The generator is not consistent with escaping '\\.' in the\n // serializedName of the property (ex: \"fish\\.type\") that is marked as polymorphic discriminator\n // and the serializedName of the metadata polymorphicDiscriminator (ex: \"fish.type\"). However,\n // the clientName transformation of the polymorphicDiscriminator (ex: \"fishtype\") and\n // the transformation of model property name (ex: \"fishtype\") is done consistently.\n // Hence, it is a safer bet to rely on the clientName of the polymorphicDiscriminator.\n if (\n polymorphicDiscriminator &&\n key === polymorphicDiscriminator.clientName &&\n propertyInstance == undefined\n ) {\n propertyInstance = mapper.serializedName;\n }\n\n let serializedValue;\n // paging\n if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === \"\") {\n propertyInstance = responseBody[key];\n instance = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n } else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {\n serializedValue = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n instance[key] = serializedValue;\n }\n }\n }\n\n const additionalPropertiesMapper = mapper.type.additionalProperties;\n if (additionalPropertiesMapper) {\n const isAdditionalProperty = (responsePropName: string): boolean => {\n for (const clientPropName in modelProps) {\n const paths = splitSerializeName(modelProps[clientPropName].serializedName);\n if (paths[0] === responsePropName) {\n return false;\n }\n }\n return true;\n };\n\n for (const responsePropName in responseBody) {\n if (isAdditionalProperty(responsePropName)) {\n instance[responsePropName] = serializer.deserialize(\n additionalPropertiesMapper,\n responseBody[responsePropName],\n objectName + '[\"' + responsePropName + '\"]',\n options\n );\n }\n }\n } else if (responseBody) {\n for (const key of Object.keys(responseBody)) {\n if (\n instance[key] === undefined &&\n !handledPropertyNames.includes(key) &&\n !isSpecialXmlProperty(key, options)\n ) {\n instance[key] = responseBody[key];\n }\n }\n }\n\n return instance;\n}\n\nfunction deserializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): { [key: string]: any } {\n const value = mapper.type.value;\n if (!value || typeof value !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(responseBody)) {\n tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);\n }\n return tempDictionary;\n }\n return responseBody;\n}\n\nfunction deserializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any[] {\n const element = mapper.type.element;\n if (!element || typeof element !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n if (!Array.isArray(responseBody)) {\n // xml2js will interpret a single element array as just the element, so force it to be an array\n responseBody = [responseBody];\n }\n\n const tempArray = [];\n for (let i = 0; i < responseBody.length; i++) {\n tempArray[i] = serializer.deserialize(\n element,\n responseBody[i],\n `${objectName}[${i}]`,\n options\n );\n }\n return tempArray;\n }\n return responseBody;\n}\n\nfunction getPolymorphicMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n polymorphicPropertyName: \"clientName\" | \"serializedName\"\n): CompositeMapper {\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (polymorphicDiscriminator) {\n const discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];\n if (discriminatorName != undefined) {\n const discriminatorValue = object[discriminatorName];\n if (discriminatorValue != undefined) {\n const typeName = mapper.type.uberParent || mapper.type.className;\n const indexDiscriminator =\n discriminatorValue === typeName\n ? discriminatorValue\n : typeName + \".\" + discriminatorValue;\n const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator];\n if (polymorphicMapper) {\n mapper = polymorphicMapper;\n }\n }\n }\n }\n return mapper;\n}\n\nfunction getPolymorphicDiscriminatorRecursively(\n serializer: Serializer,\n mapper: CompositeMapper\n): PolymorphicDiscriminator | undefined {\n return (\n mapper.type.polymorphicDiscriminator ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.className)\n );\n}\n\nfunction getPolymorphicDiscriminatorSafely(serializer: Serializer, typeName?: string): any {\n return (\n typeName &&\n serializer.modelMappers[typeName] &&\n serializer.modelMappers[typeName].type.polymorphicDiscriminator\n );\n}\n\nexport interface MapperConstraints {\n InclusiveMaximum?: number;\n ExclusiveMaximum?: number;\n InclusiveMinimum?: number;\n ExclusiveMinimum?: number;\n MaxLength?: number;\n MinLength?: number;\n Pattern?: RegExp;\n MaxItems?: number;\n MinItems?: number;\n UniqueItems?: true;\n MultipleOf?: number;\n}\n\nexport type MapperType =\n | SimpleMapperType\n | CompositeMapperType\n | SequenceMapperType\n | DictionaryMapperType\n | EnumMapperType;\n\nexport interface SimpleMapperType {\n name:\n | \"Base64Url\"\n | \"Boolean\"\n | \"ByteArray\"\n | \"Date\"\n | \"DateTime\"\n | \"DateTimeRfc1123\"\n | \"Object\"\n | \"Stream\"\n | \"String\"\n | \"TimeSpan\"\n | \"UnixTime\"\n | \"Uuid\"\n | \"Number\"\n | \"any\";\n}\n\nexport interface CompositeMapperType {\n name: \"Composite\";\n\n // Only one of the two below properties should be present.\n // Use className to reference another type definition,\n // and use modelProperties/additionalProperties when the reference to the other type has been resolved.\n className?: string;\n\n modelProperties?: { [propertyName: string]: Mapper };\n additionalProperties?: Mapper;\n\n uberParent?: string;\n polymorphicDiscriminator?: PolymorphicDiscriminator;\n}\n\nexport interface SequenceMapperType {\n name: \"Sequence\";\n element: Mapper;\n}\n\nexport interface DictionaryMapperType {\n name: \"Dictionary\";\n value: Mapper;\n}\n\nexport interface EnumMapperType {\n name: \"Enum\";\n allowedValues: any[];\n}\n\nexport interface BaseMapper {\n /**\n * Name for the xml element\n */\n xmlName?: string;\n /**\n * Xml element namespace\n */\n xmlNamespace?: string;\n /**\n * Xml element namespace prefix\n */\n xmlNamespacePrefix?: string;\n /**\n * Determines if the current property should be serialized as an attribute of the parent xml element\n */\n xmlIsAttribute?: boolean;\n /**\n * Name for the xml elements when serializing an array\n */\n xmlElementName?: string;\n /**\n * Whether or not the current propery should have a wrapping XML element\n */\n xmlIsWrapped?: boolean;\n /**\n * Whether or not the current propery is readonly\n */\n readOnly?: boolean;\n /**\n * Whether or not the current propery is a constant\n */\n isConstant?: boolean;\n /**\n * Whether or not the current propery is required\n */\n required?: boolean;\n /**\n * Whether or not the current propery allows mull as a value\n */\n nullable?: boolean;\n /**\n * The name to use when serializing\n */\n serializedName?: string;\n /**\n * Type of the mapper\n */\n type: MapperType;\n /**\n * Default value when one is not explicitly provided\n */\n defaultValue?: any;\n /**\n * Constraints to test the current value against\n */\n constraints?: MapperConstraints;\n}\n\nexport type Mapper = BaseMapper | CompositeMapper | SequenceMapper | DictionaryMapper | EnumMapper;\n\nexport interface PolymorphicDiscriminator {\n serializedName: string;\n clientName: string;\n [key: string]: string;\n}\n\nexport interface CompositeMapper extends BaseMapper {\n type: CompositeMapperType;\n}\n\nexport interface SequenceMapper extends BaseMapper {\n type: SequenceMapperType;\n}\n\nexport interface DictionaryMapper extends BaseMapper {\n type: DictionaryMapperType;\n headerCollectionPrefix?: string;\n}\n\nexport interface EnumMapper extends BaseMapper {\n type: EnumMapperType;\n}\n\nexport interface UrlParameterValue {\n value: string;\n skipUrlEncoding: boolean;\n}\n\n// TODO: why is this here?\nexport function serializeObject(toSerialize: any): any {\n if (toSerialize == undefined) return undefined;\n if (toSerialize instanceof Uint8Array) {\n toSerialize = base64.encodeByteArray(toSerialize);\n return toSerialize;\n } else if (toSerialize instanceof Date) {\n return toSerialize.toISOString();\n } else if (Array.isArray(toSerialize)) {\n const array = [];\n for (let i = 0; i < toSerialize.length; i++) {\n array.push(serializeObject(toSerialize[i]));\n }\n return array;\n } else if (typeof toSerialize === \"object\") {\n const dictionary: { [key: string]: any } = {};\n for (const property in toSerialize) {\n dictionary[property] = serializeObject(toSerialize[property]);\n }\n return dictionary;\n }\n return toSerialize;\n}\n\n/**\n * Utility function to create a K:V from a list of strings\n */\nfunction strEnum(o: Array): { [K in T]: K } {\n const result: any = {};\n for (const key of o) {\n result[key] = key;\n }\n return result;\n}\n\nexport const MapperType = strEnum([\n \"Base64Url\",\n \"Boolean\",\n \"ByteArray\",\n \"Composite\",\n \"Date\",\n \"DateTime\",\n \"DateTimeRfc1123\",\n \"Dictionary\",\n \"Enum\",\n \"Number\",\n \"Object\",\n \"Sequence\",\n \"String\",\n \"Stream\",\n \"TimeSpan\",\n \"UnixTime\"\n]);\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const custom = {};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { WebResourceLike } from \"./webResource\";\nimport { custom } from \"./util/inspect\";\nimport { Sanitizer } from \"./util/sanitizer\";\n\nconst errorSanitizer = new Sanitizer();\n\nexport class RestError extends Error {\n static readonly REQUEST_SEND_ERROR: string = \"REQUEST_SEND_ERROR\";\n static readonly PARSE_ERROR: string = \"PARSE_ERROR\";\n\n code?: string;\n statusCode?: number;\n request?: WebResourceLike;\n response?: HttpOperationResponse;\n details?: unknown;\n constructor(\n message: string,\n code?: string,\n statusCode?: number,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ) {\n super(message);\n this.name = \"RestError\";\n this.code = code;\n this.statusCode = statusCode;\n this.request = request;\n this.response = response;\n\n Object.setPrototypeOf(this, RestError.prototype);\n }\n\n /**\n * Logging method for util.inspect in Node\n */\n [custom](): string {\n return `RestError: ${this.message} \\n ${errorSanitizer.sanitize(this)}`;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"core-http\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const Constants = {\n /**\n * The core-http version\n * @const\n * @type {string}\n */\n coreHttpVersion: \"1.2.0\",\n\n /**\n * Specifies HTTP.\n *\n * @const\n * @type {string}\n */\n HTTP: \"http:\",\n\n /**\n * Specifies HTTPS.\n *\n * @const\n * @type {string}\n */\n HTTPS: \"https:\",\n\n /**\n * Specifies HTTP Proxy.\n *\n * @const\n * @type {string}\n */\n HTTP_PROXY: \"HTTP_PROXY\",\n\n /**\n * Specifies HTTPS Proxy.\n *\n * @const\n * @type {string}\n */\n HTTPS_PROXY: \"HTTPS_PROXY\",\n\n /**\n * Specifies NO Proxy.\n *\n * @const\n * @type {string}\n */\n NO_PROXY: \"NO_PROXY\",\n\n /**\n * Specifies ALL Proxy.\n *\n * @const\n * @type {string}\n */\n ALL_PROXY: \"ALL_PROXY\",\n\n HttpConstants: {\n /**\n * Http Verbs\n *\n * @const\n * @enum {string}\n */\n HttpVerbs: {\n PUT: \"PUT\",\n GET: \"GET\",\n DELETE: \"DELETE\",\n POST: \"POST\",\n MERGE: \"MERGE\",\n HEAD: \"HEAD\",\n PATCH: \"PATCH\"\n },\n\n StatusCodes: {\n TooManyRequests: 429\n }\n },\n\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n *\n * @const\n * @type {string}\n */\n AUTHORIZATION: \"authorization\",\n\n AUTHORIZATION_SCHEME: \"Bearer\",\n\n /**\n * The Retry-After response-header field can be used with a 503 (Service\n * Unavailable) or 349 (Too Many Requests) responses to indicate how long\n * the service is expected to be unavailable to the requesting client.\n *\n * @const\n * @type {string}\n */\n RETRY_AFTER: \"Retry-After\",\n\n /**\n * The UserAgent header.\n *\n * @const\n * @type {string}\n */\n USER_AGENT: \"User-Agent\"\n }\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * The format that will be used to join an array of values together for a query parameter value.\n */\nexport enum QueryCollectionFormat {\n Csv = \",\",\n Ssv = \" \",\n Tsv = \"\\t\",\n Pipes = \"|\",\n Multi = \"Multi\"\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = require(\"regenerator-runtime\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ProxySettings } from \"../serviceClient\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\n\nconst proxyNotSupportedInBrowser = new Error(\"ProxyPolicy is not supported in browser environment\");\n\nexport function getDefaultProxySettings(_proxyUrl?: string): ProxySettings | undefined {\n return undefined;\n}\n\nexport function proxyPolicy(_proxySettings?: ProxySettings): RequestPolicyFactory {\n return {\n create: (_nextPolicy: RequestPolicy, _options: RequestPolicyOptions) => {\n throw proxyNotSupportedInBrowser;\n }\n };\n}\n\nexport class ProxyPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n throw proxyNotSupportedInBrowser;\n }\n\n public sendRequest(_request: WebResourceLike): Promise {\n throw proxyNotSupportedInBrowser;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport {\n generateUuid,\n getDefaultProxySettings,\n HttpRequestBody,\n HttpResponse,\n isNode,\n isTokenCredential,\n TokenCredential,\n TransferProgressEvent,\n URLBuilder\n} from \"@azure/core-http\";\nimport { PollerLike, PollOperationState } from \"@azure/core-lro\";\nimport { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\nimport { CanonicalCode } from \"@opentelemetry/api\";\nimport { Readable } from \"stream\";\n\nimport { BlobDownloadResponse } from \"./BlobDownloadResponse\";\nimport { BlobQueryResponse } from \"./BlobQueryResponse\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport {\n AppendBlob,\n Blob as StorageBlob,\n BlockBlob,\n Container,\n PageBlob\n} from \"./generated/src/operations\";\nimport { StorageClientContext } from \"./generated/src/storageClient\";\nimport {\n AppendBlobAppendBlockFromUrlResponse,\n AppendBlobAppendBlockResponse,\n AppendBlobCreateResponse,\n BlobAbortCopyFromURLResponse,\n BlobCopyFromURLResponse,\n BlobCreateSnapshotResponse,\n BlobDeleteResponse,\n BlobDownloadOptionalParams,\n BlobDownloadResponseModel,\n BlobGetPropertiesResponseModel,\n BlobGetTagsHeaders,\n BlobHTTPHeaders,\n BlobPrefix,\n BlobProperties,\n BlobSetHTTPHeadersResponse,\n BlobSetMetadataResponse,\n BlobSetTagsResponse,\n BlobSetTierResponse,\n BlobStartCopyFromURLResponse,\n BlobTags,\n BlobUndeleteResponse,\n BlockBlobCommitBlockListResponse,\n BlockBlobGetBlockListResponse,\n BlockBlobStageBlockFromURLResponse,\n BlockBlobStageBlockResponse,\n BlockBlobUploadHeaders,\n BlockBlobUploadResponse,\n BlockListType,\n ContainerBreakLeaseOptionalParams,\n ContainerCreateResponse,\n ContainerDeleteResponse,\n ContainerEncryptionScope,\n ContainerGetAccessPolicyHeaders,\n ContainerGetPropertiesResponse,\n ContainerListBlobFlatSegmentHeaders,\n ContainerListBlobHierarchySegmentHeaders,\n ContainerSetAccessPolicyResponse,\n ContainerSetMetadataResponse,\n CpkInfo,\n DeleteSnapshotsOptionType,\n LeaseAccessConditions,\n ListBlobsFlatSegmentResponseModel,\n ListBlobsHierarchySegmentResponseModel,\n ListBlobsIncludeItem,\n PageBlobClearPagesResponse,\n PageBlobCopyIncrementalResponse,\n PageBlobCreateResponse,\n PageBlobResizeResponse,\n PageBlobUpdateSequenceNumberResponse,\n PageBlobUploadPagesFromURLResponse,\n PageBlobUploadPagesResponse,\n PublicAccessType,\n RehydratePriority,\n SequenceNumberActionType,\n SignedIdentifierModel\n} from \"./generatedModels\";\nimport {\n AppendBlobRequestConditions,\n BlobDownloadResponseParsed,\n BlobRequestConditions,\n BlockBlobTier,\n ensureCpkIfSpecified,\n Metadata,\n ObjectReplicationPolicy,\n PageBlobRequestConditions,\n PremiumPageBlobTier,\n Tags,\n toAccessTier,\n ContainerRequestConditions,\n TagConditions,\n MatchConditions,\n ModificationConditions,\n ModifiedAccessConditions,\n BlobQueryArrowField\n} from \"./models\";\nimport {\n PageBlobGetPageRangesDiffResponse,\n PageBlobGetPageRangesResponse,\n rangeResponseFromModel\n} from \"./PageBlobRangeResponse\";\nimport { newPipeline, Pipeline, StoragePipelineOptions } from \"./Pipeline\";\nimport {\n BlobBeginCopyFromUrlPoller,\n BlobBeginCopyFromUrlPollState,\n CopyPollerBlobClient\n} from \"./pollers/BlobStartCopyFromUrlPoller\";\nimport { Range, rangeToString } from \"./Range\";\nimport { CommonOptions, StorageClient } from \"./StorageClient\";\nimport { Batch } from \"./utils/Batch\";\nimport { BufferScheduler } from \"../../storage-common/src\";\nimport {\n BLOCK_BLOB_MAX_BLOCKS,\n BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES,\n BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES,\n DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES,\n DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS,\n ETagAny,\n ETagNone,\n URLConstants\n} from \"./utils/constants\";\nimport { createSpan } from \"./utils/tracing\";\nimport {\n appendToURLPath,\n extractConnectionStringParts,\n generateBlockID,\n isIpEndpointStyle,\n parseObjectReplicationRecord,\n setURLParameter,\n toBlobTags,\n toBlobTagsString,\n toQuerySerialization,\n toTags,\n truncatedISO8061Date\n} from \"./utils/utils.common\";\nimport {\n fsCreateReadStream,\n fsStat,\n readStreamToLocalFile,\n streamToBuffer\n} from \"./utils/utils.node\";\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n *\n * @export\n * @interface BlobBeginCopyFromURLOptions\n */\nexport interface BlobBeginCopyFromURLOptions extends BlobStartCopyFromURLOptions {\n /**\n * The amount of time in milliseconds the poller should wait between\n * calls to the service to determine the status of the Blob copy.\n * Defaults to 15 seconds.\n *\n * @type {number}\n * @memberof BlobBeginCopyFromURLOptions\n */\n intervalInMs?: number;\n /**\n * Callback to receive the state of the copy progress.\n *\n * @memberof BlobBeginCopyFromURLOptions\n */\n onProgress?: (state: BlobBeginCopyFromUrlPollState) => void;\n /**\n * Serialized poller state that can be used to resume polling from.\n * This may be useful when starting a copy on one process or thread\n * and you wish to continue polling on another process or thread.\n *\n * To get serialized poller state, call `poller.toString()` on an existing\n * poller.\n *\n * @memberof BlobBeginCopyFromURLOptions\n */\n resumeFrom?: string;\n}\n\n/**\n * Contains response data for the {@link BlobClient.beginCopyFromURL} operation.\n *\n * @export\n * @interface BlobBeginCopyFromURLResponse\n */\nexport interface BlobBeginCopyFromURLResponse extends BlobStartCopyFromURLResponse {}\n\n/**\n * Options to configure the {@link BlobClient.download} operation.\n *\n * @export\n * @interface BlobDownloadOptions\n */\nexport interface BlobDownloadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobDownloadOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * An opaque DateTime string value that, when present, specifies the blob snapshot to retrieve.\n *\n * @type {string}\n * @memberof BlobDownloadOptions\n */\n snapshot?: string;\n /**\n * When this is set to true and download range of blob, the service returns the MD5 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n *\n * @type {boolean}\n * @memberof BlobDownloadOptions\n */\n rangeGetContentMD5?: boolean;\n /**\n * When this is set to true and download range of blob, the service returns the CRC64 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n *\n * @type {boolean}\n * @memberof BlobDownloadOptions\n */\n rangeGetContentCrc64?: boolean;\n /**\n * Conditions to meet when downloading blobs.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobDownloadOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Call back to receive events on the progress of download operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlobDownloadOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original body download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional `FileClient.download()` request will be made\n * from the broken point, until the requested range has been successfully downloaded or maxRetryRequests is reached.\n *\n * Default value is 5, please set a larger value when loading large files in poor network.\n *\n * @type {number}\n * @memberof BlobDownloadOptions\n */\n maxRetryRequests?: number;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobDownloadOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.exists} operation.\n *\n * @export\n * @interface BlobExistsOptions\n */\nexport interface BlobExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobExistsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobExistsOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Conditions to meet.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobExistsOptions\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getProperties} operation.\n *\n * @export\n * @interface BlobGetPropertiesOptions\n */\nexport interface BlobGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobGetPropertiesOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting blob properties.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobGetPropertiesOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobGetPropertiesOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.delete} operation.\n *\n * @export\n * @interface BlobDeleteOptions\n */\nexport interface BlobDeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobDeleteOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when deleting blobs.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobDeleteOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies options to delete blobs that have associated snapshots.\n * - `include`: Delete the base blob and all of its snapshots.\n * - `only`: Delete only the blob's snapshots and not the blob itself.\n *\n * @type {DeleteSnapshotsOptionType}\n * @memberof BlobDeleteOptions\n */\n deleteSnapshots?: DeleteSnapshotsOptionType;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobDeleteOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.undelete} operation.\n *\n * @export\n * @interface BlobUndeleteOptions\n */\nexport interface BlobUndeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobUndeleteOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobUndeleteOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setHTTPHeaders} operation.\n *\n * @export\n * @interface BlobSetHTTPHeadersOptions\n */\nexport interface BlobSetHTTPHeadersOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobSetHTTPHeadersOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob HTTP headers.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobSetHTTPHeadersOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobSetHTTPHeadersOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setMetadata} operation.\n *\n * @export\n * @interface BlobSetMetadataOptions\n */\nexport interface BlobSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobSetMetadataOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob metadata.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobSetMetadataOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobSetMetadataOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlobSetMetadataOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.setTags} operation.\n *\n * @export\n * @interface BlobSetTagsOptions\n */\nexport interface BlobSetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobSetTagsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n *\n * @type {TagConditions}\n * @memberof BlobSetTagsOptions\n */\n conditions?: TagConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getTags} operation.\n *\n * @export\n * @interface BlobGetTagsOptions\n */\nexport interface BlobGetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobGetTagsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n *\n * @type {TagConditions}\n * @memberof BlobGetTagsOptions\n */\n conditions?: TagConditions;\n}\n\n/**\n * Contains response data for the {@link ContainerClient.getTags} operation.\n */\nexport type BlobGetTagsResponse = { tags: Tags } & BlobGetTagsHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: BlobGetTagsHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: BlobTags;\n };\n };\n\n/**\n * Options to configure Blob - Acquire Lease operation.\n *\n * @export\n * @interface BlobAcquireLeaseOptions\n */\nexport interface BlobAcquireLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobAcquireLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when acquiring the lease of a blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobAcquireLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Release Lease operation.\n *\n * @export\n * @interface BlobReleaseLeaseOptions\n */\nexport interface BlobReleaseLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobReleaseLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when releasing the lease of a blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobReleaseLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Renew Lease operation.\n *\n * @export\n * @interface BlobRenewLeaseOptions\n */\nexport interface BlobRenewLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobRenewLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when renewing the lease of a blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobRenewLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Change Lease operation.\n *\n * @export\n * @interface BlobChangeLeaseOptions\n */\nexport interface BlobChangeLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobChangeLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease of a blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobChangeLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Break Lease operation.\n *\n * @export\n * @interface BlobBreakLeaseOptions\n */\nexport interface BlobBreakLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobBreakLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when breaking the lease of a blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobBreakLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.createSnapshot} operation.\n *\n * @export\n * @interface BlobCreateSnapshotOptions\n */\nexport interface BlobCreateSnapshotOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobCreateSnapshotOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n *\n * @type {Metadata}\n * @memberof BlobCreateSnapshotOptions\n */\n metadata?: Metadata;\n /**\n * Conditions to meet when creating blob snapshots.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobCreateSnapshotOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobCreateSnapshotOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlobCreateSnapshotOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n *\n * @export\n * @interface BlobStartCopyFromURLOptions\n */\nexport interface BlobStartCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobStartCopyFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the blob that are being copied.\n *\n * @type {Metadata}\n * @memberof BlobStartCopyFromURLOptions\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobStartCopyFromURLOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n *\n * @type {ModifiedAccessConditions}\n * @memberof BlobStartCopyFromURLOptions\n */\n sourceConditions?: ModifiedAccessConditions;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {BlockBlobTier | PremiumPageBlobTier | string}\n * @memberof BlobStartCopyFromURLOptions\n */\n tier?: BlockBlobTier | PremiumPageBlobTier | string;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n *\n * @type {RehydratePriority}\n * @memberof BlobStartCopyFromURLOptions\n */\n rehydratePriority?: RehydratePriority;\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlobStartCopyFromURLOptions\n */\n tags?: Tags;\n /**\n * Overrides the sealed state of the destination blob. Default true.\n *\n * @type {boolean}\n * @memberof BlobStartCopyFromURLOptions\n */\n sealBlob?: boolean;\n}\n\n/**\n * Options to configure the {@link BlobClient.abortCopyFromURL} operation.\n *\n * @export\n * @interface BlobAbortCopyFromURLOptions\n */\nexport interface BlobAbortCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobAbortCopyFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions}\n * @memberof BlobAbortCopyFromURLOptions\n */\n conditions?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.syncCopyFromURL} operation.\n *\n * @export\n * @interface BlobSyncCopyFromURLOptions\n */\nexport interface BlobSyncCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobSyncCopyFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n *\n * @type {Metadata}\n * @memberof BlobSyncCopyFromURLOptions\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobSyncCopyFromURLOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n *\n * @type {MatchConditions & ModificationConditions}\n * @memberof BlobSyncCopyFromURLOptions\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * Specify the md5 calculated for the range of bytes that must be read from the copy source.\n *\n * @type {Uint8Array}\n * @memberof BlobSyncCopyFromURLOptions\n */\n sourceContentMD5?: Uint8Array;\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlobSyncCopyFromURLOptions\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure the {@link BlobClient.setAccessTier} operation.\n *\n * @export\n * @interface BlobSetTierOptions\n */\nexport interface BlobSetTierOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobSetTierOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions & TagConditions}\n * @memberof BlobSetTierOptions\n */\n conditions?: LeaseAccessConditions & TagConditions;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n *\n * @type {RehydratePriority}\n * @memberof BlobSetTierOptions\n */\n rehydratePriority?: RehydratePriority;\n}\n\n/**\n * Option interface for the {@link BlobClient.downloadToBuffer} operation.\n *\n * @export\n * @interface BlobDownloadToBufferOptions\n */\nexport interface BlobDownloadToBufferOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlobDownloadToBufferOptions\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * blockSize is the data every request trying to download.\n * Must be >= 0, if set to 0 or undefined, blockSize will automatically calculated according\n * to the blob size.\n *\n * @type {number}\n * @memberof BlobDownloadToBufferOptions\n */\n blockSize?: number;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original block download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional FileClient.download() request will be made\n * from the broken point, until the requested block has been successfully downloaded or\n * maxRetryRequestsPerBlock is reached.\n *\n * Default value is 5, please set a larger value when in poor network.\n *\n * @type {number}\n * @memberof BlobDownloadToBufferOptions\n */\n maxRetryRequestsPerBlock?: number;\n\n /**\n * Progress updater.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlobDownloadToBufferOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Access conditions headers.\n *\n * @type {BlobRequestConditions}\n * @memberof BlobDownloadToBufferOptions\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel download.\n *\n * @type {number}\n * @memberof BlobDownloadToBufferOptions\n */\n concurrency?: number;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlobDownloadToBufferOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Contains response data for the {@link BlobClient.deleteIfExists} operation.\n *\n * @export\n * @interface BlobDeleteIfExistsResponse\n */\nexport interface BlobDeleteIfExistsResponse extends BlobDeleteResponse {\n /**\n * Indicate whether the blob is successfully deleted. Is false if the blob does not exist in the first place.\n *\n * @type {boolean}\n * @memberof BlobDeleteIfExistsResponse\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link BlobClient.getProperties} operation.\n *\n * @export\n * @interface BlobGetPropertiesResponse\n */\nexport interface BlobGetPropertiesResponse extends BlobGetPropertiesResponseModel {\n /**\n * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob.\n *\n * @type {ObjectReplicationPolicy[]}\n * @memberof BlobGetPropertiesResponse\n */\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n\n /**\n * Object Replication Policy Id of the destination blob.\n *\n * @type {string}\n * @memberof BlobGetPropertiesResponse\n */\n objectReplicationDestinationPolicyId?: string;\n}\n\n/**\n * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob,\n * append blob, or page blob.\n *\n * @export\n * @class BlobClient\n */\nexport class BlobClient extends StorageClient {\n /**\n * blobContext provided by protocol layer.\n *\n * @private\n * @type {Blobs}\n * @memberof BlobClient\n */\n private blobContext: StorageBlob;\n\n private _name: string;\n private _containerName: string;\n\n /**\n * The name of the blob.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * The name of the storage container the blob is associated with.\n */\n public get containerName(): string {\n return this._containerName;\n }\n\n /**\n *\n * Creates an instance of BlobClient from connection string.\n *\n * @param {string} connectionString Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param {string} containerName Container name.\n * @param {string} blobName Blob name.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof BlobClient\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof BlobClient\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {Pipeline} pipeline Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n * @memberof BlobClient\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n blobNameOrOptions?: string | StoragePipelineOptions,\n options?: StoragePipelineOptions\n ) {\n options = options || {};\n let pipeline: Pipeline;\n let url: string;\n if (credentialOrPipelineOrContainerName instanceof Pipeline) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n\n super(url, pipeline);\n ({\n blobName: this._name,\n containerName: this._containerName\n } = this.getBlobAndContainerNamesFromUrl());\n this.blobContext = new StorageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param {string} snapshot The snapshot timestamp.\n * @returns {BlobClient} A new BlobClient object identical to the source but with the specified snapshot timestamp\n * @memberof BlobClient\n */\n public withSnapshot(snapshot: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a new BlobClient object pointing to a version of this blob.\n * Provide \"\" will remove the versionId and return a Client to the base blob.\n *\n * @param {string} versionId The versionId.\n * @returns {BlobClient} A new BlobClient object pointing to the version of this blob.\n * @memberof BlobClient\n */\n public withVersion(versionId: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.VERSIONID,\n versionId.length === 0 ? undefined : versionId\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a AppendBlobClient object.\n *\n * @returns {AppendBlobClient}\n * @memberof BlobClient\n */\n public getAppendBlobClient(): AppendBlobClient {\n return new AppendBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a BlockBlobClient object.\n *\n * @returns {BlockBlobClient}\n * @memberof BlobClient\n */\n public getBlockBlobClient(): BlockBlobClient {\n return new BlockBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a PageBlobClient object.\n *\n * @returns {PageBlobClient}\n * @memberof BlobClient\n */\n public getPageBlobClient(): PageBlobClient {\n return new PageBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Reads or downloads a blob from the system, including its metadata and properties.\n * You can also call Get Blob to read a snapshot.\n *\n * * In Node.js, data returns in a Readable stream readableStreamBody\n * * In browsers, data returns in a promise blobBody\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob\n *\n * @param {number} [offset] From which position of the blob to download, >= 0\n * @param {number} [count] How much data to be downloaded, > 0. Will download to the end when undefined\n * @param {BlobDownloadOptions} [options] Optional options to Blob Download operation.\n * @returns {Promise}\n * @memberof BlobClient\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);\n * console.log(\"Downloaded blob content:\", downloaded.toString());\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * Example usage (browser):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);\n * console.log(\n * \"Downloaded blob content\",\n * downloaded\n * );\n *\n * async function blobToString(blob: Blob): Promise {\n * const fileReader = new FileReader();\n * return new Promise((resolve, reject) => {\n * fileReader.onloadend = (ev: any) => {\n * resolve(ev.target!.result);\n * };\n * fileReader.onerror = reject;\n * fileReader.readAsText(blob);\n * });\n * }\n * ```\n */\n public async download(\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, spanOptions } = createSpan(\"BlobClient-download\", options.tracingOptions);\n\n try {\n const res = await this.blobContext.download({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n onDownloadProgress: isNode ? undefined : options.onProgress, // for Node.js, progress is reported by RetriableReadableStream\n range: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey,\n spanOptions\n });\n\n const wrappedRes = {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules)\n };\n // Return browser response immediately\n if (!isNode) {\n return wrappedRes;\n }\n\n // We support retrying when download stream unexpected ends in Node.js runtime\n // Following code shouldn't be bundled into browser build, however some\n // bundlers may try to bundle following code and \"FileReadResponse.ts\".\n // In this case, \"FileDownloadResponse.browser.ts\" will be used as a shim of \"FileDownloadResponse.ts\"\n // The config is in package.json \"browser\" field\n if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) {\n // TODO: Default value or make it a required parameter?\n options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS;\n }\n\n if (res.contentLength === undefined) {\n throw new RangeError(`File download response doesn't contain valid content length header`);\n }\n\n if (!res.etag) {\n throw new RangeError(`File download response doesn't contain valid etag header`);\n }\n\n return new BlobDownloadResponse(\n wrappedRes,\n async (start: number): Promise => {\n const updatedOptions: BlobDownloadOptionalParams = {\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ifMatch: options.conditions!.ifMatch || res.etag,\n ifModifiedSince: options.conditions!.ifModifiedSince,\n ifNoneMatch: options.conditions!.ifNoneMatch,\n ifUnmodifiedSince: options.conditions!.ifUnmodifiedSince,\n ifTags: options.conditions?.tagConditions\n },\n range: rangeToString({\n count: offset + res.contentLength! - start,\n offset: start\n }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey\n };\n\n // Debug purpose only\n // console.log(\n // `Read from internal stream, range: ${\n // updatedOptions.range\n // }, options: ${JSON.stringify(updatedOptions)}`\n // );\n\n return (\n await this.blobContext.download({\n abortSignal: options.abortSignal,\n ...updatedOptions\n })\n ).readableStreamBody!;\n },\n offset,\n res.contentLength!,\n {\n abortSignal: options.abortSignal,\n maxRetryRequests: options.maxRetryRequests,\n onProgress: options.onProgress\n }\n );\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns true if the Azure blob resource represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing blob might be deleted by other clients or\n * applications. Vice versa new blobs might be added by other clients or applications after this\n * function completes.\n *\n * @param {BlobExistsOptions} [options] options to Exists operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async exists(options: BlobExistsOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-exists\", options.tracingOptions);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n await this.getProperties({\n abortSignal: options.abortSignal,\n customerProvidedKey: options.customerProvidedKey,\n conditions: options.conditions,\n tracingOptions: {\n ...options.tracingOptions,\n spanOptions\n }\n });\n return true;\n } catch (e) {\n if (e.statusCode === 404) {\n span.setStatus({\n code: CanonicalCode.NOT_FOUND,\n message: \"Expected exception when checking blob existence\"\n });\n return false;\n }\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns all user-defined metadata, standard HTTP properties, and system properties\n * for the blob. It does not return the content of the blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the methods of {@link ContainerClient} that list blobs using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param {BlobGetPropertiesOptions} [options] Optional options to Get Properties operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async getProperties(\n options: BlobGetPropertiesOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-getProperties\", options.tracingOptions);\n try {\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n const res = await this.blobContext.getProperties({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n spanOptions\n });\n\n return {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules)\n };\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param {BlobDeleteOptions} [options] Optional options to Blob Delete operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async delete(options: BlobDeleteOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-delete\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n return await this.blobContext.deleteMethod({\n abortSignal: options.abortSignal,\n deleteSnapshots: options.deleteSnapshots,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param {BlobDeleteOptions} [options] Optional options to Blob Delete operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async deleteIfExists(\n options: BlobDeleteOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-deleteIfExists\", options.tracingOptions);\n try {\n const res = await this.delete({\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response // _response is made non-enumerable\n };\n } catch (e) {\n if (e.details?.errorCode === \"BlobNotFound\") {\n span.setStatus({\n code: CanonicalCode.NOT_FOUND,\n message: \"Expected exception when deleting a blob or snapshot only if it exists.\"\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response\n };\n }\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Restores the contents and metadata of soft deleted blob and any associated\n * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29\n * or later.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob\n *\n * @param {BlobUndeleteOptions} [options] Optional options to Blob Undelete operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async undelete(options: BlobUndeleteOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-undelete\", options.tracingOptions);\n try {\n return await this.blobContext.undelete({\n abortSignal: options.abortSignal,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets system properties on the blob.\n *\n * If no value provided, or no value provided for the specified blob HTTP headers,\n * these blob HTTP headers without a value will be cleared.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param {BlobHTTPHeaders} [blobHTTPHeaders] If no value provided, or no value provided for\n * the specified blob HTTP headers, these blob HTTP\n * headers without a value will be cleared.\n * @param {BlobSetHTTPHeadersOptions} [options] Optional options to Blob Set HTTP Headers operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async setHTTPHeaders(\n blobHTTPHeaders?: BlobHTTPHeaders,\n options: BlobSetHTTPHeadersOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-setHTTPHeaders\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setHTTPHeaders({\n abortSignal: options.abortSignal,\n blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets user-defined metadata for the specified blob as one or more name-value pairs.\n *\n * If no option provided, or no metadata defined in the parameter, the blob\n * metadata will be removed.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata\n *\n * @param {Metadata} [metadata] Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param {BlobSetMetadataOptions} [options] Optional options to Set Metadata operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async setMetadata(\n metadata?: Metadata,\n options: BlobSetMetadataOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-setMetadata\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setMetadata({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets tags on the underlying blob.\n * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters.\n * Valid tag key and value characters include lower and upper case letters, digits (0-9),\n * space (' '), plus ('+'), minus ('-'), period ('.'), foward slash ('/'), colon (':'), equals ('='), and underscore ('_').\n *\n * @param {Tags} tags\n * @param {BlobSetTagsOptions} [options={}]\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async setTags(tags: Tags, options: BlobSetTagsOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-setTags\", options.tracingOptions);\n try {\n return await this.blobContext.setTags({\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions,\n tags: toBlobTags(tags)\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the tags associated with the underlying blob.\n *\n * @param {BlobGetTagsOptions} [options={}]\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async getTags(options: BlobGetTagsOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-getTags\", options.tracingOptions);\n try {\n const response = await this.blobContext.getTags({\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n const wrappedResponse: BlobGetTagsResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n tags: toTags({ blobTagSet: response.blobTagSet }) || {}\n };\n return wrappedResponse;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Get a {@link BlobLeaseClient} that manages leases on the blob.\n *\n * @param {string} [proposeLeaseId] Initial proposed lease Id.\n * @returns {BlobLeaseClient} A new BlobLeaseClient object for managing leases on the blob.\n * @memberof BlobClient\n */\n public getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient {\n return new BlobLeaseClient(this, proposeLeaseId);\n }\n\n /**\n * Creates a read-only snapshot of a blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob\n *\n * @param {BlobCreateSnapshotOptions} [options] Optional options to the Blob Create Snapshot operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async createSnapshot(\n options: BlobCreateSnapshotOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-createSnapshot\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.createSnapshot({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * This method returns a long running operation poller that allows you to wait\n * indefinitely until the copy is completed.\n * You can also cancel a copy before it is completed by calling `cancelOperation` on the poller.\n * Note that the onProgress callback will not be invoked if the operation completes in the first\n * request, and attempting to cancel a completed copy will result in an error being thrown.\n *\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * Example using automatic polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using manual polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * while (!poller.isDone()) {\n * await poller.poll();\n * }\n * const result = copyPoller.getResult();\n * ```\n *\n * Example using progress updates:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * onProgress(state) {\n * console.log(`Progress: ${state.copyProgress}`);\n * }\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using a changing polling interval (default 15 seconds):\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * intervalInMs: 1000 // poll blob every 1 second for copy progress\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using copy cancellation:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * // cancel operation after starting it.\n * try {\n * await copyPoller.cancelOperation();\n * // calls to get the result now throw PollerCancelledError\n * await copyPoller.getResult();\n * } catch (err) {\n * if (err.name === 'PollerCancelledError') {\n * console.log('The copy was cancelled.');\n * }\n * }\n * ```\n *\n * @param {string} copySource url to the source Azure Blob/File.\n * @param {BlobBeginCopyFromURLOptions} [options] Optional options to the Blob Start Copy From URL operation.\n */\n public async beginCopyFromURL(\n copySource: string,\n options: BlobBeginCopyFromURLOptions = {}\n ): Promise<\n PollerLike, BlobBeginCopyFromURLResponse>\n > {\n const client: CopyPollerBlobClient = {\n abortCopyFromURL: (...args) => this.abortCopyFromURL(...args),\n getProperties: (...args) => this.getProperties(...args),\n startCopyFromURL: (...args) => this.startCopyFromURL(...args)\n };\n const poller = new BlobBeginCopyFromUrlPoller({\n blobClient: client,\n copySource,\n intervalInMs: options.intervalInMs,\n onProgress: options.onProgress,\n resumeFrom: options.resumeFrom,\n startCopyFromURLOptions: options\n });\n\n // Trigger the startCopyFromURL call by calling poll.\n // Any errors from this method should be surfaced to the user.\n await poller.poll();\n\n return poller;\n }\n\n /**\n * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero\n * length and full metadata. Version 2012-02-12 and newer.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob\n *\n * @param {string} copyId Id of the Copy From URL operation.\n * @param {BlobAbortCopyFromURLOptions} [options] Optional options to the Blob Abort Copy From URL operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async abortCopyFromURL(\n copyId: string,\n options: BlobAbortCopyFromURLOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-abortCopyFromURL\", options.tracingOptions);\n try {\n return await this.blobContext.abortCopyFromURL(copyId, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not\n * return a response until the copy is complete.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url\n *\n * @param {string} copySource The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication\n * @param {BlobSyncCopyFromURLOptions} [options={}]\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async syncCopyFromURL(\n copySource: string,\n options: BlobSyncCopyFromURLOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-syncCopyFromURL\", options.tracingOptions);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.copyFromURL(copySource, {\n abortSignal: options.abortSignal,\n metadata: options.metadata,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince\n },\n sourceContentMD5: options.sourceContentMD5,\n blobTagsString: toBlobTagsString(options.tags),\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets the tier on a blob. The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier\n *\n * @param {BlockBlobTier | PremiumPageBlobTier | string} tier The tier to be set on the blob. Valid values are Hot, Cool, or Archive.\n * @param {BlobSetTierOptions} [options] Optional options to the Blob Set Tier operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n public async setAccessTier(\n tier: BlockBlobTier | PremiumPageBlobTier | string,\n options: BlobSetTierOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-setAccessTier\", options.tracingOptions);\n try {\n return await this.blobContext.setTier(toAccessTier(tier)!, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n rehydratePriority: options.rehydratePriority,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level function\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @export\n * @param {number} offset From which position of the block blob to download(in bytes)\n * @param {number} [count] How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param {BlobDownloadToBufferOptions} [options] BlobDownloadToBufferOptions\n * @returns {Promise}\n */\n public async downloadToBuffer(\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @export\n * @param {Buffer} buffer Buffer to be fill, must have length larger than count\n * @param {number} offset From which position of the block blob to download(in bytes)\n * @param {number} [count] How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param {BlobDownloadToBufferOptions} [options] BlobDownloadToBufferOptions\n * @returns {Promise}\n */\n public async downloadToBuffer(\n buffer: Buffer,\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n public async downloadToBuffer(\n param1?: Buffer | number,\n param2?: number,\n param3?: BlobDownloadToBufferOptions | number,\n param4: BlobDownloadToBufferOptions = {}\n ) {\n let buffer: Buffer | undefined;\n let offset = 0;\n let count = 0;\n let options = param4;\n if (param1 instanceof Buffer) {\n buffer = param1;\n offset = param2 || 0;\n count = typeof param3 === \"number\" ? param3 : 0;\n } else {\n offset = typeof param1 === \"number\" ? param1 : 0;\n count = typeof param2 === \"number\" ? param2 : 0;\n options = (param3 as BlobDownloadToBufferOptions) || {};\n }\n const { span, spanOptions } = createSpan(\"BlobClient-downloadToBuffer\", options.tracingOptions);\n\n try {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0) {\n throw new RangeError(\"blockSize option must be >= 0\");\n }\n if (options.blockSize === 0) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n\n if (offset < 0) {\n throw new RangeError(\"offset option must be >= 0\");\n }\n\n if (count && count <= 0) {\n throw new RangeError(\"count option must be > 0\");\n }\n\n if (!options.conditions) {\n options.conditions = {};\n }\n\n // Customer doesn't specify length, get it\n if (!count) {\n const response = await this.getProperties({\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n spanOptions\n }\n });\n count = response.contentLength! - offset;\n if (count < 0) {\n throw new RangeError(\n `offset ${offset} shouldn't be larger than blob size ${response.contentLength!}`\n );\n }\n }\n\n // Allocate the buffer of size = count if the buffer is not provided\n if (!buffer) {\n try {\n buffer = Buffer.alloc(count);\n } catch (error) {\n throw new Error(\n `Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the \"downloadToBuffer\" method or try using other methods like \"download\" or \"downloadToFile\".\\t ${error.message}`\n );\n }\n }\n\n if (buffer.length < count) {\n throw new RangeError(\n `The buffer's size should be equal to or larger than the request count of bytes: ${count}`\n );\n }\n\n let transferProgress: number = 0;\n const batch = new Batch(options.concurrency);\n for (let off = offset; off < offset + count; off = off + options.blockSize) {\n batch.addOperation(async () => {\n // Exclusive chunk end position\n let chunkEnd = offset + count!;\n if (off + options.blockSize! < chunkEnd) {\n chunkEnd = off + options.blockSize!;\n }\n const response = await this.download(off, chunkEnd - off, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n maxRetryRequests: options.maxRetryRequestsPerBlock,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: {\n ...options.tracingOptions,\n spanOptions\n }\n });\n const stream = response.readableStreamBody!;\n await streamToBuffer(stream, buffer!, off - offset, chunkEnd - offset);\n // Update progress after block is downloaded, in case of block trying\n // Could provide finer grained progress updating inside HTTP requests,\n // only if convenience layer download try is enabled\n transferProgress += chunkEnd - off;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n });\n }\n await batch.do();\n return buffer;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob to a local file.\n * Fails if the the given file path already exits.\n * Offset and count are optional, pass 0 and undefined respectively to download the entire blob.\n *\n * @param {string} filePath\n * @param {number} [offset] From which position of the block blob to download.\n * @param {number} [count] How much data to be downloaded. Will download to the end when passing undefined.\n * @param {BlobDownloadOptions} [options] Options to Blob download options.\n * @returns {Promise} The response data for blob download operation,\n * but with readableStreamBody set to undefined since its\n * content is already read and written into a local file\n * at the specified path.\n * @memberof BlobClient\n */\n public async downloadToFile(\n filePath: string,\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-downloadToFile\", options.tracingOptions);\n try {\n const response = await this.download(offset, count, {\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n spanOptions\n }\n });\n if (response.readableStreamBody) {\n await readStreamToLocalFile(response.readableStreamBody, filePath);\n }\n\n // The stream is no longer accessible so setting it to undefined.\n (response as any).blobDownloadStream = undefined;\n return response;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private getBlobAndContainerNamesFromUrl(): { blobName: string; containerName: string } {\n let containerName;\n let blobName;\n try {\n // URL may look like the following\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt\";\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob`\n // http://localhost:10001/devstoreaccount1/containername/blob\n\n const parsedUrl = URLBuilder.parse(this.url);\n\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // \"https://myaccount.blob.core.windows.net/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob\n // .getPath() -> /devstoreaccount1/containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)/([^/]*)(/(.*))?\");\n containerName = pathComponents![2];\n blobName = pathComponents![4];\n } else {\n // \"https://customdomain.com/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n }\n\n // decode the encoded blobName, containerName - to get all the special characters that might be present in them\n containerName = decodeURIComponent(containerName);\n blobName = decodeURIComponent(blobName);\n\n // Azure Storage Server will replace \"\\\" with \"/\" in the blob names\n // doing the same in the SDK side so that the user doesn't have to replace \"\\\" instances in the blobName\n blobName = blobName.replace(/\\\\/g, \"/\");\n\n if (!blobName) {\n throw new Error(\"Provided blobName is invalid.\");\n } else if (!containerName) {\n throw new Error(\"Provided containerName is invalid.\");\n }\n\n return { blobName, containerName };\n } catch (error) {\n throw new Error(\"Unable to extract blobName and containerName with provided information.\");\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * @param {string} copySource url to the source Azure Blob/File.\n * @param {BlobStartCopyFromURLOptions} [options] Optional options to the Blob Start Copy From URL operation.\n * @returns {Promise}\n * @memberof BlobClient\n */\n private async startCopyFromURL(\n copySource: string,\n options: BlobStartCopyFromURLOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobClient-startCopyFromURL\", options.tracingOptions);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.startCopyFromURL(copySource, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n sourceIfTags: options.sourceConditions.tagConditions\n },\n rehydratePriority: options.rehydratePriority,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n sealBlob: options.sealBlob,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link AppendBlobClient.create} operation.\n *\n * @export\n * @interface AppendBlobCreateOptions\n */\nexport interface AppendBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof AppendBlobCreateOptions\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Conditions to meet when creating append blobs.\n *\n * @type {BlobRequestConditions}\n * @memberof AppendBlobCreateOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when creating append blobs.\n *\n * @type {BlobHTTPHeaders}\n * @memberof AppendBlobCreateOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n *\n * @type {Metadata}\n * @memberof AppendBlobCreateOptions\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof AppendBlobCreateOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof AppendBlobCreateOptions\n */\n encryptionScope?: string;\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof AppendBlobCreateOptions\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.createIfNotExists} operation.\n *\n * @export\n * @interface AppendBlobCreateIfNotExistsOptions\n */\nexport interface AppendBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof AppendBlobCreateIfNotExistsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * HTTP headers to set when creating append blobs.\n *\n * @type {BlobHTTPHeaders}\n * @memberof AppendBlobCreateIfNotExistsOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n *\n * @type {Metadata}\n * @memberof AppendBlobCreateIfNotExistsOptions\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof AppendBlobCreateIfNotExistsOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof AppendBlobCreateIfNotExistsOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.seal} operation.\n *\n * @export\n * @interface AppendBlobSealOptions\n * @extends {CommonOptions}\n */\nexport interface AppendBlobSealOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof AppendBlobAppendBlockOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet.\n *\n * @type {AppendBlobRequestConditions}\n * @memberof AppendBlobAppendBlockOptions\n */\n conditions?: AppendBlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlock} operation.\n *\n * @export\n * @interface AppendBlobAppendBlockOptions\n */\nexport interface AppendBlobAppendBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof AppendBlobAppendBlockOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n *\n * @type {AppendBlobRequestConditions}\n * @memberof AppendBlobAppendBlockOptions\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Callback to receive events on the progress of append block operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof AppendBlobAppendBlockOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof AppendBlobAppendBlockOptions\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content. This hash is used to verify the integrity of the append block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof AppendBlobAppendBlockOptions\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof AppendBlobAppendBlockOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof AppendBlobAppendBlockOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlockFromURL} operation.\n *\n * @export\n * @interface AppendBlobAppendBlockFromURLOptions\n */\nexport interface AppendBlobAppendBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n *\n * @type {AppendBlobRequestConditions}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n *\n * @type {MatchConditions & ModificationConditions}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof AppendBlobAppendBlockFromURLOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Contains response data for the {@link appendBlobClient.createIfNotExists} operation.\n *\n * @export\n * @interface AppendBlobCreateIfNotExistsResponse\n */\nexport interface AppendBlobCreateIfNotExistsResponse extends AppendBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n *\n * @type {boolean}\n * @memberof AppendBlobCreateIfNotExistsResponse\n */\n succeeded: boolean;\n}\n\n/**\n * AppendBlobClient defines a set of operations applicable to append blobs.\n *\n * @export\n * @class AppendBlobClient\n * @extends {BlobClient}\n */\nexport class AppendBlobClient extends BlobClient {\n /**\n * appendBlobsContext provided by protocol layer.\n *\n * @private\n * @type {AppendBlob}\n * @memberof AppendBlobClient\n */\n private appendBlobContext: AppendBlob;\n\n /**\n *\n * Creates an instance of AppendBlobClient.\n *\n * @param {string} connectionString Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param {string} containerName Container name.\n * @param {string} blobName Blob name.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof AppendBlobClient\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof AppendBlobClient\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {Pipeline} pipeline Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n * @memberof AppendBlobClient\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n blobNameOrOptions?: string | StoragePipelineOptions,\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: Pipeline;\n let url: string;\n options = options || {};\n if (credentialOrPipelineOrContainerName instanceof Pipeline) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions) url = urlOrConnectionString;\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n // The second parameter is undefined. Use anonymous credential.\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.appendBlobContext = new AppendBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new AppendBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param {string} snapshot The snapshot timestamp.\n * @returns {AppendBlobClient} A new AppendBlobClient object identical to the source but with the specified snapshot timestamp.\n * @memberof AppendBlobClient\n */\n public withSnapshot(snapshot: string): AppendBlobClient {\n return new AppendBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {AppendBlobCreateOptions} [options] Options to the Append Block Create operation.\n * @returns {Promise}\n * @memberof AppendBlobClient\n *\n * Example usage:\n *\n * ```js\n * const appendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await appendBlobClient.create();\n * ```\n */\n public async create(options: AppendBlobCreateOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"AppendBlobClient-create\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.create(0, {\n abortSignal: options.abortSignal,\n blobHTTPHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n blobTagsString: toBlobTagsString(options.tags),\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * If the blob with the same name already exists, the content of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {AppendBlobCreateIfNotExistsOptions} [options]\n * @returns {Promise}\n * @memberof AppendBlobClient\n */\n public async createIfNotExists(\n options: AppendBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"AppendBlobClient-createIfNotExists\",\n options.tracingOptions\n );\n const conditions = { ifNoneMatch: ETagAny };\n try {\n const res = await this.create({\n ...options,\n conditions,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response // _response is made non-enumerable\n };\n } catch (e) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: CanonicalCode.ALREADY_EXISTS,\n message: \"Expected exception when creating a blob only if it does not already exist.\"\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response\n };\n }\n\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Seals the append blob, making it read only.\n *\n * @param {AppendBlobSealOptions} [options={}]\n * @returns {Promise}\n * @memberof AppendBlobClient\n */\n public async seal(options: AppendBlobSealOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"AppendBlobClient-seal\", options.tracingOptions);\n options.conditions = options.conditions || {};\n try {\n return await this.appendBlobContext.seal({\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Commits a new block of data to the end of the existing append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/append-block\n *\n * @param {HttpRequestBody} body Data to be appended.\n * @param {number} contentLength Length of the body in bytes.\n * @param {AppendBlobAppendBlockOptions} [options] Options to the Append Block operation.\n * @returns {Promise}\n * @memberof AppendBlobClient\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello World!\";\n *\n * // Create a new append blob and append data to the blob.\n * const newAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await newAppendBlobClient.create();\n * await newAppendBlobClient.appendBlock(content, content.length);\n *\n * // Append data to an existing append blob.\n * const existingAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await existingAppendBlobClient.appendBlock(content, content.length);\n * ```\n */\n public async appendBlock(\n body: HttpRequestBody,\n contentLength: number,\n options: AppendBlobAppendBlockOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"AppendBlobClient-appendBlock\",\n options.tracingOptions\n );\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlock(body, contentLength, {\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n onUploadProgress: options.onProgress,\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Append Block operation commits a new block of data to the end of an existing append blob\n * where the contents are read from a source url.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/append-block-from-url\n *\n * @param {string} sourceURL\n * The url to the blob that will be the source of the copy. A source blob in the same storage account can\n * be authenticated via Shared Key. However, if the source is a blob in another account, the source blob\n * must either be public or must be authenticated via a shared access signature. If the source blob is\n * public, no authentication is required to perform the operation.\n * @param {number} sourceOffset Offset in source to be appended\n * @param {number} count Number of bytes to be appended as a block\n * @param {AppendBlobAppendBlockFromURLOptions} [options={}]\n * @returns {Promise}\n * @memberof AppendBlobClient\n */\n public async appendBlockFromURL(\n sourceURL: string,\n sourceOffset: number,\n count: number,\n options: AppendBlobAppendBlockFromURLOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"AppendBlobClient-appendBlockFromURL\",\n options.tracingOptions\n );\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, {\n abortSignal: options.abortSignal,\n sourceRange: rangeToString({ offset: sourceOffset, count }),\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n appendPositionAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link BlockBlobClient.upload} operation.\n *\n * @export\n * @interface BlockBlobUploadOptions\n */\nexport interface BlockBlobUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobUploadOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading to the block blob.\n *\n * @type {BlobRequestConditions}\n * @memberof BlockBlobUploadOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when uploading to a block blob.\n *\n * @type {BlobHTTPHeaders}\n * @memberof BlockBlobUploadOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when uploading to a block blob.\n *\n * @type {Metadata}\n * @memberof BlockBlobUploadOptions\n */\n metadata?: Metadata;\n /**\n * Callback to receive events on the progress of upload operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlockBlobUploadOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlockBlobUploadOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobUploadOptions\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {BlockBlobTier | string}\n * @memberof BlockBlobUploadOptions\n */\n tier?: BlockBlobTier | string;\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlockBlobUploadOptions\n */\n tags?: Tags;\n}\n\n/**\n * Blob query error type.\n *\n * @export\n * @interface BlobQueryError\n */\nexport interface BlobQueryError {\n /**\n * Whether error is fatal. Fatal error will stop query.\n *\n * @type {boolean}\n * @memberof BlobQueryError\n */\n isFatal: boolean;\n /**\n * Error name.\n *\n * @type {string}\n * @memberof BlobQueryError\n */\n name: string;\n /**\n * Position in bytes of the query.\n *\n * @type {number}\n * @memberof BlobQueryError\n */\n position: number;\n /**\n * Error description.\n *\n * @type {string}\n * @memberof BlobQueryError\n */\n description: string;\n}\n\n/**\n * Options to query blob with JSON format.\n *\n * @export\n * @interface BlobQueryJsonTextConfiguration\n */\nexport interface BlobQueryJsonTextConfiguration {\n /**\n * Record separator.\n *\n * @type {string}\n * @memberof BlobQueryJsonTextConfiguration\n */\n recordSeparator: string;\n /**\n * Query for a JSON format blob.\n *\n * @type {\"json\"}\n * @memberof BlobQueryJsonTextConfiguration\n */\n kind: \"json\";\n}\n\n/**\n * Options to query blob with CSV format.\n *\n * @export\n * @interface BlobQueryCsvTextConfiguration\n */\nexport interface BlobQueryCsvTextConfiguration {\n /**\n * Record separator.\n *\n * @type {string}\n * @memberof BlobQueryCsvTextConfiguration\n */\n recordSeparator: string;\n /**\n * Query for a CSV format blob.\n *\n * @type {\"csv\"}\n * @memberof BlobQueryCsvTextConfiguration\n */\n kind: \"csv\";\n /**\n * Column separator. Default is \",\".\n *\n * @type {string}\n * @memberof BlobQueryCsvTextConfiguration\n */\n columnSeparator?: string;\n /**\n * Field quote.\n *\n * @type {string}\n * @memberof BlobQueryCsvTextConfiguration\n */\n fieldQuote?: string;\n /**\n * Escape character.\n *\n * @type {string}\n * @memberof BlobQueryCsvTextConfiguration\n */\n escapeCharacter?: string;\n /**\n * Has headers. Default is false.\n *\n * @type {boolean}\n * @memberof BlobQueryCsvTextConfiguration\n */\n hasHeaders?: boolean;\n}\n\n/**\n * Options to query blob with Apache Arrow format. Only valid for {@link BlockBlobQueryOptions.outputTextConfiguration}.\n *\n * @export\n * @interface BlobQueryArrowConfiguration\n */\nexport interface BlobQueryArrowConfiguration {\n /**\n * Kind.\n *\n * @type {\"arrow\"}\n * @memberof BlobQueryArrowConfiguration\n */\n kind: \"arrow\";\n\n /**\n * List of {@link BlobQueryArrowField} describing the schema of the data.\n *\n * @type {BlobQueryArrowField[]}\n * @memberof BlobQueryArrowConfiguration\n */\n schema: BlobQueryArrowField[];\n}\n\n/**\n * Options to configure {@link BlockBlobClient.query} operation.\n *\n * @export\n * @interface BlockBlobQueryOptions\n */\nexport interface BlockBlobQueryOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobUploadOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Configurations for the query input.\n *\n * @type {BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration}\n * @memberof BlockBlobQueryOptions\n */\n inputTextConfiguration?: BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration;\n /**\n * Configurations for the query output.\n *\n * @type {BlobQueryJsonTextConfiguration | BlobQueryCsvTextConfiguration| BlobQueryArrowConfiguration}\n * @memberof BlockBlobQueryOptions\n */\n outputTextConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration;\n /**\n * Callback to receive events on the progress of query operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlockBlobUploadOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Callback to receive error events during the query operaiton.\n *\n * @memberof BlockBlobQueryOptions\n */\n onError?: (error: BlobQueryError) => void;\n /**\n * Conditions to meet when uploading to the block blob.\n *\n * @type {BlobRequestConditions}\n * @memberof BlockBlobUploadOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlockBlobUploadOptions\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlock} operation.\n *\n * @export\n * @interface BlockBlobStageBlockOptions\n */\nexport interface BlockBlobStageBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobStageBlockOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions}\n * @memberof BlockBlobStageBlockOptions\n */\n conditions?: LeaseAccessConditions;\n /**\n * Callback to receive events on the progress of stage block operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlockBlobStageBlockOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof BlockBlobStageBlockOptions\n */\n transactionalContentMD5?: Uint8Array;\n\n /**\n * A CRC64 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof BlockBlobStageBlockOptions\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlockBlobStageBlockOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobStageBlockOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlockFromURL} operation.\n *\n * @export\n * @interface BlockBlobStageBlockFromURLOptions\n */\nexport interface BlockBlobStageBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Specifies the bytes of the source Blob/File to upload.\n * If not specified, the entire content is uploaded as a single block.\n *\n * @type {Range}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n range?: Range;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n conditions?: LeaseAccessConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n * @type {Uint8Array}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobStageBlockFromURLOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.commitBlockList} operation.\n *\n * @export\n * @interface BlockBlobCommitBlockListOptions\n */\nexport interface BlockBlobCommitBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobCommitBlockListOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when committing the block list.\n *\n * @type {BlobRequestConditions}\n * @memberof BlockBlobCommitBlockListOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when committing block list.\n *\n * @type {BlobHTTPHeaders}\n * @memberof BlockBlobCommitBlockListOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when committing block list.\n *\n * @type {Metadata}\n * @memberof BlockBlobCommitBlockListOptions\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof BlockBlobCommitBlockListOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobCommitBlockListOptions\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {BlockBlobTier | string}\n * @memberof BlockBlobCommitBlockListOptions\n */\n tier?: BlockBlobTier | string;\n\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlockBlobCommitBlockListOptions\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.getBlockList} operation.\n *\n * @export\n * @interface BlockBlobGetBlockListOptions\n */\nexport interface BlockBlobGetBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobGetBlockListOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions & TagConditions}\n * @memberof BlockBlobGetBlockListOptions\n */\n conditions?: LeaseAccessConditions & TagConditions;\n}\n\n/**\n * Option interface for the {@link BlockBlobClient.uploadStream} operation.\n *\n * @export\n * @interface BlockBlobUploadStreamOptions\n */\nexport interface BlockBlobUploadStreamOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobUploadStreamOptions\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Blob HTTP Headers.\n *\n * @type {BlobHTTPHeaders}\n * @memberof BlockBlobUploadStreamOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n *\n * @type {{ [propertyName: string]: string }}\n * @memberof BlockBlobUploadStreamOptions\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n *\n * @type {BlobRequestConditions}\n * @memberof BlockBlobUploadStreamOptions\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Progress updater.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlockBlobUploadStreamOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobUploadStreamOptions\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlockBlobUploadStreamOptions\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {BlockBlobTier | string}\n * @memberof BlockBlobUploadStreamOptions\n */\n tier?: BlockBlobTier | string;\n}\n/**\n * Option interface for {@link BlockBlobClient.uploadFile} and {@link BlockBlobClient.uploadSeekableStream}.\n *\n * @export\n * @interface BlockBlobParallelUploadOptions\n */\nexport interface BlockBlobParallelUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof BlockBlobParallelUploadOptions\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Destination block blob size in bytes.\n *\n * @type {number}\n * @memberof BlockBlobParallelUploadOptions\n */\n blockSize?: number;\n\n /**\n * Blob size threshold in bytes to start concurrency uploading.\n * Default value is 256MB, blob size less than this option will\n * be uploaded via one I/O operation without concurrency.\n * You can customize a value less equal than the default value.\n *\n * @type {number}\n * @memberof BlockBlobParallelUploadOptions\n */\n maxSingleShotSize?: number;\n\n /**\n * Progress updater.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof BlockBlobParallelUploadOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Blob HTTP Headers.\n *\n * @type {BlobHTTPHeaders}\n * @memberof BlockBlobParallelUploadOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n *\n * @type {{ [propertyName: string]: string }}\n * @memberof BlockBlobParallelUploadOptions\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n *\n * @type {BlobRequestConditions}\n * @memberof BlockBlobParallelUploadOptions\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel uploading. Must be >= 0.\n *\n * @type {number}\n * @memberof BlockBlobParallelUploadOptions\n */\n concurrency?: number;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof BlockBlobParallelUploadOptions\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof BlockBlobParallelUploadOptions\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {BlockBlobTier | string}\n * @memberof BlockBlobParallelUploadOptions\n */\n tier?: BlockBlobTier | string;\n}\n\n/**\n * Response type for {@link BlockBlobClient.uploadFile}, {@link BlockBlobClient.uploadStream}, and\n * {@link BlockBlobClient.uploadBrowserDate}.\n *\n * @export\n */\nexport type BlobUploadCommonResponse = BlockBlobUploadHeaders & {\n /**\n * The underlying HTTP response.\n *\n * @type {HttpResponse}\n * @memberof BlobUploadCommonResponse\n */\n _response: HttpResponse;\n};\n\n/**\n * BlockBlobClient defines a set of operations applicable to block blobs.\n *\n * @export\n * @class BlockBlobClient\n * @extends {BlobClient}\n */\nexport class BlockBlobClient extends BlobClient {\n /**\n * blobContext provided by protocol layer.\n *\n * Note. Ideally BlobClient should set BlobClient.blobContext to protected. However, API\n * extractor has issue blocking that. Here we redecelare _blobContext in BlockBlobClient.\n *\n * @private\n * @type {Blobs}\n * @memberof BlobClient\n */\n private _blobContext: StorageBlob;\n\n /**\n * blockBlobContext provided by protocol layer.\n *\n * @private\n * @type {BlockBlobs}\n * @memberof BlockBlobClient\n */\n private blockBlobContext: BlockBlob;\n\n /**\n *\n * Creates an instance of BlockBlobClient.\n *\n * @param {string} connectionString Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param {string} containerName Container name.\n * @param {string} blobName Blob name.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof BlockBlobClient\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof BlockBlobClient\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {Pipeline} pipeline Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n * @memberof BlockBlobClient\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n blobNameOrOptions?: string | StoragePipelineOptions,\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: Pipeline;\n let url: string;\n options = options || {};\n if (credentialOrPipelineOrContainerName instanceof Pipeline) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.blockBlobContext = new BlockBlob(this.storageClientContext);\n this._blobContext = new StorageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new BlockBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a URL to the base blob.\n *\n * @param {string} snapshot The snapshot timestamp.\n * @returns {BlockBlobClient} A new BlockBlobClient object identical to the source but with the specified snapshot timestamp.\n * @memberof BlockBlobClient\n */\n public withSnapshot(snapshot: string): BlockBlobClient {\n return new BlockBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Quick query for a JSON or CSV formatted blob.\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Query and convert a blob to a string\n * const queryBlockBlobResponse = await blockBlobClient.query(\"select * from BlobStorage\");\n * const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();\n * console.log(\"Query blob content:\", downloaded);\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * @param {string} query\n * @param {BlockBlobQueryOptions} [options={}]\n * @returns {Promise}\n * @memberof BlockBlobClient\n */\n public async query(\n query: string,\n options: BlockBlobQueryOptions = {}\n ): Promise {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, spanOptions } = createSpan(\"BlockBlobClient-query\", options.tracingOptions);\n\n try {\n if (!isNode) {\n throw new Error(\"This operation currently is only supported in Node.js.\");\n }\n\n const response = await this._blobContext.query({\n abortSignal: options.abortSignal,\n queryRequest: {\n expression: query,\n inputSerialization: toQuerySerialization(options.inputTextConfiguration),\n outputSerialization: toQuerySerialization(options.outputTextConfiguration)\n },\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n return new BlobQueryResponse(response, {\n abortSignal: options.abortSignal,\n onProgress: options.onProgress,\n onError: options.onError\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new block blob, or updates the content of an existing block blob.\n * Updating an existing block blob overwrites any existing metadata on the blob.\n * Partial updates are not supported; the content of the existing blob is\n * overwritten with the new content. To perform a partial update of a block blob's,\n * use {@link stageBlock} and {@link commitBlockList}.\n *\n * This is a non-parallel uploading method, please use {@link uploadFile},\n * {@link uploadStream} or {@link uploadBrowserData} for better performance\n * with concurrency uploading.\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {HttpRequestBody} body Blob, string, ArrayBuffer, ArrayBufferView or a function\n * which returns a new Readable stream whose offset is from data source beginning.\n * @param {number} contentLength Length of body in bytes. Use Buffer.byteLength() to calculate body length for a\n * string including non non-Base64/Hex-encoded characters.\n * @param {BlockBlobUploadOptions} [options] Options to the Block Blob Upload operation.\n * @returns {Promise} Response data for the Block Blob Upload operation.\n * @memberof BlockBlobClient\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello world!\";\n * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);\n * ```\n */\n public async upload(\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobUploadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\"BlockBlobClient-upload\", options.tracingOptions);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.upload(body, contentLength, {\n abortSignal: options.abortSignal,\n blobHTTPHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n onUploadProgress: options.onProgress,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Uploads the specified block to the block blob's \"staging area\" to be later\n * committed by a call to commitBlockList.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block\n *\n * @param {string} blockId A 64-byte value that is base64-encoded\n * @param {HttpRequestBody} body Data to upload to the staging area.\n * @param {number} contentLength Number of bytes to upload.\n * @param {BlockBlobStageBlockOptions} [options] Options to the Block Blob Stage Block operation.\n * @returns {Promise} Response data for the Block Blob Stage Block operation.\n * @memberof BlockBlobClient\n */\n public async stageBlock(\n blockId: string,\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobStageBlockOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlockBlobClient-stageBlock\", options.tracingOptions);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlock(blockId, contentLength, body, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n onUploadProgress: options.onProgress,\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Stage Block From URL operation creates a new block to be committed as part\n * of a blob where the contents are read from a URL.\n * This API is available starting in version 2018-03-28.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url\n *\n * @param {string} blockId A 64-byte value that is base64-encoded\n * @param {string} sourceURL Specifies the URL of the blob. The value\n * may be a URL of up to 2 KB in length that specifies a blob.\n * The value should be URL-encoded as it would appear\n * in a request URI. The source blob must either be public\n * or must be authenticated via a shared access signature.\n * If the source blob is public, no authentication is required\n * to perform the operation. Here are some examples of source object URLs:\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param {number} [offset] From which position of the blob to download, >= 0\n * @param {number} [count] How much data to be downloaded, > 0. Will download to the end when undefined\n * @param {BlockBlobStageBlockFromURLOptions} [options={}] Options to the Block Blob Stage Block From URL operation.\n * @returns {Promise} Response data for the Block Blob Stage Block From URL operation.\n * @memberof BlockBlobClient\n */\n public async stageBlockFromURL(\n blockId: string,\n sourceURL: string,\n offset: number = 0,\n count?: number,\n options: BlockBlobStageBlockFromURLOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-stageBlockFromURL\",\n options.tracingOptions\n );\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes a blob by specifying the list of block IDs that make up the blob.\n * In order to be written as part of a blob, a block must have been successfully written\n * to the server in a prior {@link stageBlock} operation. You can call {@link commitBlockList} to\n * update a blob by uploading only those blocks that have changed, then committing the new and existing\n * blocks together. Any blocks not specified in the block list and permanently deleted.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block-list\n *\n * @param {string[]} blocks Array of 64-byte value that is base64-encoded\n * @param {BlockBlobCommitBlockListOptions} [options] Options to the Block Blob Commit Block List operation.\n * @returns {Promise} Response data for the Block Blob Commit Block List operation.\n * @memberof BlockBlobClient\n */\n public async commitBlockList(\n blocks: string[],\n options: BlockBlobCommitBlockListOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-commitBlockList\",\n options.tracingOptions\n );\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.commitBlockList(\n { latest: blocks },\n {\n abortSignal: options.abortSignal,\n blobHTTPHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n spanOptions\n }\n );\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of blocks that have been uploaded as part of a block blob\n * using the specified block list filter.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-block-list\n *\n * @param {BlockListType} listType Specifies whether to return the list of committed blocks,\n * the list of uncommitted blocks, or both lists together.\n * @param {BlockBlobGetBlockListOptions} [options] Options to the Block Blob Get Block List operation.\n * @returns {Promise} Response data for the Block Blob Get Block List operation.\n * @memberof BlockBlobClient\n */\n public async getBlockList(\n listType: BlockListType,\n options: BlockBlobGetBlockListOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-getBlockList\",\n options.tracingOptions\n );\n try {\n const res = await this.blockBlobContext.getBlockList(listType, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n\n if (!res.committedBlocks) {\n res.committedBlocks = [];\n }\n\n if (!res.uncommittedBlocks) {\n res.uncommittedBlocks = [];\n }\n\n return res;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level functions\n\n /**\n * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.\n *\n * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * @export\n * @param {Buffer | Blob | ArrayBuffer | ArrayBufferView} data Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView\n * @param {BlockBlobParallelUploadOptions} [options]\n * @returns {Promise}\n * @memberof BlockBlobClient\n */\n public async uploadData(\n data: Buffer | Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlockBlobClient-uploadData\", options.tracingOptions);\n try {\n if (isNode) {\n let buffer: Buffer;\n if (data instanceof Buffer) {\n buffer = data;\n } else if (data instanceof ArrayBuffer) {\n buffer = Buffer.from(data);\n } else {\n data = data as ArrayBufferView;\n buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n }\n\n return this.uploadSeekableInternal(\n (offset: number, size: number): Buffer => buffer.slice(offset, offset + size),\n buffer.byteLength,\n {\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n }\n );\n } else {\n const browserBlob = new Blob([data]);\n return this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n { ...options, tracingOptions: { ...options!.tracingOptions, spanOptions } }\n );\n }\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN BROWSERS.\n *\n * Uploads a browser Blob/File/ArrayBuffer/ArrayBufferView object to block blob.\n *\n * When buffer length <= 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call\n * {@link commitBlockList} to commit the block list.\n *\n * @deprecated Use {@link uploadData} instead.\n *\n * @export\n * @param {Blob | ArrayBuffer | ArrayBufferView} browserData Blob, File, ArrayBuffer or ArrayBufferView\n * @param {BlockBlobParallelUploadOptions} [options] Options to upload browser data.\n * @returns {Promise} Response data for the Blob Upload operation.\n * @memberof BlockBlobClient\n */\n public async uploadBrowserData(\n browserData: Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-uploadBrowserData\",\n options.tracingOptions\n );\n try {\n const browserBlob = new Blob([browserData]);\n return await this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n { ...options, tracingOptions: { ...options!.tracingOptions, spanOptions } }\n );\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n *\n * Uploads data to block blob. Requires a bodyFactory as the data source,\n * which need to return a {@link HttpRequestBody} object with the offset and size provided.\n *\n * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * @param {(offset: number, size: number) => HttpRequestBody} bodyFactory\n * @param {number} size size of the data to upload.\n * @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.\n * @returns {Promise} Response data for the Blob Upload operation.\n * @memberof BlockBlobClient\n */\n private async uploadSeekableInternal(\n bodyFactory: (offset: number, size: number) => HttpRequestBody,\n size: number,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {\n throw new RangeError(\n `blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`\n );\n }\n\n if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) {\n options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES;\n }\n if (\n options.maxSingleShotSize < 0 ||\n options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES\n ) {\n throw new RangeError(\n `maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`\n );\n }\n\n if (options.blockSize === 0) {\n if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(`${size} is too larger to upload to a block blob.`);\n }\n if (size > options.maxSingleShotSize) {\n options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS);\n if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n }\n }\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-uploadSeekableInternal\",\n options.tracingOptions\n );\n\n try {\n if (size <= options.maxSingleShotSize) {\n return await this.upload(bodyFactory(0, size), size, {\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n }\n\n const numBlocks: number = Math.floor((size - 1) / options.blockSize) + 1;\n if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(\n `The buffer's size is too big or the BlockSize is too small;` +\n `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`\n );\n }\n\n const blockList: string[] = [];\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n\n const batch = new Batch(options.concurrency);\n for (let i = 0; i < numBlocks; i++) {\n batch.addOperation(\n async (): Promise => {\n const blockID = generateBlockID(blockIDPrefix, i);\n const start = options.blockSize! * i;\n const end = i === numBlocks - 1 ? size : start + options.blockSize!;\n const contentLength = end - start;\n blockList.push(blockID);\n await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n // Update progress after block is successfully uploaded to server, in case of block trying\n // TODO: Hook with convenience layer progress event in finer level\n transferProgress += contentLength;\n if (options.onProgress) {\n options.onProgress!({\n loadedBytes: transferProgress\n });\n }\n }\n );\n }\n await batch.do();\n\n return this.commitBlockList(blockList, {\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a local file in blocks to a block blob.\n *\n * When file size <= 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList\n * to commit the block list.\n *\n * @param {string} filePath Full path of local file\n * @param {BlockBlobParallelUploadOptions} [options] Options to Upload to Block Blob operation.\n * @returns {(Promise)} Response data for the Blob Upload operation.\n * @memberof BlockBlobClient\n */\n public async uploadFile(\n filePath: string,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlockBlobClient-uploadFile\", options.tracingOptions);\n try {\n const size = (await fsStat(filePath)).size;\n return await this.uploadSeekableInternal(\n (offset, count) => {\n return () =>\n fsCreateReadStream(filePath, {\n autoClose: true,\n end: count ? offset + count - 1 : Infinity,\n start: offset\n });\n },\n size,\n { ...options, tracingOptions: { ...options!.tracingOptions, spanOptions } }\n );\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a Node.js Readable stream into block blob.\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * * Input stream highWaterMark is better to set a same value with bufferSize\n * parameter, which will avoid Buffer.concat() operations.\n *\n * @param {Readable} stream Node.js Readable stream\n * @param {number} bufferSize Size of every buffer allocated, also the block size in the uploaded block blob. Default value is 8MB\n * @param {number} maxConcurrency Max concurrency indicates the max number of buffers that can be allocated,\n * positive correlation with max uploading concurrency. Default value is 5\n * @param {BlockBlobUploadStreamOptions} [options] Options to Upload Stream to Block Blob operation.\n * @returns {Promise} Response data for the Blob Upload operation.\n * @memberof BlockBlobClient\n */\n public async uploadStream(\n stream: Readable,\n bufferSize: number = DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n maxConcurrency: number = 5,\n options: BlockBlobUploadStreamOptions = {}\n ): Promise {\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, spanOptions } = createSpan(\n \"BlockBlobClient-uploadStream\",\n options.tracingOptions\n );\n\n try {\n let blockNum = 0;\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n const blockList: string[] = [];\n\n const scheduler = new BufferScheduler(\n stream,\n bufferSize,\n maxConcurrency,\n async (body, length) => {\n const blockID = generateBlockID(blockIDPrefix, blockNum);\n blockList.push(blockID);\n blockNum++;\n\n await this.stageBlock(blockID, body, length, {\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n\n // Update progress after block is successfully uploaded to server, in case of block trying\n transferProgress += length;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n },\n // concurrency should set a smaller value than maxConcurrency, which is helpful to\n // reduce the possibility when a outgoing handler waits for stream data, in\n // this situation, outgoing handlers are blocked.\n // Outgoing queue shouldn't be empty.\n Math.ceil((maxConcurrency / 4) * 3)\n );\n await scheduler.do();\n\n return await this.commitBlockList(blockList, {\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure the {@link PageBlobClient.create} operation.\n *\n * @export\n * @interface PageBlobCreateOptions\n */\nexport interface PageBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobCreateOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when creating a page blob.\n *\n * @type {BlobRequestConditions}\n * @memberof PageBlobCreateOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n *\n * @type {number}\n * @memberof PageBlobCreateOptions\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n *\n * @type {BlobHTTPHeaders}\n * @memberof PageBlobCreateOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n *\n * @type {Metadata}\n * @memberof PageBlobCreateOptions\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof PageBlobCreateOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobCreateOptions\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {PremiumPageBlobTier | string}\n * @memberof PageBlobCreateOptions\n */\n tier?: PremiumPageBlobTier | string;\n /**\n * Blob tags.\n *\n * @type {Tags}\n * @memberof PageBlobCreateOptions\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.createIfNotExists} operation.\n *\n * @export\n * @interface PageBlobCreateIfNotExistsOptions\n */\nexport interface PageBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n *\n * @type {number}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n *\n * @type {BlobHTTPHeaders}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n *\n * @type {Metadata}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n *\n * @type {PremiumPageBlobTier | string}\n * @memberof PageBlobCreateIfNotExistsOptions\n */\n tier?: PremiumPageBlobTier | string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.uploadPages} operation.\n *\n * @export\n * @interface PageBlobUploadPagesOptions\n */\nexport interface PageBlobUploadPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobUploadPagesOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading pages.\n *\n * @type {PageBlobRequestConditions}\n * @memberof PageBlobUploadPagesOptions\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Callback to receive events on the progress of upload pages operation.\n *\n * @type {(progress: TransferProgressEvent) => void}\n * @memberof PageBlobUploadPagesOptions\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof PageBlobUploadPagesOptions\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof PageBlobUploadPagesOptions\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof PageBlobUploadPagesOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobUploadPagesOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.clearPages} operation.\n *\n * @export\n * @interface PageBlobClearPagesOptions\n */\nexport interface PageBlobClearPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobClearPagesOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when clearing pages.\n *\n * @type {PageBlobRequestConditions}\n * @memberof PageBlobClearPagesOptions\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof PageBlobClearPagesOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobClearPagesOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getPageRanges} operation.\n *\n * @export\n * @interface PageBlobGetPageRangesOptions\n */\nexport interface PageBlobGetPageRangesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobGetPageRangesOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n *\n * @type {BlobRequestConditions}\n * @memberof PageBlobGetPageRangesOptions\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getRangesDiff} operation.\n *\n * @export\n * @interface PageBlobGetPageRangesDiffOptions\n */\nexport interface PageBlobGetPageRangesDiffOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobGetPageRangesDiffOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges diff.\n *\n * @type {BlobRequestConditions}\n * @memberof PageBlobGetPageRangesDiffOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * (unused)\n *\n * @type {string}\n * @memberof PageBlobGetPageRangesDiffOptions\n */\n range?: string;\n}\n\n/**\n * Options to configure {@link PageBlobClient.resize} operation.\n *\n * @export\n * @interface PageBlobResizeOptions\n */\nexport interface PageBlobResizeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobResizeOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when resizing a page blob.\n *\n * @type {BlobRequestConditions}\n * @memberof PageBlobResizeOptions\n */\n conditions?: BlobRequestConditions;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobResizeOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link PageBlobClient.updateSequenceNumber} operation.\n *\n * @export\n * @interface PageBlobUpdateSequenceNumberOptions\n */\nexport interface PageBlobUpdateSequenceNumberOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobUpdateSequenceNumberOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n *\n * @type {BlobRequestConditions}\n * @memberof PageBlobUpdateSequenceNumberOptions\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.startCopyIncremental} operation.\n *\n * @export\n * @interface PageBlobStartCopyIncrementalOptions\n */\nexport interface PageBlobStartCopyIncrementalOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobStartCopyIncrementalOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when starting a copy incremental operation.\n *\n * @type {ModifiedAccessConditions}\n * @memberof PageBlobStartCopyIncrementalOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.uploadPagesFromURL} operation.\n *\n * @export\n * @interface PageBlobUploadPagesFromURLOptions\n */\nexport interface PageBlobUploadPagesFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n *\n * @type {PageBlobRequestConditions}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n *\n * @type {MatchConditions & ModificationConditions}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n *\n * @type {Uint8Array}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n *\n * @type {CpkInfo}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n *\n * @type {string}\n * @memberof PageBlobUploadPagesFromURLOptions\n */\n encryptionScope?: string;\n}\n\n/**\n * Contains response data for the {@link PageBlobClient.createIfNotExists} operation.\n *\n * @export\n * @interface PageBlobCreateIfNotExistsResponse\n */\nexport interface PageBlobCreateIfNotExistsResponse extends PageBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n *\n * @type {boolean}\n * @memberof PageBlobCreateIfNotExistsResponse\n */\n succeeded: boolean;\n}\n\n/**\n * PageBlobClient defines a set of operations applicable to page blobs.\n *\n * @export\n * @class PageBlobClient\n * @extends {BlobClient}\n */\nexport class PageBlobClient extends BlobClient {\n /**\n * pageBlobsContext provided by protocol layer.\n *\n * @private\n * @type {PageBlobs}\n * @memberof PageBlobClient\n */\n private pageBlobContext: PageBlob;\n\n /**\n *\n * Creates an instance of PageBlobClient.\n *\n * @param {string} connectionString Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param {string} containerName Container name.\n * @param {string} blobName Blob name.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof PageBlobClient\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof PageBlobClient\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n *\n * @param {string} url A URL string pointing to Azure Storage blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {Pipeline} pipeline Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n * @memberof PageBlobClient\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n blobNameOrOptions?: string | StoragePipelineOptions,\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: Pipeline;\n let url: string;\n options = options || {};\n if (credentialOrPipelineOrContainerName instanceof Pipeline) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.pageBlobContext = new PageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new PageBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param {string} snapshot The snapshot timestamp.\n * @returns {PageBlobClient} A new PageBlobClient object identical to the source but with the specified snapshot timestamp.\n * @memberof PageBlobClient\n */\n public withSnapshot(snapshot: string): PageBlobClient {\n return new PageBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {number} size size of the page blob.\n * @param {PageBlobCreateOptions} [options] Options to the Page Blob Create operation.\n * @returns {Promise} Response data for the Page Blob Create operation.\n * @memberof PageBlobClient\n */\n public async create(\n size: number,\n options: PageBlobCreateOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\"PageBlobClient-create\", options.tracingOptions);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.create(0, size, {\n abortSignal: options.abortSignal,\n blobHTTPHeaders: options.blobHTTPHeaders,\n blobSequenceNumber: options.blobSequenceNumber,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob. If the blob with the same name already exists, the content\n * of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {number} size size of the page blob.\n * @param {PageBlobCreateIfNotExistsOptions} [options]\n * @returns {Promise}\n * @memberof PageBlobClient\n */\n public async createIfNotExists(\n size: number,\n options: PageBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-createIfNotExists\",\n options.tracingOptions\n );\n try {\n const conditions = { ifNoneMatch: ETagAny };\n const res = await this.create(size, {\n ...options,\n conditions,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response // _response is made non-enumerable\n };\n } catch (e) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: CanonicalCode.ALREADY_EXISTS,\n message: \"Expected exception when creating a blob only if it does not already exist.\"\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response\n };\n }\n\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param {HttpRequestBody} body Data to upload\n * @param {number} offset Offset of destination page blob\n * @param {number} count Content length of the body, also number of bytes to be uploaded\n * @param {PageBlobUploadPagesOptions} [options] Options to the Page Blob Upload Pages operation.\n * @returns {Promise} Response data for the Page Blob Upload Pages operation.\n * @memberof PageBlobClient\n */\n public async uploadPages(\n body: HttpRequestBody,\n offset: number,\n count: number,\n options: PageBlobUploadPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\"PageBlobClient-uploadPages\", options.tracingOptions);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPages(body, count, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n onUploadProgress: options.onProgress,\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Upload Pages operation writes a range of pages to a page blob where the\n * contents are read from a URL.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-page-from-url\n *\n * @param {string} sourceURL Specify a URL to the copy source, Shared Access Signature(SAS) maybe needed for authentication\n * @param {number} sourceOffset The source offset to copy from. Pass 0 to copy from the beginning of source page blob\n * @param {number} destOffset Offset of destination page blob\n * @param {number} count Number of bytes to be uploaded from source page blob\n * @param {PageBlobUploadPagesFromURLOptions} [options={}]\n * @returns {Promise}\n * @memberof PageBlobClient\n */\n public async uploadPagesFromURL(\n sourceURL: string,\n sourceOffset: number,\n destOffset: number,\n count: number,\n options: PageBlobUploadPagesFromURLOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-uploadPagesFromURL\",\n options.tracingOptions\n );\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPagesFromURL(\n sourceURL,\n rangeToString({ offset: sourceOffset, count }),\n 0,\n rangeToString({ offset: destOffset, count }),\n {\n abortSignal: options.abortSignal,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n sequenceNumberAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n }\n );\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Frees the specified pages from the page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param {number} [offset] Starting byte position of the pages to clear.\n * @param {number} [count] Number of bytes to clear.\n * @param {PageBlobClearPagesOptions} [options] Options to the Page Blob Clear Pages operation.\n * @returns {Promise} Response data for the Page Blob Clear Pages operation.\n * @memberof PageBlobClient\n */\n public async clearPages(\n offset: number = 0,\n count?: number,\n options: PageBlobClearPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\"PageBlobClient-clearPages\", options.tracingOptions);\n try {\n return await this.pageBlobContext.clearPages(0, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of valid page ranges for a page blob or snapshot of a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param {number} [offset] Starting byte position of the page ranges.\n * @param {number} [count] Number of bytes to get.\n * @param {PageBlobGetPageRangesOptions} [options] Options to the Page Blob Get Ranges operation.\n * @returns {Promise} Response data for the Page Blob Get Ranges operation.\n * @memberof PageBlobClient\n */\n public async getPageRanges(\n offset: number = 0,\n count?: number,\n options: PageBlobGetPageRangesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-getPageRanges\",\n options.tracingOptions\n );\n try {\n return await this.pageBlobContext\n .getPageRanges({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n range: rangeToString({ offset, count }),\n spanOptions\n })\n .then(rangeResponseFromModel);\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param {number} offset Starting byte position of the page blob\n * @param {number} count Number of bytes to get ranges diff.\n * @param {string} prevSnapshot Timestamp of snapshot to retrieve the difference.\n * @param {PageBlobGetPageRangesDiffOptions} [options] Options to the Page Blob Get Page Ranges Diff operation.\n * @returns {Promise} Response data for the Page Blob Get Page Range Diff operation.\n * @memberof PageBlobClient\n */\n public async getPageRangesDiff(\n offset: number,\n count: number,\n prevSnapshot: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-getPageRangesDiff\",\n options.tracingOptions\n );\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n prevsnapshot: prevSnapshot,\n range: rangeToString({ offset, count }),\n spanOptions\n })\n .then(rangeResponseFromModel);\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param {number} offset Starting byte position of the page blob\n * @param {number} count Number of bytes to get ranges diff.\n * @param {string} prevSnapshotUrl URL of snapshot to retrieve the difference.\n * @param {PageBlobGetPageRangesDiffOptions} [options] Options to the Page Blob Get Page Ranges Diff operation.\n * @returns {Promise} Response data for the Page Blob Get Page Range Diff operation.\n * @memberof PageBlobClient\n */\n public async getPageRangesDiffForManagedDisks(\n offset: number,\n count: number,\n prevSnapshotUrl: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-GetPageRangesDiffForManagedDisks\",\n options.tracingOptions\n );\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n prevSnapshotUrl,\n range: rangeToString({ offset, count }),\n spanOptions\n })\n .then(rangeResponseFromModel);\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Resizes the page blob to the specified size (which must be a multiple of 512).\n * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties\n *\n * @param {number} size Target size\n * @param {PageBlobResizeOptions} [options] Options to the Page Blob Resize operation.\n * @returns {Promise} Response data for the Page Blob Resize operation.\n * @memberof PageBlobClient\n */\n public async resize(\n size: number,\n options: PageBlobResizeOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\"PageBlobClient-resize\", options.tracingOptions);\n try {\n return await this.pageBlobContext.resize(size, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n encryptionScope: options.encryptionScope,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets a page blob's sequence number.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param {SequenceNumberActionType} sequenceNumberAction Indicates how the service should modify the blob's sequence number.\n * @param {number} [sequenceNumber] Required if sequenceNumberAction is max or update\n * @param {PageBlobUpdateSequenceNumberOptions} [options] Options to the Page Blob Update Sequence Number operation.\n * @returns {Promise} Response data for the Page Blob Update Sequence Number operation.\n * @memberof PageBlobClient\n */\n public async updateSequenceNumber(\n sequenceNumberAction: SequenceNumberActionType,\n sequenceNumber?: number,\n options: PageBlobUpdateSequenceNumberOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-updateSequenceNumber\",\n options.tracingOptions\n );\n try {\n return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, {\n abortSignal: options.abortSignal,\n blobSequenceNumber: sequenceNumber,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob.\n * The snapshot is copied such that only the differential changes between the previously\n * copied snapshot are transferred to the destination.\n * The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual.\n * @see https://docs.microsoft.com/rest/api/storageservices/incremental-copy-blob\n * @see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/incremental-snapshots\n *\n * @param {string} copySource Specifies the name of the source page blob snapshot. For example,\n * https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param {PageBlobStartCopyIncrementalOptions} [options] Options to the Page Blob Copy Incremental operation.\n * @returns {Promise} Response data for the Page Blob Copy Incremental operation.\n * @memberof PageBlobClient\n */\n public async startCopyIncremental(\n copySource: string,\n options: PageBlobStartCopyIncrementalOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"PageBlobClient-startCopyIncremental\",\n options.tracingOptions\n );\n try {\n return await this.pageBlobContext.copyIncremental(copySource, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * The details for a specific lease.\n */\nexport interface Lease {\n /**\n * The ETag contains a value that you can use to\n * perform operations conditionally. If the request version is 2011-08-18 or\n * newer, the ETag value will be in quotes.\n */\n etag?: string;\n /**\n * Returns the date and time the container was\n * last modified. Any operation that modifies the blob, including an update\n * of the blob's metadata or properties, changes the last-modified time of\n * the blob.\n */\n lastModified?: Date;\n /**\n * Uniquely identifies a container's lease\n */\n leaseId?: string;\n /**\n * Approximate time remaining in the lease\n * period, in seconds.\n */\n leaseTime?: number;\n /**\n * This header uniquely identifies the request\n * that was made and can be used for troubleshooting the request.\n */\n requestId?: string;\n /**\n * Indicates the version of the Blob service used\n * to execute the request. This header is returned for requests made against\n * version 2009-09-19 and above.\n */\n version?: string;\n /**\n * UTC date/time value generated by the service that\n * indicates the time at which the response was initiated\n */\n date?: Date;\n /**\n * Error code if any associated with the response that returned\n * the Lease information.\n */\n errorCode?: string;\n}\n\n/**\n * Contains the response data for operations that create, modify, or delete a lease.\n *\n * See {@link BlobLeaseClient}.\n */\nexport type LeaseOperationResponse = Lease & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Lease;\n };\n};\n\n/**\n * Configures lease operations.\n *\n * @export\n * @interface LeaseOperationOptions\n */\nexport interface LeaseOperationOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof LeaseOperationOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof LeaseOperationOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}.\n *\n * @export\n * @class BlobLeaseClient\n */\nexport class BlobLeaseClient {\n private _leaseId: string;\n private _url: string;\n private _containerOrBlobOperation: Container | StorageBlob;\n private _isContainer: boolean;\n\n /**\n * Gets the lease Id.\n *\n * @readonly\n * @memberof BlobLeaseClient\n * @type {string}\n */\n public get leaseId(): string {\n return this._leaseId;\n }\n\n /**\n * Gets the url.\n *\n * @readonly\n * @memberof BlobLeaseClient\n * @type {string}\n */\n public get url(): string {\n return this._url;\n }\n\n /**\n * Creates an instance of BlobLeaseClient.\n * @param {(ContainerClient | BlobClient)} client The client to make the lease operation requests.\n * @param {string} leaseId Initial proposed lease id.\n * @memberof BlobLeaseClient\n */\n constructor(client: ContainerClient | BlobClient, leaseId?: string) {\n const clientContext = new StorageClientContext(\n client.url,\n (client as any).pipeline.toServiceClientOptions()\n );\n this._url = client.url;\n\n if (client instanceof ContainerClient) {\n this._isContainer = true;\n this._containerOrBlobOperation = new Container(clientContext);\n } else {\n this._isContainer = false;\n this._containerOrBlobOperation = new StorageBlob(clientContext);\n }\n\n if (!leaseId) {\n leaseId = generateUuid();\n }\n this._leaseId = leaseId;\n }\n\n /**\n * Establishes and manages a lock on a container for delete operations, or on a blob\n * for write and delete operations.\n * The lock duration can be 15 to 60 seconds, or can be infinite.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param {number} duration Must be between 15 to 60 seconds, or infinite (-1)\n * @param {LeaseOperationOptions} [options={}] option to configure lease management operations.\n * @returns {Promise} Response data for acquire lease operation.\n * @memberof BlobLeaseClient\n */\n public async acquireLease(\n duration: number,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"BlobLeaseClient-acquireLease\",\n options.tracingOptions\n );\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.acquireLease({\n abortSignal: options.abortSignal,\n duration,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n proposedLeaseId: this._leaseId,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To change the ID of the lease.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param {string} proposedLeaseId the proposed new lease Id.\n * @param {LeaseOperationOptions} [options={}] option to configure lease management operations.\n * @returns {Promise} Response data for change lease operation.\n * @memberof BlobLeaseClient\n */\n public async changeLease(\n proposedLeaseId: string,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobLeaseClient-changeLease\", options.tracingOptions);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n const response = await this._containerOrBlobOperation.changeLease(\n this._leaseId,\n proposedLeaseId,\n {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n }\n );\n this._leaseId = proposedLeaseId;\n return response;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To free the lease if it is no longer needed so that another client may\n * immediately acquire a lease against the container or the blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param {LeaseOperationOptions} [options={}] option to configure lease management operations.\n * @returns {Promise} Response data for release lease operation.\n * @memberof BlobLeaseClient\n */\n public async releaseLease(options: LeaseOperationOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\n \"BlobLeaseClient-releaseLease\",\n options.tracingOptions\n );\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.releaseLease(this._leaseId, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To renew the lease.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param {LeaseOperationOptions} [options={}] Optional option to configure lease management operations.\n * @returns {Promise} Response data for renew lease operation.\n * @memberof BlobLeaseClient\n */\n public async renewLease(options: LeaseOperationOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"BlobLeaseClient-renewLease\", options.tracingOptions);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.renewLease(this._leaseId, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To end the lease but ensure that another client cannot acquire a new lease\n * until the current lease period has expired.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @static\n * @param {number} breakPeriod Break period\n * @param {LeaseOperationOptions} [options={}] Optional options to configure lease management operations.\n * @returns {Promise} Response data for break lease operation.\n * @memberof BlobLeaseClient\n */\n public async breakLease(\n breakPeriod: number,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"BlobLeaseClient-breakLease\", options.tracingOptions);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n const operationOptions: ContainerBreakLeaseOptionalParams = {\n abortSignal: options.abortSignal,\n breakPeriod,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions\n },\n spanOptions\n };\n return await this._containerOrBlobOperation.breakLease(operationOptions);\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link ContainerClient.create} operation.\n *\n * @export\n * @interface ContainerCreateOptions\n */\nexport interface ContainerCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerCreateOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the container.\n *\n * @type {Metadata}\n * @memberof ContainerCreateOptions\n */\n metadata?: Metadata;\n /**\n * Specifies whether data in the container may be accessed publicly and the level of access. Possible values include:\n * - `container`: Specifies full public read access for container and blob data. Clients can enumerate blobs within the container via anonymous request, but cannot enumerate containers within the storage account.\n * - `blob`: Specifies public read access for blobs. Blob data within this container can be read via anonymous request, but container data is not available. Clients cannot enumerate blobs within the container via anonymous request.\n *\n * @type {PublicAccessType}\n * @memberof ContainerCreateOptions\n */\n access?: PublicAccessType;\n /**\n * Container encryption scope info.\n *\n * @type {ContainerEncryptionScope}\n * @memberof ContainerCreateOptions\n */\n containerEncryptionScope?: ContainerEncryptionScope;\n}\n\n/**\n * Options to configure {@link ContainerClient.getProperties} operation.\n *\n * @export\n * @interface ContainerGetPropertiesOptions\n */\nexport interface ContainerGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerGetPropertiesOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions}\n * @memberof ContainerGetPropertiesOptions\n */\n conditions?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure {@link ContainerClient.delete} operation.\n *\n * @export\n * @interface ContainerDeleteMethodOptions\n */\nexport interface ContainerDeleteMethodOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerDeleteMethodOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when deleting the container.\n *\n * @type {ContainerRequestConditions}\n * @memberof ContainerDeleteMethodOptions\n */\n conditions?: ContainerRequestConditions;\n}\n\n/**\n * Options to configure {@link ContainerClient.exists} operation.\n *\n * @export\n * @interface ContainerExistsOptions\n */\nexport interface ContainerExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerDeleteMethodOptions\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link ContainerClient.setMetadata} operation.\n *\n * @export\n * @interface ContainerSetMetadataOptions\n */\nexport interface ContainerSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerSetMetadataOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {ContainerRequestConditions}\n * @memberof ContainerSetMetadataOptions\n */\n conditions?: ContainerRequestConditions;\n}\n\n/**\n * Options to configure {@link ContainerClient.getAccessPolicy} operation.\n *\n * @export\n * @interface ContainerGetAccessPolicyOptions\n */\nexport interface ContainerGetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerGetAccessPolicyOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n *\n * @type {LeaseAccessConditions}\n * @memberof ContainerGetAccessPolicyOptions\n */\n conditions?: LeaseAccessConditions;\n}\n\n/**\n * Signed identifier.\n *\n * @export\n * @interface SignedIdentifier\n */\nexport interface SignedIdentifier {\n /**\n * @member {string} id a unique id\n */\n id: string;\n /**\n * @member {AccessPolicy} accessPolicy\n */\n accessPolicy: {\n /**\n * @member {Date} startsOn Optional. The date-time the policy is active\n */\n startsOn?: Date;\n /**\n * @member {Date} expiresOn Optional. The date-time the policy expires\n */\n expiresOn?: Date;\n /**\n * @member {string} permissions The permissions for the acl policy\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl\n */\n permissions?: string;\n };\n}\n\n/**\n * Contains response data for the {@link ContainerClient.getAccessPolicy} operation.\n */\nexport declare type ContainerGetAccessPolicyResponse = {\n signedIdentifiers: SignedIdentifier[];\n} & ContainerGetAccessPolicyHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: ContainerGetAccessPolicyHeaders;\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: SignedIdentifierModel[];\n };\n };\n\n/**\n * Options to configure {@link ContainerClient.setAccessPolicy} operation.\n *\n * @export\n * @interface ContainerSetAccessPolicyOptions\n */\nexport interface ContainerSetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerSetAccessPolicyOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting the access policy.\n *\n * @type {ContainerRequestConditions}\n * @memberof ContainerSetAccessPolicyOptions\n */\n conditions?: ContainerRequestConditions;\n}\n\n/**\n * Options to configure Container - Acquire Lease operation.\n *\n * @export\n * @interface ContainerAcquireLeaseOptions\n */\nexport interface ContainerAcquireLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerAcquireLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when acquiring the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof ContainerAcquireLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Container - Release Lease operation.\n *\n * @export\n * @interface ContainerReleaseLeaseOptions\n */\nexport interface ContainerReleaseLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerReleaseLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when releasing the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof ContainerReleaseLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Container - Renew Lease operation.\n *\n * @export\n * @interface ContainerRenewLeaseOptions\n */\nexport interface ContainerRenewLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerRenewLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when renewing the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof ContainerRenewLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Container - Break Lease operation.\n *\n * @export\n * @interface ContainerBreakLeaseOptions\n */\nexport interface ContainerBreakLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerBreakLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when breaking the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof ContainerBreakLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Container - Change Lease operation.\n *\n * @export\n * @interface ContainerChangeLeaseOptions\n */\nexport interface ContainerChangeLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerChangeLeaseOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease.\n *\n * @type {ModifiedAccessConditions}\n * @memberof ContainerChangeLeaseOptions\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure the {@link ContainerClient.deleteBlob} operation.\n *\n * @export\n * @interface ContainerDeleteBlobOptions\n */\nexport interface ContainerDeleteBlobOptions extends BlobDeleteOptions {\n /**\n * An opaque DateTime value that, when present, specifies the version\n * of the blob to delete. It's for service version 2019-10-10 and newer.\n *\n * @type {string}\n * @memberof ContainerDeleteBlobOptions\n */\n versionId?: string;\n}\n\n/**\n * Options to configure Container - List Segment operations.\n *\n * See:\n * - {@link ContainerClient.listSegments}\n * - {@link ContainerClient.listBlobFlatSegment}\n * - {@link ContainerClient.listBlobHierarchySegment}\n * - {@link ContainerClient.listHierarchySegments}\n * - {@link ContainerClient.listItemsByHierarchy}\n *\n * @interface ContainerListBlobsSegmentOptions\n */\ninterface ContainerListBlobsSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerListBlobsSegmentOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies the maximum number of containers\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n /**\n * Include this parameter to\n * specify one or more datasets to include in the response.\n */\n include?: ListBlobsIncludeItem[];\n}\n\n/**\n * An interface representing BlobHierarchyListSegment.\n */\nexport interface BlobHierarchyListSegment {\n blobPrefixes?: BlobPrefix[];\n blobItems: BlobItem[];\n}\n\n/**\n * An enumeration of blobs\n */\nexport interface ListBlobsHierarchySegmentResponse {\n serviceEndpoint: string;\n containerName: string;\n prefix?: string;\n marker?: string;\n maxPageSize?: number;\n delimiter?: string;\n segment: BlobHierarchyListSegment;\n continuationToken?: string;\n}\n\n/**\n * Contains response data for the listBlobHierarchySegment operation.\n */\nexport type ContainerListBlobHierarchySegmentResponse = ListBlobsHierarchySegmentResponse &\n ContainerListBlobHierarchySegmentHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: ContainerListBlobHierarchySegmentHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: ListBlobsHierarchySegmentResponseModel;\n };\n };\n\n/**\n * An Azure Storage blob\n */\nexport interface BlobItem {\n name: string;\n deleted: boolean;\n snapshot: string;\n versionId?: string;\n isCurrentVersion?: boolean;\n properties: BlobProperties;\n metadata?: { [propertyName: string]: string };\n tags?: Tags;\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n}\n\n/**\n * An interface representing BlobFlatListSegment.\n */\nexport interface BlobFlatListSegment {\n blobItems: BlobItem[];\n}\n\n/**\n * An enumeration of blobs\n */\nexport interface ListBlobsFlatSegmentResponse {\n serviceEndpoint: string;\n containerName: string;\n prefix?: string;\n marker?: string;\n maxPageSize?: number;\n segment: BlobFlatListSegment;\n continuationToken?: string;\n}\n\n/**\n * Contains response data for the listBlobFlatSegment operation.\n */\nexport type ContainerListBlobFlatSegmentResponse = ListBlobsFlatSegmentResponse &\n ContainerListBlobFlatSegmentHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: ContainerListBlobFlatSegmentHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: ListBlobsFlatSegmentResponseModel;\n };\n };\n\n/**\n * Options to configure Container - List Blobs operations.\n *\n * See:\n * - {@link ContainerClient.listBlobsFlat}\n * - {@link ContainerClient.listBlobsByHierarchy}\n *\n * @export\n * @interface ContainerListBlobsOptions\n */\nexport interface ContainerListBlobsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n *\n * @type {AbortSignalLike}\n * @memberof ContainerListBlobsOptions\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n\n /**\n * Specifies whether metadata related to any current or previous Copy Blob operation should be included in the response.\n */\n includeCopy?: boolean;\n /**\n * Specifies whether soft deleted blobs should be included in the response.\n */\n includeDeleted?: boolean;\n /**\n * Specifies whether blob metadata be returned in the response.\n */\n includeMetadata?: boolean;\n /**\n * Specifies whether snapshots should be included in the enumeration. Snapshots are listed from oldest to newest in the response.\n */\n includeSnapshots?: boolean;\n /**\n * Specifies whether versions should be included in the enumeration. Versions are listed from oldest to newest in the response.\n */\n includeVersions?: boolean;\n /**\n * Specifies whether blobs for which blocks have been uploaded, but which have not been committed using Put Block List, be included in the response.\n */\n includeUncommitedBlobs?: boolean;\n /**\n * Specifies whether blob tags be returned in the response.\n */\n includeTags?: boolean;\n}\n\n/**\n * Contains response data for the {@link ContainerClient.createIfNotExists} operation.\n *\n * @export\n * @interface ContainerCreateIfNotExistsResponse\n */\nexport interface ContainerCreateIfNotExistsResponse extends ContainerCreateResponse {\n /**\n * Indicate whether the container is successfully created. Is false when the container is not changed as it already exists.\n *\n * @type {boolean}\n * @memberof ContainerCreateIfNotExistsResponse\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link ContainerClient.deleteIfExists} operation.\n *\n * @export\n * @interface ContainerDeleteIfExistsResponse\n */\nexport interface ContainerDeleteIfExistsResponse extends ContainerDeleteResponse {\n /**\n * Indicate whether the container is successfully deleted. Is false if the container does not exist in the first place.\n *\n * @type {boolean}\n * @memberof ContainerDeleteIfExistsResponse\n */\n succeeded: boolean;\n}\n\n/**\n * A ContainerClient represents a URL to the Azure Storage container allowing you to manipulate its blobs.\n *\n * @export\n * @class ContainerClient\n */\nexport class ContainerClient extends StorageClient {\n /**\n * containerContext provided by protocol layer.\n *\n * @private\n * @type {Containers}\n * @memberof ContainerClient\n */\n private containerContext: Container;\n\n private _containerName: string;\n\n /**\n * The name of the container.\n */\n public get containerName(): string {\n return this._containerName;\n }\n /**\n *\n * Creates an instance of ContainerClient.\n *\n * @param {string} connectionString Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param {string} containerName Container name.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof ContainerClient\n */\n constructor(connectionString: string, containerName: string, options?: StoragePipelineOptions);\n /**\n * Creates an instance of ContainerClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a page blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {StorageSharedKeyCredential | AnonymousCredential | TokenCredential} credential Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param {StoragePipelineOptions} [options] Optional. Options to configure the HTTP pipeline.\n * @memberof ContainerClient\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of ContainerClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a page blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param {string} url A URL string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param {Pipeline} pipeline Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n * @memberof ContainerClient\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n options?: StoragePipelineOptions\n ) {\n let pipeline: Pipeline;\n let url: string;\n options = options || {};\n if (credentialOrPipelineOrContainerName instanceof Pipeline) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(extractedCreds.url, encodeURIComponent(containerName));\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName parameter\");\n }\n super(url, pipeline);\n this._containerName = this.getContainerNameFromUrl();\n this.containerContext = new Container(this.storageClientContext);\n }\n\n /**\n * Creates a new container under the specified account. If the container with\n * the same name already exists, the operation fails.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-container\n *\n * @param {ContainerCreateOptions} [options] Options to Container Create operation.\n * @returns {Promise}\n * @memberof ContainerClient\n *\n * Example usage:\n *\n * ```js\n * const containerClient = blobServiceClient.getContainerClient(\"\");\n * const createContainerResponse = await containerClient.create();\n * console.log(\"Container was created successfully\", createContainerResponse.requestId);\n * ```\n */\n public async create(options: ContainerCreateOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"ContainerClient-create\", options.tracingOptions);\n try {\n // Spread operator in destructuring assignments,\n // this will filter out unwanted properties from the response object into result object\n return await this.containerContext.create({\n ...options,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new container under the specified account. If the container with\n * the same name already exists, it is not changed.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-container\n *\n * @param {ContainerCreateOptions} [options]\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async createIfNotExists(\n options: ContainerCreateOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"ContainerClient-createIfNotExists\",\n options.tracingOptions\n );\n try {\n const res = await this.create({\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response // _response is made non-enumerable\n };\n } catch (e) {\n if (e.details?.errorCode === \"ContainerAlreadyExists\") {\n span.setStatus({\n code: CanonicalCode.ALREADY_EXISTS,\n message: \"Expected exception when creating a container only if it does not already exist.\"\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response\n };\n }\n\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns true if the Azure container resource represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing container might be deleted by other clients or\n * applications. Vice versa new containers with the same name might be added by other clients or\n * applications after this function completes.\n *\n * @param {ContainerExistsOptions} [options={}]\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async exists(options: ContainerExistsOptions = {}): Promise {\n const { span, spanOptions } = createSpan(\"ContainerClient-exists\", options.tracingOptions);\n try {\n await this.getProperties({\n abortSignal: options.abortSignal,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return true;\n } catch (e) {\n if (e.statusCode === 404) {\n span.setStatus({\n code: CanonicalCode.NOT_FOUND,\n message: \"Expected exception when checking container existence\"\n });\n return false;\n }\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a {@link BlobClient}\n *\n * @param {string} blobName A blob name\n * @returns {BlobClient} A new BlobClient object for the given blob name.\n * @memberof ContainerClient\n */\n public getBlobClient(blobName: string): BlobClient {\n return new BlobClient(appendToURLPath(this.url, encodeURIComponent(blobName)), this.pipeline);\n }\n\n /**\n * Creates an {@link AppendBlobClient}\n *\n * @param {string} blobName An append blob name\n * @returns {AppendBlobClient}\n * @memberof ContainerClient\n */\n public getAppendBlobClient(blobName: string): AppendBlobClient {\n return new AppendBlobClient(\n appendToURLPath(this.url, encodeURIComponent(blobName)),\n this.pipeline\n );\n }\n\n /**\n * Creates a {@link BlockBlobClient}\n *\n * @param {string} blobName A block blob name\n * @returns {BlockBlobClient}\n * @memberof ContainerClient\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello world!\";\n *\n * const blockBlobClient = containerClient.getBlockBlobClient(\"\");\n * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);\n * ```\n */\n public getBlockBlobClient(blobName: string): BlockBlobClient {\n return new BlockBlobClient(\n appendToURLPath(this.url, encodeURIComponent(blobName)),\n this.pipeline\n );\n }\n\n /**\n * Creates a {@link PageBlobClient}\n *\n * @param {string} blobName A page blob name\n * @returns {PageBlobClient}\n * @memberof ContainerClient\n */\n public getPageBlobClient(blobName: string): PageBlobClient {\n return new PageBlobClient(\n appendToURLPath(this.url, encodeURIComponent(blobName)),\n this.pipeline\n );\n }\n\n /**\n * Returns all user-defined metadata and system properties for the specified\n * container. The data returned does not include the container's list of blobs.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the `listContainers` method of {@link BlobServiceClient} using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param {ContainerGetPropertiesOptions} [options] Options to Container Get Properties operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async getProperties(\n options: ContainerGetPropertiesOptions = {}\n ): Promise {\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, spanOptions } = createSpan(\n \"ContainerClient-getProperties\",\n options.tracingOptions\n );\n try {\n return await this.containerContext.getProperties({\n abortSignal: options.abortSignal,\n ...options.conditions,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified container for deletion. The container and any blobs\n * contained within it are later deleted during garbage collection.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container\n *\n * @param {ContainerDeleteMethodOptions} [options] Options to Container Delete operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async delete(\n options: ContainerDeleteMethodOptions = {}\n ): Promise {\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, spanOptions } = createSpan(\"ContainerClient-delete\", options.tracingOptions);\n try {\n return await this.containerContext.deleteMethod({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified container for deletion if it exists. The container and any blobs\n * contained within it are later deleted during garbage collection.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container\n *\n * @param {ContainerDeleteMethodOptions} [options] Options to Container Delete operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async deleteIfExists(\n options: ContainerDeleteMethodOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"ContainerClient-deleteIfExists\",\n options.tracingOptions\n );\n\n try {\n const res = await this.delete({\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response // _response is made non-enumerable\n };\n } catch (e) {\n if (e.details?.errorCode === \"ContainerNotFound\") {\n span.setStatus({\n code: CanonicalCode.NOT_FOUND,\n message: \"Expected exception when deleting a container only if it exists.\"\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response\n };\n }\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets one or more user-defined name-value pairs for the specified container.\n *\n * If no option provided, or no metadata defined in the parameter, the container\n * metadata will be removed.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata\n *\n * @param {Metadata} [metadata] Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param {ContainerSetMetadataOptions} [options] Options to Container Set Metadata operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async setMetadata(\n metadata?: Metadata,\n options: ContainerSetMetadataOptions = {}\n ): Promise {\n if (!options.conditions) {\n options.conditions = {};\n }\n\n if (options.conditions.ifUnmodifiedSince) {\n throw new RangeError(\n \"the IfUnmodifiedSince must have their default values because they are ignored by the blob service\"\n );\n }\n\n const { span, spanOptions } = createSpan(\"ContainerClient-setMetadata\", options.tracingOptions);\n\n try {\n return await this.containerContext.setMetadata({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata,\n modifiedAccessConditions: options.conditions,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the permissions for the specified container. The permissions indicate\n * whether container data may be accessed publicly.\n *\n * WARNING: JavaScript Date will potentially lose precision when parsing startsOn and expiresOn strings.\n * For example, new Date(\"2018-12-31T03:44:23.8827891Z\").toISOString() will get \"2018-12-31T03:44:23.882Z\".\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl\n *\n * @param {ContainerGetAccessPolicyOptions} [options] Options to Container Get Access Policy operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async getAccessPolicy(\n options: ContainerGetAccessPolicyOptions = {}\n ): Promise {\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, spanOptions } = createSpan(\n \"ContainerClient-getAccessPolicy\",\n options.tracingOptions\n );\n\n try {\n const response = await this.containerContext.getAccessPolicy({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n spanOptions\n });\n\n const res: ContainerGetAccessPolicyResponse = {\n _response: response._response,\n blobPublicAccess: response.blobPublicAccess,\n date: response.date,\n etag: response.etag,\n errorCode: response.errorCode,\n lastModified: response.lastModified,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n signedIdentifiers: [],\n version: response.version\n };\n\n for (const identifier of response) {\n let accessPolicy: any = undefined;\n if (identifier.accessPolicy) {\n accessPolicy = {\n permissions: identifier.accessPolicy.permissions\n };\n\n if (identifier.accessPolicy.expiresOn) {\n accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);\n }\n\n if (identifier.accessPolicy.startsOn) {\n accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);\n }\n }\n\n res.signedIdentifiers.push({\n accessPolicy,\n id: identifier.id\n });\n }\n\n return res;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets the permissions for the specified container. The permissions indicate\n * whether blobs in a container may be accessed publicly.\n *\n * When you set permissions for a container, the existing permissions are replaced.\n * If no access or containerAcl provided, the existing container ACL will be\n * removed.\n *\n * When you establish a stored access policy on a container, it may take up to 30 seconds to take effect.\n * During this interval, a shared access signature that is associated with the stored access policy will\n * fail with status code 403 (Forbidden), until the access policy becomes active.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl\n *\n * @param {PublicAccessType} [access] The level of public access to data in the container.\n * @param {SignedIdentifier[]} [containerAcl] Array of elements each having a unique Id and details of the access policy.\n * @param {ContainerSetAccessPolicyOptions} [options] Options to Container Set Access Policy operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n public async setAccessPolicy(\n access?: PublicAccessType,\n containerAcl?: SignedIdentifier[],\n options: ContainerSetAccessPolicyOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, spanOptions } = createSpan(\n \"ContainerClient-setAccessPolicy\",\n options.tracingOptions\n );\n try {\n const acl: SignedIdentifierModel[] = [];\n for (const identifier of containerAcl || []) {\n acl.push({\n accessPolicy: {\n expiresOn: identifier.accessPolicy.expiresOn\n ? truncatedISO8061Date(identifier.accessPolicy.expiresOn)\n : \"\",\n permissions: identifier.accessPolicy.permissions,\n startsOn: identifier.accessPolicy.startsOn\n ? truncatedISO8061Date(identifier.accessPolicy.startsOn)\n : \"\"\n },\n id: identifier.id\n });\n }\n\n return await this.containerContext.setAccessPolicy({\n abortSignal: options.abortSignal,\n access,\n containerAcl: acl,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n spanOptions\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Get a {@link BlobLeaseClient} that manages leases on the container.\n *\n * @param {string} [proposeLeaseId] Initial proposed lease Id.\n * @returns {BlobLeaseClient} A new BlobLeaseClient object for managing leases on the container.\n * @memberof ContainerClient\n */\n public getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient {\n return new BlobLeaseClient(this, proposeLeaseId);\n }\n\n /**\n * Creates a new block blob, or updates the content of an existing block blob.\n *\n * Updating an existing block blob overwrites any existing metadata on the blob.\n * Partial updates are not supported; the content of the existing blob is\n * overwritten with the new content. To perform a partial update of a block blob's,\n * use {@link BlockBlobClient.stageBlock} and {@link BlockBlobClient.commitBlockList}.\n *\n * This is a non-parallel uploading method, please use {@link BlockBlobClient.uploadFile},\n * {@link BlockBlobClient.uploadStream} or {@link BlockBlobClient.uploadBrowserData} for better\n * performance with concurrency uploading.\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param {string} blobName Name of the block blob to create or update.\n * @param {HttpRequestBody} body Blob, string, ArrayBuffer, ArrayBufferView or a function\n * which returns a new Readable stream whose offset is from data source beginning.\n * @param {number} contentLength Length of body in bytes. Use Buffer.byteLength() to calculate body length for a\n * string including non non-Base64/Hex-encoded characters.\n * @param {BlockBlobUploadOptions} [options] Options to configure the Block Blob Upload operation.\n * @returns {Promise<{ blockBlobClient: BlockBlobClient; response: BlockBlobUploadResponse }>} Block Blob upload response data and the corresponding BlockBlobClient instance.\n * @memberof ContainerClient\n */\n public async uploadBlockBlob(\n blobName: string,\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobUploadOptions = {}\n ): Promise<{ blockBlobClient: BlockBlobClient; response: BlockBlobUploadResponse }> {\n const { span, spanOptions } = createSpan(\n \"ContainerClient-uploadBlockBlob\",\n options.tracingOptions\n );\n try {\n const blockBlobClient = this.getBlockBlobClient(blobName);\n const response = await blockBlobClient.upload(body, contentLength, {\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n return {\n blockBlobClient,\n response\n };\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param {string} blobName\n * @param {ContainerDeleteBlobOptions} [options] Options to Blob Delete operation.\n * @returns {Promise} Block blob deletion response data.\n * @memberof ContainerClient\n */\n public async deleteBlob(\n blobName: string,\n options: ContainerDeleteBlobOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\"ContainerClient-deleteBlob\", options.tracingOptions);\n try {\n let blobClient = this.getBlobClient(blobName);\n if (options.versionId) {\n blobClient = blobClient.withVersion(options.versionId);\n }\n return await blobClient.delete({\n ...options,\n tracingOptions: { ...options!.tracingOptions, spanOptions }\n });\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * listBlobFlatSegment returns a single segment of blobs starting from the\n * specified Marker. Use an empty Marker to start enumeration from the beginning.\n * After getting a segment, process it, and then call listBlobsFlatSegment again\n * (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/list-blobs\n *\n * @param {string} [marker] A string value that identifies the portion of the list to be returned with the next list operation.\n * @param {ContainerListBlobsSegmentOptions} [options] Options to Container List Blob Flat Segment operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n private async listBlobFlatSegment(\n marker?: string,\n options: ContainerListBlobsSegmentOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"ContainerClient-listBlobFlatSegment\",\n options.tracingOptions\n );\n try {\n const response = await this.containerContext.listBlobFlatSegment({\n marker,\n ...options,\n spanOptions\n });\n const wrappedResponse: ContainerListBlobFlatSegmentResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n segment: {\n ...response.segment,\n blobItems: response.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItem = {\n ...blobItemInteral,\n tags: toTags(blobItemInteral.blobTags),\n objectReplicationSourceProperties: parseObjectReplicationRecord(\n blobItemInteral.objectReplicationMetadata\n )\n };\n return blobItem;\n })\n }\n };\n return wrappedResponse;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * listBlobHierarchySegment returns a single segment of blobs starting from\n * the specified Marker. Use an empty Marker to start enumeration from the\n * beginning. After getting a segment, process it, and then call listBlobsHierarchicalSegment\n * again (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/list-blobs\n *\n * @param {string} delimiter The character or string used to define the virtual hierarchy\n * @param {string} [marker] A string value that identifies the portion of the list to be returned with the next list operation.\n * @param {ContainerListBlobsSegmentOptions} [options] Options to Container List Blob Hierarchy Segment operation.\n * @returns {Promise}\n * @memberof ContainerClient\n */\n private async listBlobHierarchySegment(\n delimiter: string,\n marker?: string,\n options: ContainerListBlobsSegmentOptions = {}\n ): Promise {\n const { span, spanOptions } = createSpan(\n \"ContainerClient-listBlobHierarchySegment\",\n options.tracingOptions\n );\n try {\n const response = await this.containerContext.listBlobHierarchySegment(delimiter, {\n marker,\n ...options,\n spanOptions\n });\n const wrappedResponse: ContainerListBlobHierarchySegmentResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n segment: {\n ...response.segment,\n blobItems: response.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItem = {\n ...blobItemInteral,\n tags: toTags(blobItemInteral.blobTags),\n objectReplicationSourceProperties: parseObjectReplicationRecord(\n blobItemInteral.objectReplicationMetadata\n )\n };\n return blobItem;\n })\n }\n };\n return wrappedResponse;\n } catch (e) {\n span.setStatus({\n code: CanonicalCode.UNKNOWN,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for ContainerListBlobFlatSegmentResponse\n *\n * @private\n * @param {string} [marker] A string value that identifies the portion of\n * the list of blobs to be returned with the next listing operation. The\n * operation returns the ContinuationToken value within the response body if the\n * listing operation did not return all blobs remaining to be listed\n * with the current page. The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of list\n * items. The marker value is opaque to the client.\n * @param {ContainerListBlobsSegmentOptions} [options] Options to list blobs operation.\n * @returns {AsyncIterableIterator}\n * @memberof ContainerClient\n */\n private async *listSegments(\n marker?: string,\n options: ContainerListBlobsSegmentOptions = {}\n ): AsyncIterableIterator {\n let listBlobsFlatSegmentResponse;\n if (!!marker || marker === undefined) {\n do {\n listBlobsFlatSegmentResponse = await this.listBlobFlatSegment(marker, options);\n marker = listBlobsFlatSegmentResponse.continuationToken;\n yield await listBlobsFlatSegmentResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator of {@link BlobItem} objects\n *\n * @private\n * @param {ContainerListBlobsSegmentOptions} [options] Options to list blobs operation.\n * @returns {AsyncIterableIterator}\n * @memberof ContainerClient\n */\n private async *listItems(\n options: ContainerListBlobsSegmentOptions = {}\n ): AsyncIterableIterator {\n let marker: string | undefined;\n for await (const listBlobsFlatSegmentResponse of this.listSegments(marker, options)) {\n yield* listBlobsFlatSegmentResponse.segment.blobItems;\n }\n }\n\n /**\n * Returns an async iterable iterator to list all the blobs\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the blobs in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the containerClient before you run these snippets,\n * // Can be obtained from `blobServiceClient.getContainerClient(\"\");`\n * let i = 1;\n * for await (const blob of containerClient.listBlobsFlat()) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = containerClient.listBlobsFlat();\n * let blobItem = await iter.next();\n * while (!blobItem.done) {\n * console.log(`Blob ${i++}: ${blobItem.value.name}`);\n * blobItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {\n * for (const blob of response.segment.blobItems) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = containerClient.listBlobsFlat().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 blob names\n * for (const blob of response.segment.blobItems) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 blob names\n * for (const blob of response.segment.blobItems) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * ```\n *\n * @param {ContainerListBlobsOptions} [options={}] Options to list blobs.\n * @returns {PagedAsyncIterableIterator} An asyncIterableIterator that supports paging.\n * @memberof ContainerClient\n */\n public listBlobsFlat(\n options: ContainerListBlobsOptions = {}\n ): PagedAsyncIterableIterator {\n const include: ListBlobsIncludeItem[] = [];\n if (options.includeCopy) {\n include.push(\"copy\");\n }\n if (options.includeDeleted) {\n include.push(\"deleted\");\n }\n if (options.includeMetadata) {\n include.push(\"metadata\");\n }\n if (options.includeSnapshots) {\n include.push(\"snapshots\");\n }\n if (options.includeVersions) {\n include.push(\"versions\");\n }\n if (options.includeUncommitedBlobs) {\n include.push(\"uncommittedblobs\");\n }\n if (options.includeTags) {\n include.push(\"tags\");\n }\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n const updatedOptions: ContainerListBlobsSegmentOptions = {\n ...options,\n ...(include.length > 0 ? { include: include } : {})\n };\n\n // AsyncIterableIterator to iterate over blobs\n const iter = this.listItems(updatedOptions);\n return {\n /**\n * @member {Promise} [next] The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * @member {Symbol} [asyncIterator] The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * @member {Function} [byPage] Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listSegments(settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...updatedOptions\n });\n }\n };\n }\n\n /**\n * Returns an AsyncIterableIterator for ContainerListBlobHierarchySegmentResponse\n *\n * @private\n * @param {string} delimiter The character or string used to define the virtual hierarchy\n * @param {string} [marker] A string value that identifies the portion of\n * the list of blobs to be returned with the next listing operation. The\n * operation returns the ContinuationToken value within the response body if the\n * listing operation did not return all blobs remaining to be listed\n * with the current page. The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of list\n * items. The marker value is opaque to the client.\n * @param {ContainerListBlobsSegmentOptions} [options] Options to list blobs operation.\n * @returns {AsyncIterableIterator}\n * @memberof ContainerClient\n */\n private async *listHierarchySegments(\n delimiter: string,\n marker?: string,\n options: ContainerListBlobsSegmentOptions = {}\n ): AsyncIterableIterator {\n let listBlobsHierarchySegmentResponse;\n if (!!marker || marker === undefined) {\n do {\n listBlobsHierarchySegmentResponse = await this.listBlobHierarchySegment(\n delimiter,\n marker,\n options\n );\n marker = listBlobsHierarchySegmentResponse.continuationToken;\n yield await listBlobsHierarchySegmentResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for {@link BlobPrefix} and {@link BlobItem} objects.\n *\n * @private\n * @param {string} delimiter The character or string used to define the virtual hierarchy\n * @param {ContainerListBlobsSegmentOptions} [options] Options to list blobs operation.\n * @returns {AsyncIterableIterator<{ kind: \"prefix\" } & BlobPrefix | { kind: \"blob\" } & BlobItem>}\n * @memberof ContainerClient\n */\n private async *listItemsByHierarchy(\n delimiter: string,\n options: ContainerListBlobsSegmentOptions = {}\n ): AsyncIterableIterator<({ kind: \"prefix\" } & BlobPrefix) | ({ kind: \"blob\" } & BlobItem)> {\n let marker: string | undefined;\n for await (const listBlobsHierarchySegmentResponse of this.listHierarchySegments(\n delimiter,\n marker,\n options\n )) {\n const segment = listBlobsHierarchySegmentResponse.segment;\n if (segment.blobPrefixes) {\n for (const prefix of segment.blobPrefixes) {\n yield { kind: \"prefix\", ...prefix };\n }\n }\n for (const blob of segment.blobItems) {\n yield { kind: \"blob\", ...blob };\n }\n }\n }\n\n /**\n * Returns an async iterable iterator to list all the blobs by hierarchy.\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the blobs by hierarchy in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * for await (const item of containerClient.listBlobsByHierarchy(\"/\")) {\n * if (item.kind === \"prefix\") {\n * console.log(`\\tBlobPrefix: ${item.name}`);\n * } else {\n * console.log(`\\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);\n * }\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let iter = containerClient.listBlobsByHierarchy(\"/\", { prefix: \"prefix1/\" });\n * let entity = await iter.next();\n * while (!entity.done) {\n * let item = entity.value;\n * if (item.kind === \"prefix\") {\n * console.log(`\\tBlobPrefix: ${item.name}`);\n * } else {\n * console.log(`\\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);\n * }\n * entity = await iter.next();\n * }\n * ```js\n *\n * Example using `byPage()`:\n *\n * ```js\n * console.log(\"Listing blobs by hierarchy by page\");\n * for await (const response of containerClient.listBlobsByHierarchy(\"/\").byPage()) {\n * const segment = response.segment;\n * if (segment.blobPrefixes) {\n * for (const prefix of segment.blobPrefixes) {\n * console.log(`\\tBlobPrefix: ${prefix.name}`);\n * }\n * }\n * for (const blob of response.segment.blobItems) {\n * console.log(`\\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);\n * }\n * }\n * ```\n *\n * Example using paging with a max page size:\n *\n * ```js\n * console.log(\"Listing blobs by hierarchy by page, specifying a prefix and a max page size\");\n *\n * let i = 1;\n * for await (const response of containerClient.listBlobsByHierarchy(\"/\", { prefix: \"prefix2/sub1/\"}).byPage({ maxPageSize: 2 })) {\n * console.log(`Page ${i++}`);\n * const segment = response.segment;\n *\n * if (segment.blobPrefixes) {\n * for (const prefix of segment.blobPrefixes) {\n * console.log(`\\tBlobPrefix: ${prefix.name}`);\n * }\n * }\n *\n * for (const blob of response.segment.blobItems) {\n * console.log(`\\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);\n * }\n * }\n * ```\n *\n * @param {string} delimiter The character or string used to define the virtual hierarchy\n * @param {ContainerListBlobsOptions} [options={}] Options to list blobs operation.\n * @returns {(PagedAsyncIterableIterator<\n * { kind: \"prefix\" } & BlobPrefix | { kind: \"blob\" } & BlobItem,\n * ContainerListBlobHierarchySegmentResponse\n * >)}\n * @memberof ContainerClient\n */\n public listBlobsByHierarchy(\n delimiter: string,\n options: ContainerListBlobsOptions = {}\n ): PagedAsyncIterableIterator<\n ({ kind: \"prefix\" } & BlobPrefix) | ({ kind: \"blob\" } & BlobItem),\n ContainerListBlobHierarchySegmentResponse\n > {\n if (delimiter === \"\") {\n throw new RangeError(\"delimiter should contain one or more characters\");\n }\n\n const include: ListBlobsIncludeItem[] = [];\n if (options.includeCopy) {\n include.push(\"copy\");\n }\n if (options.includeDeleted) {\n include.push(\"deleted\");\n }\n if (options.includeMetadata) {\n include.push(\"metadata\");\n }\n if (options.includeSnapshots) {\n include.push(\"snapshots\");\n }\n if (options.includeVersions) {\n include.push(\"versions\");\n }\n if (options.includeUncommitedBlobs) {\n include.push(\"uncommittedblobs\");\n }\n if (options.includeTags) {\n include.push(\"tags\");\n }\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n const updatedOptions: ContainerListBlobsSegmentOptions = {\n ...options,\n ...(include.length > 0 ? { include: include } : {})\n };\n // AsyncIterableIterator to iterate over blob prefixes and blobs\n const iter = this.listItemsByHierarchy(delimiter, updatedOptions);\n return {\n /**\n * @member {Promise} [next] The next method, part of the iteration protocol\n */\n async next() {\n return iter.next();\n },\n /**\n * @member {Symbol} [asyncIterator] The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * @member {Function} [byPage] Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listHierarchySegments(delimiter, settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...updatedOptions\n });\n }\n };\n }\n\n private getContainerNameFromUrl(): string {\n let containerName;\n try {\n // URL may look like the following\n // \"https://myaccount.blob.core.windows.net/mycontainer?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer\";\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername`\n // http://localhost:10001/devstoreaccount1/containername\n\n const parsedUrl = URLBuilder.parse(this.url);\n\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // \"https://myaccount.blob.core.windows.net/containername\".\n // \"https://customdomain.com/containername\".\n // .getPath() -> /containername\n containerName = parsedUrl.getPath()!.split(\"/\")[1];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername\n // .getPath() -> /devstoreaccount1/containername\n containerName = parsedUrl.getPath()!.split(\"/\")[2];\n } else {\n // \"https://customdomain.com/containername\".\n // .getPath() -> /containername\n containerName = parsedUrl.getPath()!.split(\"/\")[1];\n }\n\n // decode the encoded containerName - to get all the special characters that might be present in it\n containerName = decodeURIComponent(containerName);\n\n if (!containerName) {\n throw new Error(\"Provided containerName is invalid.\");\n }\n\n return containerName;\n } catch (error) {\n throw new Error(\"Unable to extract containerName with provided information.\");\n }\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**\n * Convert a Browser Blob object into ArrayBuffer.\n *\n * @export\n * @param {Blob} blob\n * @returns {Promise}\n */\nexport async function blobToArrayBuffer(blob: Blob): Promise {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev: any) => {\n resolve(ev.target!.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsArrayBuffer(blob);\n });\n}\n\n/**\n * Convert a Browser Blob object into string.\n *\n * @export\n * @param {Blob} blob\n * @returns {Promise}\n */\nexport async function blobToString(blob: Blob): Promise {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev: any) => {\n resolve(ev.target!.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsText(blob);\n });\n}\n\nexport function streamToBuffer() {}\n\nexport function streamToBuffer2() {}\n\nexport function readStreamToLocalFile() {}\n\nexport const fsStat = function stat() {};\n\nexport const fsCreateReadStream = function createReadStream() {};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { __read, __spread, __values } from \"tslib\";\nimport { log } from \"./log\";\nvar debugEnvVariable = (typeof process !== \"undefined\" && process.env && process.env.DEBUG) || undefined;\nvar enabledString;\nvar enabledNamespaces = [];\nvar skippedNamespaces = [];\nvar debuggers = [];\nif (debugEnvVariable) {\n enable(debugEnvVariable);\n}\nfunction enable(namespaces) {\n var e_1, _a, e_2, _b;\n enabledString = namespaces;\n enabledNamespaces = [];\n skippedNamespaces = [];\n var wildcard = /\\*/g;\n var namespaceList = namespaces.split(\",\").map(function (ns) { return ns.trim().replace(wildcard, \".*?\"); });\n try {\n for (var namespaceList_1 = __values(namespaceList), namespaceList_1_1 = namespaceList_1.next(); !namespaceList_1_1.done; namespaceList_1_1 = namespaceList_1.next()) {\n var ns = namespaceList_1_1.value;\n if (ns.startsWith(\"-\")) {\n skippedNamespaces.push(new RegExp(\"^\" + ns.substr(1) + \"$\"));\n }\n else {\n enabledNamespaces.push(new RegExp(\"^\" + ns + \"$\"));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (namespaceList_1_1 && !namespaceList_1_1.done && (_a = namespaceList_1.return)) _a.call(namespaceList_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var debuggers_1 = __values(debuggers), debuggers_1_1 = debuggers_1.next(); !debuggers_1_1.done; debuggers_1_1 = debuggers_1.next()) {\n var instance = debuggers_1_1.value;\n instance.enabled = enabled(instance.namespace);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (debuggers_1_1 && !debuggers_1_1.done && (_b = debuggers_1.return)) _b.call(debuggers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\nfunction enabled(namespace) {\n var e_3, _a, e_4, _b;\n if (namespace.endsWith(\"*\")) {\n return true;\n }\n try {\n for (var skippedNamespaces_1 = __values(skippedNamespaces), skippedNamespaces_1_1 = skippedNamespaces_1.next(); !skippedNamespaces_1_1.done; skippedNamespaces_1_1 = skippedNamespaces_1.next()) {\n var skipped = skippedNamespaces_1_1.value;\n if (skipped.test(namespace)) {\n return false;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (skippedNamespaces_1_1 && !skippedNamespaces_1_1.done && (_a = skippedNamespaces_1.return)) _a.call(skippedNamespaces_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var enabledNamespaces_1 = __values(enabledNamespaces), enabledNamespaces_1_1 = enabledNamespaces_1.next(); !enabledNamespaces_1_1.done; enabledNamespaces_1_1 = enabledNamespaces_1.next()) {\n var enabled_1 = enabledNamespaces_1_1.value;\n if (enabled_1.test(namespace)) {\n return true;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (enabledNamespaces_1_1 && !enabledNamespaces_1_1.done && (_b = enabledNamespaces_1.return)) _b.call(enabledNamespaces_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return false;\n}\nfunction disable() {\n var result = enabledString || \"\";\n enable(\"\");\n return result;\n}\nfunction createDebugger(namespace) {\n function debug() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!newDebugger.enabled) {\n return;\n }\n if (args.length > 0) {\n args[0] = namespace + \" \" + args[0];\n }\n newDebugger.log.apply(newDebugger, __spread(args));\n }\n var newDebugger = Object.assign(debug, {\n enabled: enabled(namespace),\n destroy: destroy,\n log: debugObj.log,\n namespace: namespace,\n extend: extend\n });\n debuggers.push(newDebugger);\n return newDebugger;\n}\nfunction destroy() {\n var index = debuggers.indexOf(this);\n if (index >= 0) {\n debuggers.splice(index, 1);\n return true;\n }\n return false;\n}\nfunction extend(namespace) {\n var newDebugger = createDebugger(this.namespace + \":\" + namespace);\n newDebugger.log = this.log;\n return newDebugger;\n}\nvar debugObj = Object.assign(function (namespace) {\n return createDebugger(namespace);\n}, {\n enable: enable,\n enabled: enabled,\n disable: disable,\n log: log\n});\nexport default debugObj;\n//# sourceMappingURL=debug.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { SpanOptions } from \"@azure/core-tracing\";\n\n/**\n * Represents a credential capable of providing an authentication token.\n */\nexport interface TokenCredential {\n /**\n * Gets the token provided by this credential.\n *\n * @param scopes The list of scopes for which the token will have access.\n * @param options The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n getToken(scopes: string | string[], options?: GetTokenOptions): Promise;\n}\n\n/**\n * Defines options for TokenCredential.getToken.\n */\nexport interface GetTokenOptions {\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Options used when creating and sending HTTP requests for this operation.\n */\n requestOptions?: {\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n */\n timeout?: number;\n };\n /**\n * Options used when tracing is enabled.\n */\n tracingOptions?: {\n /**\n * OpenTelemetry SpanOptions used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n };\n}\n\n/**\n * Represents an access token with an expiration time.\n */\nexport interface AccessToken {\n /**\n * The access token returned by the authentication service.\n */\n token: string;\n\n /**\n * The access token's expiration timestamp in milliseconds, UNIX epoch time.\n */\n expiresOnTimestamp: number;\n}\n\n/**\n * Tests an object to determine whether it implements TokenCredential.\n *\n * @param credential The assumed TokenCredential to be tested.\n */\nexport function isTokenCredential(credential: any): credential is TokenCredential {\n // Check for an object with a 'getToken' function and possibly with\n // a 'signRequest' function. We do this check to make sure that\n // a ServiceClientCredentials implementor (like TokenClientCredentials\n // in ms-rest-nodeauth) doesn't get mistaken for a TokenCredential if\n // it doesn't actually implement TokenCredential also.\n return (\n credential &&\n typeof credential.getToken === \"function\" &&\n (credential.signRequest === undefined || credential.getToken.length > 0)\n );\n}\n","// 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","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}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { XML_ATTRKEY, XML_CHARKEY, SerializerOptions } from \"./serializer.common\";\n\n// tslint:disable-next-line:no-null-keyword\nconst doc = document.implementation.createDocument(null, null, null);\n\nconst parser = new DOMParser();\nexport function parseXML(str: string, opts: SerializerOptions = {}): Promise {\n try {\n const updatedOptions: Required = {\n rootName: opts.rootName ?? \"\",\n includeRoot: opts.includeRoot ?? false,\n xmlCharKey: opts.xmlCharKey ?? XML_CHARKEY\n };\n const dom = parser.parseFromString(str, \"application/xml\");\n throwIfError(dom);\n\n let obj;\n if (updatedOptions.includeRoot) {\n obj = domToObject(dom, updatedOptions);\n } else {\n obj = domToObject(dom.childNodes[0], updatedOptions);\n }\n\n return Promise.resolve(obj);\n } catch (err) {\n return Promise.reject(err);\n }\n}\n\nlet errorNS = \"\";\ntry {\n errorNS = parser.parseFromString(\"INVALID\", \"text/xml\").getElementsByTagName(\"parsererror\")[0]\n .namespaceURI!;\n} catch (ignored) {\n // Most browsers will return a document containing , but IE will throw.\n}\n\nfunction throwIfError(dom: Document): void {\n if (errorNS) {\n const parserErrors = dom.getElementsByTagNameNS(errorNS, \"parsererror\");\n if (parserErrors.length) {\n throw new Error(parserErrors.item(0)!.innerHTML);\n }\n }\n}\n\nfunction isElement(node: Node): node is Element {\n return !!(node as Element).attributes;\n}\n\n/**\n * Get the Element-typed version of the provided Node if the provided node is an element with\n * attributes. If it isn't, then undefined is returned.\n */\nfunction asElementWithAttributes(node: Node): Element | undefined {\n return isElement(node) && node.hasAttributes() ? node : undefined;\n}\n\nfunction domToObject(node: Node, options: Required): any {\n let result: any = {};\n\n const childNodeCount: number = node.childNodes.length;\n\n const firstChildNode: Node = node.childNodes[0];\n const onlyChildTextValue: string | undefined =\n (firstChildNode &&\n childNodeCount === 1 &&\n firstChildNode.nodeType === Node.TEXT_NODE &&\n firstChildNode.nodeValue) ||\n undefined;\n\n const elementWithAttributes: Element | undefined = asElementWithAttributes(node);\n if (elementWithAttributes) {\n result[XML_ATTRKEY] = {};\n\n for (let i = 0; i < elementWithAttributes.attributes.length; i++) {\n const attr = elementWithAttributes.attributes[i];\n result[XML_ATTRKEY][attr.nodeName] = attr.nodeValue;\n }\n\n if (onlyChildTextValue) {\n result[options.xmlCharKey] = onlyChildTextValue;\n }\n } else if (childNodeCount === 0) {\n result = \"\";\n } else if (onlyChildTextValue) {\n result = onlyChildTextValue;\n }\n\n if (!onlyChildTextValue) {\n for (let i = 0; i < childNodeCount; i++) {\n const child = node.childNodes[i];\n // Ignore leading/trailing whitespace nodes\n if (child.nodeType !== Node.TEXT_NODE) {\n const childObject: any = domToObject(child, options);\n if (!result[child.nodeName]) {\n result[child.nodeName] = childObject;\n } else if (Array.isArray(result[child.nodeName])) {\n result[child.nodeName].push(childObject);\n } else {\n result[child.nodeName] = [result[child.nodeName], childObject];\n }\n }\n }\n }\n\n return result;\n}\n\nconst serializer = new XMLSerializer();\n\nexport function stringifyXML(content: any, opts: SerializerOptions = {}): string {\n const updatedOptions: Required = {\n rootName: opts.rootName ?? \"root\",\n includeRoot: opts.includeRoot ?? false,\n xmlCharKey: opts.xmlCharKey ?? XML_CHARKEY\n };\n const dom = buildNode(content, updatedOptions.rootName, updatedOptions)[0];\n return (\n '' + serializer.serializeToString(dom)\n );\n}\n\nfunction buildAttributes(attrs: { [key: string]: { toString(): string } }): Attr[] {\n const result = [];\n for (const key of Object.keys(attrs)) {\n const attr = doc.createAttribute(key);\n attr.value = attrs[key].toString();\n result.push(attr);\n }\n return result;\n}\n\nfunction buildNode(obj: any, elementName: string, options: Required): Node[] {\n if (\n obj === undefined ||\n obj === null ||\n typeof obj === \"string\" ||\n typeof obj === \"number\" ||\n typeof obj === \"boolean\"\n ) {\n const elem = doc.createElement(elementName);\n elem.textContent = obj === undefined || obj === null ? \"\" : obj.toString();\n return [elem];\n } else if (Array.isArray(obj)) {\n const result = [];\n for (const arrayElem of obj) {\n for (const child of buildNode(arrayElem, elementName, options)) {\n result.push(child);\n }\n }\n return result;\n } else if (typeof obj === \"object\") {\n const elem = doc.createElement(elementName);\n for (const key of Object.keys(obj)) {\n if (key === XML_ATTRKEY) {\n for (const attr of buildAttributes(obj[key])) {\n elem.attributes.setNamedItem(attr);\n }\n } else if (key === options.xmlCharKey) {\n elem.textContent = obj[key].toString();\n } else {\n for (const child of buildNode(obj[key], key, options)) {\n elem.appendChild(child);\n }\n }\n }\n return [elem];\n } else {\n throw new Error(`Illegal value passed to buildObject: ${obj}`);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { StorageClientContext } from \"./generated/src/storageClientContext\";\nimport { Pipeline } from \"./Pipeline\";\nimport { escapeURLPath, getURLScheme, iEqual, getAccountNameFromUrl } from \"./utils/utils.common\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { TokenCredential, isTokenCredential, isNode } from \"@azure/core-http\";\nimport { OperationTracingOptions } from \"@azure/core-tracing\";\n\n/**\n * An interface for options common to every remote operation.\n */\nexport interface CommonOptions {\n /**\n * Options to configure spans created when tracing is enabled.\n */\n tracingOptions?: OperationTracingOptions;\n}\n\n/**\n * A StorageClient represents a based URL class for {@link BlobServiceClient}, {@link ContainerClient}\n * and etc.\n *\n * @export\n * @class StorageClient\n */\nexport abstract class StorageClient {\n /**\n * Encoded URL string value.\n *\n * @type {string}\n * @memberof StorageClient\n */\n public readonly url: string;\n public readonly accountName: string;\n /**\n * Request policy pipeline.\n *\n * @internal\n * @ignore\n * @type {Pipeline}\n * @memberof StorageClient\n */\n protected readonly pipeline: Pipeline;\n /**\n * Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the @azure/identity package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n *\n * @type {StorageSharedKeyCredential | AnonymousCredential | TokenCredential}\n * @memberof StorageClient\n */\n public readonly credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n /**\n * StorageClient is a reference to protocol layer operations entry, which is\n * generated by AutoRest generator.\n *\n * @protected\n * @type {StorageClientContext}\n * @memberof StorageClient\n */\n protected readonly storageClientContext: StorageClientContext;\n /**\n * @protected\n * @type {boolean}\n * @memberof StorageClient\n */\n protected readonly isHttps: boolean;\n\n /**\n * Creates an instance of StorageClient.\n * @param {string} url url to resource\n * @param {Pipeline} pipeline request policy pipeline.\n * @memberof StorageClient\n */\n protected constructor(url: string, pipeline: Pipeline) {\n // URL should be encoded and only once, protocol layer shouldn't encode URL again\n this.url = escapeURLPath(url);\n this.accountName = getAccountNameFromUrl(url);\n this.pipeline = pipeline;\n this.storageClientContext = new StorageClientContext(\n this.url,\n pipeline.toServiceClientOptions()\n );\n\n this.isHttps = iEqual(getURLScheme(this.url) || \"\", \"https\");\n\n this.credential = new AnonymousCredential();\n for (const factory of this.pipeline.factories) {\n if (\n (isNode && factory instanceof StorageSharedKeyCredential) ||\n factory instanceof AnonymousCredential ||\n isTokenCredential(factory)\n ) {\n this.credential = factory;\n }\n }\n\n // Override protocol layer's default content-type\n const storageClientContext = this.storageClientContext as any;\n storageClientContext.requestContentType = undefined;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n * and \"plugins\" section in webpack.testconfig.ts.\n */\n\nimport { TelemetryInfo } from \"./userAgentPolicy\";\n\ninterface NavigatorEx extends Navigator {\n // oscpu is not yet standards-compliant, but can not be undefined in TypeScript 3.6.2\n readonly oscpu: string;\n}\n\nexport function getDefaultUserAgentKey(): string {\n return \"x-ms-useragent\";\n}\n\nexport function getPlatformSpecificData(): TelemetryInfo[] {\n const navigator = window.navigator as NavigatorEx;\n const osInfo = {\n key: \"OS\",\n value: (navigator.oscpu || navigator.platform).replace(\" \", \"\")\n };\n\n return [osInfo];\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpHeaders } from \"../httpHeaders\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { Constants } from \"../util/constants\";\nimport { WebResourceLike } from \"../webResource\";\nimport { getDefaultUserAgentKey, getPlatformSpecificData } from \"./msRestUserAgentPolicy\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\n\nexport type TelemetryInfo = { key?: string; value?: string };\n\n/**\n * Options for adding user agent details to outgoing requests.\n */\nexport interface UserAgentOptions {\n /*\n * String prefix to add to the user agent for outgoing requests.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n}\n\nfunction getRuntimeInfo(): TelemetryInfo[] {\n const msRestRuntime = {\n key: \"core-http\",\n value: Constants.coreHttpVersion\n };\n\n return [msRestRuntime];\n}\n\nfunction getUserAgentString(\n telemetryInfo: TelemetryInfo[],\n keySeparator = \" \",\n valueSeparator = \"/\"\n): string {\n return telemetryInfo\n .map((info) => {\n const value = info.value ? `${valueSeparator}${info.value}` : \"\";\n return `${info.key}${value}`;\n })\n .join(keySeparator);\n}\n\nexport const getDefaultUserAgentHeaderName = getDefaultUserAgentKey;\n\nexport function getDefaultUserAgentValue(): string {\n const runtimeInfo = getRuntimeInfo();\n const platformSpecificData = getPlatformSpecificData();\n const userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData));\n return userAgent;\n}\n\nexport function userAgentPolicy(userAgentData?: TelemetryInfo): RequestPolicyFactory {\n const key: string =\n !userAgentData || userAgentData.key === undefined || userAgentData.key === null\n ? getDefaultUserAgentKey()\n : userAgentData.key;\n const value: string =\n !userAgentData || userAgentData.value === undefined || userAgentData.value === null\n ? getDefaultUserAgentValue()\n : userAgentData.value;\n\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new UserAgentPolicy(nextPolicy, options, key, value);\n }\n };\n}\n\nexport class UserAgentPolicy extends BaseRequestPolicy {\n constructor(\n readonly _nextPolicy: RequestPolicy,\n readonly _options: RequestPolicyOptions,\n protected headerKey: string,\n protected headerValue: string\n ) {\n super(_nextPolicy, _options);\n }\n\n sendRequest(request: WebResourceLike): Promise {\n this.addUserAgentHeader(request);\n return this._nextPolicy.sendRequest(request);\n }\n\n addUserAgentHeader(request: WebResourceLike): void {\n if (!request.headers) {\n request.headers = new HttpHeaders();\n }\n\n if (!request.headers.get(this.headerKey) && this.headerValue) {\n request.headers.set(this.headerKey, this.headerValue);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { QueryCollectionFormat } from \"./queryCollectionFormat\";\nimport { Mapper } from \"./serializer\";\n\nexport type ParameterPath = string | string[] | { [propertyName: string]: ParameterPath };\n\n/**\n * A common interface that all Operation parameter's extend.\n */\nexport interface OperationParameter {\n /**\n * The path to this parameter's value in OperationArguments or the object that contains paths for\n * each property's value in OperationArguments.\n */\n parameterPath: ParameterPath;\n\n /**\n * The mapper that defines how to validate and serialize this parameter's value.\n */\n mapper: Mapper;\n}\n\n/**\n * A parameter for an operation that will be substituted into the operation's request URL.\n */\nexport interface OperationURLParameter extends OperationParameter {\n /**\n * Whether or not to skip encoding the URL parameter's value before adding it to the URL.\n */\n skipEncoding?: boolean;\n}\n\n/**\n * A parameter for an operation that will be added as a query parameter to the operation's HTTP\n * request.\n */\nexport interface OperationQueryParameter extends OperationParameter {\n /**\n * Whether or not to skip encoding the query parameter's value before adding it to the URL.\n */\n skipEncoding?: boolean;\n\n /**\n * If this query parameter's value is a collection, what type of format should the value be\n * converted to.\n */\n collectionFormat?: QueryCollectionFormat;\n}\n\n/**\n * Get the path to this parameter's value as a dotted string (a.b.c).\n * @param parameter The parameter to get the path string for.\n * @returns The path to this parameter's value as a dotted string.\n */\nexport function getPathStringFromParameter(parameter: OperationParameter): string {\n return getPathStringFromParameterPath(parameter.parameterPath, parameter.mapper);\n}\n\nexport function getPathStringFromParameterPath(\n parameterPath: ParameterPath,\n mapper: Mapper\n): string {\n let result: string;\n if (typeof parameterPath === \"string\") {\n result = parameterPath;\n } else if (Array.isArray(parameterPath)) {\n result = parameterPath.join(\".\");\n } else {\n result = mapper.serializedName!;\n }\n return result;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../coreHttp\";\n\nexport const DEFAULT_CLIENT_RETRY_COUNT = 3;\n// intervals are in ms\nexport const DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30;\nexport const DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90;\nexport const DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3;\n\nexport function isNumber(n: any): n is number {\n return typeof n === \"number\";\n}\nexport interface RetryData {\n retryCount: number;\n retryInterval: number;\n error?: RetryError;\n}\n\nexport interface RetryError extends Error {\n message: string;\n code?: string;\n innerError?: RetryError;\n}\n\n/**\n * @internal\n * Determines if the operation should be retried.\n *\n * @param {number} retryLimit Specifies the max number of retries.\n * @param {(response?: HttpOperationResponse, error?: RetryError) => boolean} predicate Initial chekck on whether to retry based on given responses or errors\n * @param {RetryData} retryData The retry data.\n * @return {boolean} True if the operation qualifies for a retry; false otherwise.\n */\nexport function shouldRetry(\n retryLimit: number,\n predicate: (response?: HttpOperationResponse, error?: RetryError) => boolean,\n retryData: RetryData,\n response?: HttpOperationResponse,\n error?: RetryError\n): boolean {\n if (!predicate(response, error)) {\n return false;\n }\n\n return retryData.retryCount < retryLimit;\n}\n\n/**\n * @internal\n * Updates the retry data for the next attempt.\n *\n * @param {RetryPolicyOptions} retryOptions specifies retry interval, and its lower bound and upper bound.\n * @param {RetryData} [retryData] The retry data.\n * @param {RetryError} [err] The operation\"s error, if any.\n */\nexport function updateRetryData(\n retryOptions: { retryInterval: number; minRetryInterval: number; maxRetryInterval: number },\n retryData: RetryData = { retryCount: 0, retryInterval: 0 },\n err?: RetryError\n): RetryData {\n if (err) {\n if (retryData.error) {\n err.innerError = retryData.error;\n }\n\n retryData.error = err;\n }\n\n // Adjust retry count\n retryData.retryCount++;\n\n // Adjust retry interval\n let incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1;\n const boundedRandDelta =\n retryOptions.retryInterval * 0.8 +\n Math.floor(Math.random() * (retryOptions.retryInterval * 0.4));\n incrementDelta *= boundedRandDelta;\n\n retryData.retryInterval = Math.min(\n retryOptions.minRetryInterval + incrementDelta,\n retryOptions.maxRetryInterval\n );\n\n return retryData;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport * as utils from \"../util/utils\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\nimport {\n RetryData,\n RetryError,\n DEFAULT_CLIENT_MAX_RETRY_INTERVAL,\n DEFAULT_CLIENT_RETRY_COUNT,\n DEFAULT_CLIENT_RETRY_INTERVAL,\n isNumber,\n updateRetryData,\n shouldRetry\n} from \"../util/exponentialBackoffStrategy\";\nimport { RestError } from \"../restError\";\nimport { logger } from \"../log\";\n\nexport function exponentialRetryPolicy(\n retryCount?: number,\n retryInterval?: number,\n maxRetryInterval?: number\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new ExponentialRetryPolicy(\n nextPolicy,\n options,\n retryCount,\n retryInterval,\n maxRetryInterval\n );\n }\n };\n}\n\n/**\n * Describes the Retry Mode type. Currently supporting only Exponential.\n * @enum RetryMode\n */\nexport enum RetryMode {\n Exponential\n}\n\n/**\n * Options that control how to retry failed requests.\n */\nexport interface RetryOptions {\n /**\n * The maximum number of retry attempts. Defaults to 3.\n */\n maxRetries?: number;\n\n /**\n * The amount of delay in milliseconds between retry attempts. Defaults to 30000\n * (30 seconds). The delay increases exponentially with each retry up to a maximum\n * specified by maxRetryDelayInMs.\n */\n retryDelayInMs?: number;\n\n /**\n * The maximum delay in milliseconds allowed before retrying an operation. Defaults\n * to 90000 (90 seconds).\n */\n maxRetryDelayInMs?: number;\n\n /**\n * Currently supporting only Exponential mode.\n */\n mode?: RetryMode;\n}\n\nexport const DefaultRetryOptions: RetryOptions = {\n maxRetries: DEFAULT_CLIENT_RETRY_COUNT,\n retryDelayInMs: DEFAULT_CLIENT_RETRY_INTERVAL,\n maxRetryDelayInMs: DEFAULT_CLIENT_MAX_RETRY_INTERVAL\n};\n\n/**\n * @class\n * Instantiates a new \"ExponentialRetryPolicyFilter\" instance.\n */\nexport class ExponentialRetryPolicy extends BaseRequestPolicy {\n /**\n * The client retry count.\n */\n retryCount: number;\n /**\n * The client retry interval in milliseconds.\n */\n retryInterval: number;\n /**\n * The maximum retry interval in milliseconds.\n */\n maxRetryInterval: number;\n\n /**\n * @constructor\n * @param {RequestPolicy} nextPolicy The next RequestPolicy in the pipeline chain.\n * @param {RequestPolicyOptions} options The options for this RequestPolicy.\n * @param {number} [retryCount] The client retry count.\n * @param {number} [retryInterval] The client retry interval, in milliseconds.\n * @param {number} [minRetryInterval] The minimum retry interval, in milliseconds.\n * @param {number} [maxRetryInterval] The maximum retry interval, in milliseconds.\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryCount?: number,\n retryInterval?: number,\n maxRetryInterval?: number\n ) {\n super(nextPolicy, options);\n this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT;\n this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL;\n this.maxRetryInterval = isNumber(maxRetryInterval)\n ? maxRetryInterval\n : DEFAULT_CLIENT_MAX_RETRY_INTERVAL;\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .then((response) => retry(this, request, response))\n .catch((error) => retry(this, request, error.response, undefined, error));\n }\n}\n\nasync function retry(\n policy: ExponentialRetryPolicy,\n request: WebResourceLike,\n response?: HttpOperationResponse,\n retryData?: RetryData,\n requestError?: RetryError\n): Promise {\n function shouldPolicyRetry(response?: HttpOperationResponse): boolean {\n const statusCode = response?.status;\n if (\n statusCode === undefined ||\n (statusCode < 500 && statusCode !== 408) ||\n statusCode === 501 ||\n statusCode === 505\n ) {\n return false;\n }\n return true;\n }\n\n retryData = updateRetryData(\n {\n retryInterval: policy.retryInterval,\n minRetryInterval: 0,\n maxRetryInterval: policy.maxRetryInterval\n },\n retryData,\n requestError\n );\n\n const isAborted: boolean | undefined = request.abortSignal && request.abortSignal.aborted;\n if (!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response)) {\n logger.info(`Retrying request in ${retryData.retryInterval}`);\n try {\n await utils.delay(retryData.retryInterval);\n const res = await policy._nextPolicy.sendRequest(request.clone());\n return retry(policy, request, res, retryData);\n } catch (err) {\n return retry(policy, request, response, retryData, err);\n }\n } else if (isAborted || requestError || !response) {\n // If the operation failed in the end, return all errors instead of just the last one\n const err =\n retryData.error ||\n new RestError(\n \"Failed to send the request.\",\n RestError.REQUEST_SEND_ERROR,\n response && response.status,\n response && response.request,\n response\n );\n throw err;\n } else {\n return response;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { URLBuilder } from \"../url\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\n\n/**\n * Methods that are allowed to follow redirects 301 and 302\n */\nconst allowedRedirect = [\"GET\", \"HEAD\"];\n\n/**\n * Options for how redirect responses are handled.\n */\nexport interface RedirectOptions {\n /*\n * When true, redirect responses are followed. Defaults to true.\n */\n handleRedirects: boolean;\n\n /*\n * The maximum number of times the redirect URL will be tried before\n * failing. Defaults to 20.\n */\n maxRetries?: number;\n}\n\nexport const DefaultRedirectOptions: RedirectOptions = {\n handleRedirects: true,\n maxRetries: 20\n};\n\nexport function redirectPolicy(maximumRetries = 20): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new RedirectPolicy(nextPolicy, options, maximumRetries);\n }\n };\n}\n\nexport class RedirectPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions, readonly maxRetries = 20) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request)\n .then((response) => handleRedirect(this, response, 0));\n }\n}\n\nfunction handleRedirect(\n policy: RedirectPolicy,\n response: HttpOperationResponse,\n currentRetries: number\n): Promise {\n const { request, status } = response;\n const locationHeader = response.headers.get(\"location\");\n if (\n locationHeader &&\n (status === 300 ||\n (status === 301 && allowedRedirect.includes(request.method)) ||\n (status === 302 && allowedRedirect.includes(request.method)) ||\n (status === 303 && request.method === \"POST\") ||\n status === 307) &&\n (!policy.maxRetries || currentRetries < policy.maxRetries)\n ) {\n const builder = URLBuilder.parse(request.url);\n builder.setPath(locationHeader);\n request.url = builder.toString();\n\n // POST request with Status code 303 should be converted into a\n // redirected GET request if the redirect url is present in the location header\n if (status === 303) {\n request.method = \"GET\";\n delete request.body;\n }\n\n return policy._nextPolicy\n .sendRequest(request)\n .then((res) => handleRedirect(policy, res, currentRetries + 1));\n }\n\n return Promise.resolve(response);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport * as utils from \"../util/utils\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\n\nexport function rpRegistrationPolicy(retryTimeout = 30): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new RPRegistrationPolicy(nextPolicy, options, retryTimeout);\n }\n };\n}\n\nexport class RPRegistrationPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n readonly _retryTimeout = 30\n ) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .then((response) => registerIfNeeded(this, request, response));\n }\n}\n\nfunction registerIfNeeded(\n policy: RPRegistrationPolicy,\n request: WebResourceLike,\n response: HttpOperationResponse\n): Promise {\n if (response.status === 409) {\n const rpName = checkRPNotRegisteredError(response.bodyAsText as string);\n if (rpName) {\n const urlPrefix = extractSubscriptionUrl(request.url);\n return (\n registerRP(policy, urlPrefix, rpName, request)\n // Autoregistration of ${provider} failed for some reason. We will not return this error\n // instead will return the initial response with 409 status code back to the user.\n // do nothing here as we are returning the original response at the end of this method.\n .catch(() => false)\n .then((registrationStatus) => {\n if (registrationStatus) {\n // Retry the original request. We have to change the x-ms-client-request-id\n // otherwise Azure endpoint will return the initial 409 (cached) response.\n request.headers.set(\"x-ms-client-request-id\", utils.generateUuid());\n return policy._nextPolicy.sendRequest(request.clone());\n }\n return response;\n })\n );\n }\n }\n\n return Promise.resolve(response);\n}\n\n/**\n * Reuses the headers of the original request and url (if specified).\n * @param {WebResourceLike} originalRequest The original request\n * @param {boolean} reuseUrlToo Should the url from the original request be reused as well. Default false.\n * @returns {object} A new request object with desired headers.\n */\nfunction getRequestEssentials(\n originalRequest: WebResourceLike,\n reuseUrlToo = false\n): WebResourceLike {\n const reqOptions: WebResourceLike = originalRequest.clone();\n if (reuseUrlToo) {\n reqOptions.url = originalRequest.url;\n }\n\n // We have to change the x-ms-client-request-id otherwise Azure endpoint\n // will return the initial 409 (cached) response.\n reqOptions.headers.set(\"x-ms-client-request-id\", utils.generateUuid());\n\n // Set content-type to application/json\n reqOptions.headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n\n return reqOptions;\n}\n\n/**\n * Validates the error code and message associated with 409 response status code. If it matches to that of\n * RP not registered then it returns the name of the RP else returns undefined.\n * @param {string} body The response body received after making the original request.\n * @returns {string} The name of the RP if condition is satisfied else undefined.\n */\nfunction checkRPNotRegisteredError(body: string): string {\n let result, responseBody;\n if (body) {\n try {\n responseBody = JSON.parse(body);\n } catch (err) {\n // do nothing;\n }\n if (\n responseBody &&\n responseBody.error &&\n responseBody.error.message &&\n responseBody.error.code &&\n responseBody.error.code === \"MissingSubscriptionRegistration\"\n ) {\n const matchRes = responseBody.error.message.match(/.*'(.*)'/i);\n if (matchRes) {\n result = matchRes.pop();\n }\n }\n }\n return result;\n}\n\n/**\n * Extracts the first part of the URL, just after subscription:\n * https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/\n * @param {string} url The original request url\n * @returns {string} The url prefix as explained above.\n */\nfunction extractSubscriptionUrl(url: string): string {\n let result;\n const matchRes = url.match(/.*\\/subscriptions\\/[a-f0-9-]+\\//gi);\n if (matchRes && matchRes[0]) {\n result = matchRes[0];\n } else {\n throw new Error(`Unable to extract subscriptionId from the given url - ${url}.`);\n }\n return result;\n}\n\n/**\n * Registers the given provider.\n * @param {RPRegistrationPolicy} policy The RPRegistrationPolicy this function is being called against.\n * @param {string} urlPrefix https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/\n * @param {string} provider The provider name to be registered.\n * @param {WebResourceLike} originalRequest The original request sent by the user that returned a 409 response\n * with a message that the provider is not registered.\n * @param {registrationCallback} callback The callback that handles the RP registration\n */\nfunction registerRP(\n policy: RPRegistrationPolicy,\n urlPrefix: string,\n provider: string,\n originalRequest: WebResourceLike\n): Promise {\n const postUrl = `${urlPrefix}providers/${provider}/register?api-version=2016-02-01`;\n const getUrl = `${urlPrefix}providers/${provider}?api-version=2016-02-01`;\n const reqOptions = getRequestEssentials(originalRequest);\n reqOptions.method = \"POST\";\n reqOptions.url = postUrl;\n\n return policy._nextPolicy.sendRequest(reqOptions).then((response) => {\n if (response.status !== 200) {\n throw new Error(`Autoregistration of ${provider} failed. Please try registering manually.`);\n }\n return getRegistrationStatus(policy, getUrl, originalRequest);\n });\n}\n\n/**\n * Polls the registration status of the provider that was registered. Polling happens at an interval of 30 seconds.\n * Polling will happen till the registrationState property of the response body is \"Registered\".\n * @param {RPRegistrationPolicy} policy The RPRegistrationPolicy this function is being called against.\n * @param {string} url The request url for polling\n * @param {WebResourceLike} originalRequest The original request sent by the user that returned a 409 response\n * with a message that the provider is not registered.\n * @returns {Promise} True if RP Registration is successful.\n */\nfunction getRegistrationStatus(\n policy: RPRegistrationPolicy,\n url: string,\n originalRequest: WebResourceLike\n): Promise {\n const reqOptions: any = getRequestEssentials(originalRequest);\n reqOptions.url = url;\n reqOptions.method = \"GET\";\n\n return policy._nextPolicy.sendRequest(reqOptions).then((res) => {\n const obj = res.parsedBody as any;\n if (res.parsedBody && obj.registrationState && obj.registrationState === \"Registered\") {\n return true;\n } else {\n return utils\n .delay(policy._retryTimeout * 1000)\n .then(() => getRegistrationStatus(policy, url, originalRequest));\n }\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport * as utils from \"../util/utils\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\nimport {\n RetryData,\n RetryError,\n shouldRetry,\n updateRetryData,\n DEFAULT_CLIENT_MAX_RETRY_INTERVAL,\n DEFAULT_CLIENT_RETRY_COUNT,\n DEFAULT_CLIENT_RETRY_INTERVAL,\n DEFAULT_CLIENT_MIN_RETRY_INTERVAL,\n isNumber\n} from \"../util/exponentialBackoffStrategy\";\n\nexport function systemErrorRetryPolicy(\n retryCount?: number,\n retryInterval?: number,\n minRetryInterval?: number,\n maxRetryInterval?: number\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new SystemErrorRetryPolicy(\n nextPolicy,\n options,\n retryCount,\n retryInterval,\n minRetryInterval,\n maxRetryInterval\n );\n }\n };\n}\n\n/**\n * @class\n * Instantiates a new \"ExponentialRetryPolicyFilter\" instance.\n *\n * @constructor\n * @param {number} retryCount The client retry count.\n * @param {number} retryInterval The client retry interval, in milliseconds.\n * @param {number} minRetryInterval The minimum retry interval, in milliseconds.\n * @param {number} maxRetryInterval The maximum retry interval, in milliseconds.\n */\nexport class SystemErrorRetryPolicy extends BaseRequestPolicy {\n retryCount: number;\n retryInterval: number;\n minRetryInterval: number;\n maxRetryInterval: number;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryCount?: number,\n retryInterval?: number,\n minRetryInterval?: number,\n maxRetryInterval?: number\n ) {\n super(nextPolicy, options);\n this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT;\n this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL;\n this.minRetryInterval = isNumber(minRetryInterval)\n ? minRetryInterval\n : DEFAULT_CLIENT_MIN_RETRY_INTERVAL;\n this.maxRetryInterval = isNumber(maxRetryInterval)\n ? maxRetryInterval\n : DEFAULT_CLIENT_MAX_RETRY_INTERVAL;\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .catch((error) => retry(this, request, error.response, error));\n }\n}\n\nasync function retry(\n policy: SystemErrorRetryPolicy,\n request: WebResourceLike,\n operationResponse: HttpOperationResponse,\n err?: RetryError,\n retryData?: RetryData\n): Promise {\n retryData = updateRetryData(policy, retryData, err);\n\n function shouldPolicyRetry(_response?: HttpOperationResponse, error?: RetryError): boolean {\n if (\n error &&\n error.code &&\n (error.code === \"ETIMEDOUT\" ||\n error.code === \"ESOCKETTIMEDOUT\" ||\n error.code === \"ECONNREFUSED\" ||\n error.code === \"ECONNRESET\" ||\n error.code === \"ENOENT\")\n ) {\n return true;\n }\n return false;\n }\n\n if (shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) {\n // If previous operation ended with an error and the policy allows a retry, do that\n try {\n await utils.delay(retryData.retryInterval);\n return policy._nextPolicy.sendRequest(request.clone());\n } catch (err) {\n return retry(policy, request, operationResponse, err, retryData);\n }\n } else {\n if (err) {\n // If the operation failed in the end, return all errors instead of just the last one\n return Promise.reject(retryData.error);\n }\n return operationResponse;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyOptions,\n RequestPolicyFactory\n} from \"./requestPolicy\";\nimport { WebResourceLike } from \"../webResource\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { Constants } from \"../util/constants\";\nimport { delay } from \"../util/utils\";\n\ntype ResponseHandler = (\n httpRequest: WebResourceLike,\n response: HttpOperationResponse\n) => Promise;\nconst StatusCodes = Constants.HttpConstants.StatusCodes;\n\nexport function throttlingRetryPolicy(): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new ThrottlingRetryPolicy(nextPolicy, options);\n }\n };\n}\n\n/**\n * To learn more, please refer to\n * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits,\n * https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits and\n * https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors\n */\nexport class ThrottlingRetryPolicy extends BaseRequestPolicy {\n private _handleResponse: ResponseHandler;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n _handleResponse?: ResponseHandler\n ) {\n super(nextPolicy, options);\n this._handleResponse = _handleResponse || this._defaultResponseHandler;\n }\n\n public async sendRequest(httpRequest: WebResourceLike): Promise {\n return this._nextPolicy.sendRequest(httpRequest.clone()).then((response) => {\n if (response.status !== StatusCodes.TooManyRequests) {\n return response;\n } else {\n return this._handleResponse(httpRequest, response);\n }\n });\n }\n\n private async _defaultResponseHandler(\n httpRequest: WebResourceLike,\n httpResponse: HttpOperationResponse\n ): Promise {\n const retryAfterHeader: string | undefined = httpResponse.headers.get(\n Constants.HeaderConstants.RETRY_AFTER\n );\n\n if (retryAfterHeader) {\n const delayInMs: number | undefined = ThrottlingRetryPolicy.parseRetryAfterHeader(\n retryAfterHeader\n );\n if (delayInMs) {\n return delay(delayInMs).then((_: any) => this._nextPolicy.sendRequest(httpRequest));\n }\n }\n\n return httpResponse;\n }\n\n public static parseRetryAfterHeader(headerValue: string): number | undefined {\n const retryAfterInSeconds = Number(headerValue);\n if (Number.isNaN(retryAfterInSeconds)) {\n return ThrottlingRetryPolicy.parseDateRetryAfterHeader(headerValue);\n } else {\n return retryAfterInSeconds * 1000;\n }\n }\n\n public static parseDateRetryAfterHeader(headerValue: string): number | undefined {\n try {\n const now: number = Date.now();\n const date: number = Date.parse(headerValue);\n const diff = date - now;\n\n return Number.isNaN(diff) ? undefined : diff;\n } catch (error) {\n return undefined;\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ServiceClientCredentials } from \"../credentials/serviceClientCredentials\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions\n} from \"./requestPolicy\";\n\nexport function signingPolicy(\n authenticationProvider: ServiceClientCredentials\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new SigningPolicy(nextPolicy, options, authenticationProvider);\n }\n };\n}\n\nexport class SigningPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n public authenticationProvider: ServiceClientCredentials\n ) {\n super(nextPolicy, options);\n }\n\n signRequest(request: WebResourceLike): Promise {\n return this.authenticationProvider.signRequest(request);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this.signRequest(request).then((nextRequest) =>\n this._nextPolicy.sendRequest(nextRequest)\n );\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// BaseRequestPolicy has a protected constructor.\n/* eslint-disable @typescript-eslint/no-useless-constructor */\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyOptions,\n RequestPolicyFactory\n} from \"./requestPolicy\";\nimport { WebResourceLike } from \"../webResource\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\n\nexport function ndJsonPolicy(): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new NdJsonPolicy(nextPolicy, options);\n }\n };\n}\n\n/**\n * NdJsonPolicy that formats a JSON array as newline-delimited JSON\n */\nclass NdJsonPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of KeepAlivePolicy.\n *\n * @param nextPolicy\n * @param options\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends a request.\n *\n * @param request\n */\n public async sendRequest(request: WebResourceLike): Promise {\n // There currently isn't a good way to bypass the serializer\n if (typeof request.body === \"string\" && request.body.startsWith(\"[\")) {\n const body = JSON.parse(request.body);\n if (Array.isArray(body)) {\n request.body = body.map((item) => JSON.stringify(item) + \"\\n\").join(\"\");\n }\n }\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { DefaultHttpClient } from \"./defaultHttpClient\";\nimport { HttpClient } from \"./httpClient\";\nimport { HttpOperationResponse, RestResponse } from \"./httpOperationResponse\";\nimport { HttpPipelineLogger } from \"./httpPipelineLogger\";\nimport { logPolicy, LogPolicyOptions } from \"./policies/logPolicy\";\nimport { OperationArguments } from \"./operationArguments\";\nimport {\n getPathStringFromParameter,\n getPathStringFromParameterPath,\n OperationParameter,\n ParameterPath\n} from \"./operationParameter\";\nimport { isStreamOperation, OperationSpec } from \"./operationSpec\";\nimport {\n deserializationPolicy,\n DeserializationContentTypes,\n DefaultDeserializationOptions\n} from \"./policies/deserializationPolicy\";\nimport { exponentialRetryPolicy, DefaultRetryOptions } from \"./policies/exponentialRetryPolicy\";\nimport { generateClientRequestIdPolicy } from \"./policies/generateClientRequestIdPolicy\";\nimport {\n userAgentPolicy,\n getDefaultUserAgentHeaderName,\n getDefaultUserAgentValue\n} from \"./policies/userAgentPolicy\";\nimport { redirectPolicy, DefaultRedirectOptions } from \"./policies/redirectPolicy\";\nimport {\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./policies/requestPolicy\";\nimport { rpRegistrationPolicy } from \"./policies/rpRegistrationPolicy\";\nimport { bearerTokenAuthenticationPolicy } from \"./policies/bearerTokenAuthenticationPolicy\";\nimport { systemErrorRetryPolicy } from \"./policies/systemErrorRetryPolicy\";\nimport { QueryCollectionFormat } from \"./queryCollectionFormat\";\nimport { CompositeMapper, DictionaryMapper, Mapper, MapperType, Serializer } from \"./serializer\";\nimport { URLBuilder } from \"./url\";\nimport * as utils from \"./util/utils\";\nimport { stringifyXML } from \"./util/xml\";\nimport {\n RequestOptionsBase,\n RequestPrepareOptions,\n WebResource,\n WebResourceLike,\n isWebResourceLike\n} from \"./webResource\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { ServiceCallback, isNode } from \"./util/utils\";\nimport { proxyPolicy } from \"./policies/proxyPolicy\";\nimport { throttlingRetryPolicy } from \"./policies/throttlingRetryPolicy\";\nimport { ServiceClientCredentials } from \"./credentials/serviceClientCredentials\";\nimport { signingPolicy } from \"./policies/signingPolicy\";\nimport { logger } from \"./log\";\nimport { InternalPipelineOptions } from \"./pipelineOptions\";\nimport { DefaultKeepAliveOptions, keepAlivePolicy } from \"./policies/keepAlivePolicy\";\nimport { tracingPolicy } from \"./policies/tracingPolicy\";\nimport { disableResponseDecompressionPolicy } from \"./policies/disableResponseDecompressionPolicy\";\nimport { ndJsonPolicy } from \"./policies/ndJsonPolicy\";\nimport { XML_ATTRKEY, SerializerOptions, XML_CHARKEY } from \"./util/serializer.common\";\n\n/**\n * Options to configure a proxy for outgoing requests (Node.js only).\n */\nexport interface ProxySettings {\n /**\n * The proxy's host address.\n */\n host: string;\n\n /**\n * The proxy host's port.\n */\n port: number;\n\n /**\n * The user name to authenticate with the proxy, if required.\n */\n username?: string;\n\n /**\n * The password to authenticate with the proxy, if required.\n */\n password?: string;\n}\n\nexport type ProxyOptions = ProxySettings; // Alias ProxySettings as ProxyOptions for future use.\n\n/**\n * Options to be provided while creating the client.\n */\nexport interface ServiceClientOptions {\n /**\n * An array of factories which get called to create the RequestPolicy pipeline used to send a HTTP\n * request on the wire, or a function that takes in the defaultRequestPolicyFactories and returns\n * the requestPolicyFactories that will be used.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n /**\n * The HttpClient that will be used to send HTTP requests.\n */\n httpClient?: HttpClient;\n /**\n * The HttpPipelineLogger that can be used to debug RequestPolicies within the HTTP pipeline.\n */\n httpPipelineLogger?: HttpPipelineLogger;\n /**\n * If set to true, turn off the default retry policy.\n */\n noRetryPolicy?: boolean;\n /**\n * Gets or sets the retry timeout in seconds for AutomaticRPRegistration. Default value is 30.\n */\n rpRegistrationRetryTimeout?: number;\n /**\n * Whether or not to generate a client request ID header for each HTTP request.\n */\n generateClientRequestIdHeader?: boolean;\n /**\n * Whether to include credentials in CORS requests in the browser.\n * See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials for more information.\n */\n withCredentials?: boolean;\n /**\n * If specified, a GenerateRequestIdPolicy will be added to the HTTP pipeline that will add a\n * header to all outgoing requests with this header name and a random UUID as the request ID.\n */\n clientRequestIdHeaderName?: string;\n /**\n * The content-types that will be associated with JSON or XML serialization.\n */\n deserializationContentTypes?: DeserializationContentTypes;\n /**\n * The header name to use for the telemetry header while sending the request. If this is not\n * specified, then \"User-Agent\" will be used when running on Node.js and \"x-ms-useragent\" will\n * be used when running in a browser.\n */\n userAgentHeaderName?: string | ((defaultUserAgentHeaderName: string) => string);\n /**\n * The string to be set to the telemetry header while sending the request, or a function that\n * takes in the default user-agent string and returns the user-agent string that will be used.\n */\n userAgent?: string | ((defaultUserAgent: string) => string);\n /**\n * Proxy settings which will be used for every HTTP request (Node.js only).\n */\n proxySettings?: ProxySettings;\n}\n\n/**\n * @class\n * Initializes a new instance of the ServiceClient.\n */\nexport class ServiceClient {\n /**\n * If specified, this is the base URI that requests will be made against for this ServiceClient.\n * If it is not specified, then all OperationSpecs must contain a baseUrl property.\n */\n protected baseUri?: string;\n\n /**\n * The default request content type for the service.\n * Used if no requestContentType is present on an OperationSpec.\n */\n protected requestContentType?: string;\n\n /**\n * The HTTP client that will be used to send requests.\n */\n private readonly _httpClient: HttpClient;\n private readonly _requestPolicyOptions: RequestPolicyOptions;\n\n private readonly _requestPolicyFactories: RequestPolicyFactory[];\n private readonly _withCredentials: boolean;\n\n /**\n * The ServiceClient constructor\n * @constructor\n * @param credentials The credentials used for authentication with the service.\n * @param options The service client options that govern the behavior of the client.\n */\n constructor(\n credentials?: TokenCredential | ServiceClientCredentials,\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: ServiceClientOptions\n ) {\n if (!options) {\n options = {};\n }\n\n this._withCredentials = options.withCredentials || false;\n this._httpClient = options.httpClient || new DefaultHttpClient();\n this._requestPolicyOptions = new RequestPolicyOptions(options.httpPipelineLogger);\n\n let requestPolicyFactories: RequestPolicyFactory[];\n if (Array.isArray(options.requestPolicyFactories)) {\n logger.info(\"ServiceClient: using custom request policies\");\n requestPolicyFactories = options.requestPolicyFactories;\n } else {\n let authPolicyFactory: RequestPolicyFactory | undefined = undefined;\n if (isTokenCredential(credentials)) {\n logger.info(\n \"ServiceClient: creating bearer token authentication policy from provided credentials\"\n );\n // Create a wrapped RequestPolicyFactory here so that we can provide the\n // correct scope to the BearerTokenAuthenticationPolicy at the first time\n // one is requested. This is needed because generated ServiceClient\n // implementations do not set baseUri until after ServiceClient's constructor\n // is finished, leaving baseUri empty at the time when it is needed to\n // build the correct scope name.\n const wrappedPolicyFactory: () => RequestPolicyFactory = () => {\n let bearerTokenPolicyFactory: RequestPolicyFactory | undefined = undefined;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const serviceClient = this;\n return {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): RequestPolicy {\n if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) {\n bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(\n credentials,\n `${serviceClient.baseUri || \"\"}/.default`\n );\n }\n\n return bearerTokenPolicyFactory.create(nextPolicy, options);\n }\n };\n };\n\n authPolicyFactory = wrappedPolicyFactory();\n } else if (credentials && typeof credentials.signRequest === \"function\") {\n logger.info(\"ServiceClient: creating signing policy from provided credentials\");\n authPolicyFactory = signingPolicy(credentials);\n } else if (credentials !== undefined && credentials !== null) {\n throw new Error(\"The credentials argument must implement the TokenCredential interface\");\n }\n\n logger.info(\"ServiceClient: using default request policies\");\n requestPolicyFactories = createDefaultRequestPolicyFactories(authPolicyFactory, options);\n if (options.requestPolicyFactories) {\n // options.requestPolicyFactories can also be a function that manipulates\n // the default requestPolicyFactories array\n const newRequestPolicyFactories:\n | void\n | RequestPolicyFactory[] = options.requestPolicyFactories(requestPolicyFactories);\n if (newRequestPolicyFactories) {\n requestPolicyFactories = newRequestPolicyFactories;\n }\n }\n }\n this._requestPolicyFactories = requestPolicyFactories;\n }\n\n /**\n * Send the provided httpRequest.\n */\n sendRequest(options: RequestPrepareOptions | WebResourceLike): Promise {\n if (options === null || options === undefined || typeof options !== \"object\") {\n throw new Error(\"options cannot be null or undefined and it must be of type object.\");\n }\n\n let httpRequest: WebResourceLike;\n try {\n if (isWebResourceLike(options)) {\n options.validateRequestProperties();\n httpRequest = options;\n } else {\n httpRequest = new WebResource();\n httpRequest = httpRequest.prepare(options);\n }\n } catch (error) {\n return Promise.reject(error);\n }\n\n let httpPipeline: RequestPolicy = this._httpClient;\n if (this._requestPolicyFactories && this._requestPolicyFactories.length > 0) {\n for (let i = this._requestPolicyFactories.length - 1; i >= 0; --i) {\n httpPipeline = this._requestPolicyFactories[i].create(\n httpPipeline,\n this._requestPolicyOptions\n );\n }\n }\n return httpPipeline.sendRequest(httpRequest);\n }\n\n /**\n * Send an HTTP request that is populated using the provided OperationSpec.\n * @param {OperationArguments} operationArguments The arguments that the HTTP request's templated values will be populated from.\n * @param {OperationSpec} operationSpec The OperationSpec to use to populate the httpRequest.\n * @param {ServiceCallback} callback The callback to call when the response is received.\n */\n async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n callback?: ServiceCallback\n ): Promise {\n if (typeof operationArguments.options === \"function\") {\n callback = operationArguments.options;\n operationArguments.options = undefined;\n }\n\n const serializerOptions = operationArguments.options?.serializerOptions;\n const httpRequest: WebResourceLike = new WebResource();\n\n let result: Promise;\n try {\n const baseUri: string | undefined = operationSpec.baseUrl || this.baseUri;\n if (!baseUri) {\n throw new Error(\n \"If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use.\"\n );\n }\n\n httpRequest.method = operationSpec.httpMethod;\n httpRequest.operationSpec = operationSpec;\n\n const requestUrl: URLBuilder = URLBuilder.parse(baseUri);\n if (operationSpec.path) {\n requestUrl.appendPath(operationSpec.path);\n }\n if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) {\n for (const urlParameter of operationSpec.urlParameters) {\n let urlParameterValue: string = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n urlParameter,\n operationSpec.serializer\n );\n urlParameterValue = operationSpec.serializer.serialize(\n urlParameter.mapper,\n urlParameterValue,\n getPathStringFromParameter(urlParameter),\n serializerOptions\n );\n if (!urlParameter.skipEncoding) {\n urlParameterValue = encodeURIComponent(urlParameterValue);\n }\n requestUrl.replaceAll(\n `{${urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)}}`,\n urlParameterValue\n );\n }\n }\n if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) {\n for (const queryParameter of operationSpec.queryParameters) {\n let queryParameterValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n queryParameter,\n operationSpec.serializer\n );\n if (queryParameterValue !== undefined && queryParameterValue !== null) {\n queryParameterValue = operationSpec.serializer.serialize(\n queryParameter.mapper,\n queryParameterValue,\n getPathStringFromParameter(queryParameter),\n serializerOptions\n );\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null\n ) {\n if (queryParameter.collectionFormat === QueryCollectionFormat.Multi) {\n if (queryParameterValue.length === 0) {\n // The collection is empty, no need to try serializing the current queryParam\n continue;\n } else {\n for (const index in queryParameterValue) {\n const item = queryParameterValue[index];\n queryParameterValue[index] =\n item === undefined || item === null ? \"\" : item.toString();\n }\n }\n } else if (\n queryParameter.collectionFormat === QueryCollectionFormat.Ssv ||\n queryParameter.collectionFormat === QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n }\n if (!queryParameter.skipEncoding) {\n if (Array.isArray(queryParameterValue)) {\n for (const index in queryParameterValue) {\n if (\n queryParameterValue[index] !== undefined &&\n queryParameterValue[index] !== null\n ) {\n queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]);\n }\n }\n } else {\n queryParameterValue = encodeURIComponent(queryParameterValue);\n }\n }\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Multi &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Ssv &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n requestUrl.setQueryParameter(\n queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter),\n queryParameterValue\n );\n }\n }\n }\n httpRequest.url = requestUrl.toString();\n\n const contentType = operationSpec.contentType || this.requestContentType;\n if (contentType) {\n httpRequest.headers.set(\"Content-Type\", contentType);\n }\n\n if (operationSpec.headerParameters) {\n for (const headerParameter of operationSpec.headerParameters) {\n let headerValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n headerParameter,\n operationSpec.serializer\n );\n if (headerValue !== undefined && headerValue !== null) {\n headerValue = operationSpec.serializer.serialize(\n headerParameter.mapper,\n headerValue,\n getPathStringFromParameter(headerParameter),\n serializerOptions\n );\n const headerCollectionPrefix = (headerParameter.mapper as DictionaryMapper)\n .headerCollectionPrefix;\n if (headerCollectionPrefix) {\n for (const key of Object.keys(headerValue)) {\n httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]);\n }\n } else {\n httpRequest.headers.set(\n headerParameter.mapper.serializedName ||\n getPathStringFromParameter(headerParameter),\n headerValue\n );\n }\n }\n }\n }\n\n const options: RequestOptionsBase | undefined = operationArguments.options;\n if (options) {\n if (options.customHeaders) {\n for (const customHeaderName in options.customHeaders) {\n httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]);\n }\n }\n\n if (options.abortSignal) {\n httpRequest.abortSignal = options.abortSignal;\n }\n\n if (options.timeout) {\n httpRequest.timeout = options.timeout;\n }\n\n if (options.onUploadProgress) {\n httpRequest.onUploadProgress = options.onUploadProgress;\n }\n\n if (options.onDownloadProgress) {\n httpRequest.onDownloadProgress = options.onDownloadProgress;\n }\n\n if (options.spanOptions) {\n httpRequest.spanOptions = options.spanOptions;\n }\n\n if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) {\n httpRequest.shouldDeserialize = options.shouldDeserialize;\n }\n }\n\n httpRequest.withCredentials = this._withCredentials;\n\n serializeRequestBody(this, httpRequest, operationArguments, operationSpec);\n\n if (httpRequest.streamResponseBody === undefined || httpRequest.streamResponseBody === null) {\n httpRequest.streamResponseBody = isStreamOperation(operationSpec);\n }\n\n let rawResponse: HttpOperationResponse;\n let sendRequestError;\n try {\n rawResponse = await this.sendRequest(httpRequest);\n } catch (error) {\n sendRequestError = error;\n }\n if (sendRequestError) {\n if (sendRequestError.response) {\n sendRequestError.details = flattenResponse(\n sendRequestError.response,\n operationSpec.responses[sendRequestError.statusCode] ||\n operationSpec.responses[\"default\"]\n );\n }\n result = Promise.reject(sendRequestError);\n } else {\n result = Promise.resolve(\n flattenResponse(rawResponse!, operationSpec.responses[rawResponse!.status])\n );\n }\n } catch (error) {\n result = Promise.reject(error);\n }\n\n const cb = callback;\n if (cb) {\n result\n // tslint:disable-next-line:no-null-keyword\n .then((res) => cb(null, res._response.parsedBody, res._response.request, res._response))\n .catch((err) => cb(err));\n }\n\n return result;\n }\n}\n\nexport function serializeRequestBody(\n serviceClient: ServiceClient,\n httpRequest: WebResourceLike,\n operationArguments: OperationArguments,\n operationSpec: OperationSpec\n): void {\n const serializerOptions = operationArguments.options?.serializerOptions ?? {};\n const updatedOptions: Required = {\n rootName: serializerOptions.rootName ?? \"\",\n includeRoot: serializerOptions.includeRoot ?? false,\n xmlCharKey: serializerOptions.xmlCharKey ?? XML_CHARKEY\n };\n\n const xmlCharKey = serializerOptions.xmlCharKey;\n if (operationSpec.requestBody && operationSpec.requestBody.mapper) {\n httpRequest.body = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n operationSpec.requestBody,\n operationSpec.serializer\n );\n\n const bodyMapper = operationSpec.requestBody.mapper;\n const {\n required,\n xmlName,\n xmlElementName,\n serializedName,\n xmlNamespace,\n xmlNamespacePrefix\n } = bodyMapper;\n const typeName = bodyMapper.type.name;\n\n try {\n if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) {\n const requestBodyParameterPathString: string = getPathStringFromParameter(\n operationSpec.requestBody\n );\n httpRequest.body = operationSpec.serializer.serialize(\n bodyMapper,\n httpRequest.body,\n requestBodyParameterPathString,\n updatedOptions\n );\n\n const isStream = typeName === MapperType.Stream;\n\n if (operationSpec.isXML) {\n const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : \"xmlns\";\n const value = getXmlValueWithNamespace(\n xmlNamespace,\n xmlnsKey,\n typeName,\n httpRequest.body,\n updatedOptions\n );\n if (typeName === MapperType.Sequence) {\n httpRequest.body = stringifyXML(\n utils.prepareXMLRootList(\n value,\n xmlElementName || xmlName || serializedName!,\n xmlnsKey,\n xmlNamespace\n ),\n {\n rootName: xmlName || serializedName,\n xmlCharKey\n }\n );\n } else if (!isStream) {\n httpRequest.body = stringifyXML(value, {\n rootName: xmlName || serializedName,\n xmlCharKey\n });\n }\n } else if (\n typeName === MapperType.String &&\n (operationSpec.contentType?.match(\"text/plain\") || operationSpec.mediaType === \"text\")\n ) {\n // the String serializer has validated that request body is a string\n // so just send the string.\n return;\n } else if (!isStream) {\n httpRequest.body = JSON.stringify(httpRequest.body);\n }\n }\n } catch (error) {\n throw new Error(\n `Error \"${error.message}\" occurred in serializing the payload - ${JSON.stringify(\n serializedName,\n undefined,\n \" \"\n )}.`\n );\n }\n } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {\n httpRequest.formData = {};\n for (const formDataParameter of operationSpec.formDataParameters) {\n const formDataParameterValue: any = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n formDataParameter,\n operationSpec.serializer\n );\n if (formDataParameterValue !== undefined && formDataParameterValue !== null) {\n const formDataParameterPropertyName: string =\n formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);\n httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(\n formDataParameter.mapper,\n formDataParameterValue,\n getPathStringFromParameter(formDataParameter),\n updatedOptions\n );\n }\n }\n }\n}\n\n/**\n * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself\n */\nfunction getXmlValueWithNamespace(\n xmlNamespace: string | undefined,\n xmlnsKey: string,\n typeName: string,\n serializedValue: any,\n options: Required\n): any {\n // Composite and Sequence schemas already got their root namespace set during serialization\n // We just need to add xmlns to the other schema types\n if (xmlNamespace && ![\"Composite\", \"Sequence\", \"Dictionary\"].includes(typeName)) {\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace };\n return result;\n }\n\n return serializedValue;\n}\n\nfunction getValueOrFunctionResult(\n value: undefined | string | ((defaultValue: string) => string),\n defaultValueCreator: () => string\n): string {\n let result: string;\n if (typeof value === \"string\") {\n result = value;\n } else {\n result = defaultValueCreator();\n if (typeof value === \"function\") {\n result = value(result);\n }\n }\n return result;\n}\n\nfunction createDefaultRequestPolicyFactories(\n authPolicyFactory: RequestPolicyFactory | undefined,\n options: ServiceClientOptions\n): RequestPolicyFactory[] {\n const factories: RequestPolicyFactory[] = [];\n\n if (options.generateClientRequestIdHeader) {\n factories.push(generateClientRequestIdPolicy(options.clientRequestIdHeaderName));\n }\n\n if (authPolicyFactory) {\n factories.push(authPolicyFactory);\n }\n\n const userAgentHeaderName: string = getValueOrFunctionResult(\n options.userAgentHeaderName,\n getDefaultUserAgentHeaderName\n );\n const userAgentHeaderValue: string = getValueOrFunctionResult(\n options.userAgent,\n getDefaultUserAgentValue\n );\n if (userAgentHeaderName && userAgentHeaderValue) {\n factories.push(userAgentPolicy({ key: userAgentHeaderName, value: userAgentHeaderValue }));\n }\n factories.push(redirectPolicy());\n factories.push(rpRegistrationPolicy(options.rpRegistrationRetryTimeout));\n\n if (!options.noRetryPolicy) {\n factories.push(exponentialRetryPolicy());\n factories.push(systemErrorRetryPolicy());\n factories.push(throttlingRetryPolicy());\n }\n\n factories.push(deserializationPolicy(options.deserializationContentTypes));\n\n if (isNode) {\n factories.push(proxyPolicy(options.proxySettings));\n }\n\n factories.push(logPolicy({ logger: logger.info }));\n\n return factories;\n}\n\nexport function createPipelineFromOptions(\n pipelineOptions: InternalPipelineOptions,\n authPolicyFactory?: RequestPolicyFactory\n): ServiceClientOptions {\n const requestPolicyFactories: RequestPolicyFactory[] = [];\n\n if (pipelineOptions.sendStreamingJson) {\n requestPolicyFactories.push(ndJsonPolicy());\n }\n\n let userAgentValue = undefined;\n if (pipelineOptions.userAgentOptions && pipelineOptions.userAgentOptions.userAgentPrefix) {\n const userAgentInfo: string[] = [];\n userAgentInfo.push(pipelineOptions.userAgentOptions.userAgentPrefix);\n\n // Add the default user agent value if it isn't already specified\n // by the userAgentPrefix option.\n const defaultUserAgentInfo = getDefaultUserAgentValue();\n if (userAgentInfo.indexOf(defaultUserAgentInfo) === -1) {\n userAgentInfo.push(defaultUserAgentInfo);\n }\n\n userAgentValue = userAgentInfo.join(\" \");\n }\n\n const keepAliveOptions = {\n ...DefaultKeepAliveOptions,\n ...pipelineOptions.keepAliveOptions\n };\n\n const retryOptions = {\n ...DefaultRetryOptions,\n ...pipelineOptions.retryOptions\n };\n\n const redirectOptions = {\n ...DefaultRedirectOptions,\n ...pipelineOptions.redirectOptions\n };\n\n if (isNode) {\n requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));\n }\n\n const deserializationOptions = {\n ...DefaultDeserializationOptions,\n ...pipelineOptions.deserializationOptions\n };\n\n const loggingOptions: LogPolicyOptions = {\n ...pipelineOptions.loggingOptions\n };\n\n requestPolicyFactories.push(\n tracingPolicy({ userAgent: userAgentValue }),\n keepAlivePolicy(keepAliveOptions),\n userAgentPolicy({ value: userAgentValue }),\n generateClientRequestIdPolicy(),\n deserializationPolicy(deserializationOptions.expectedContentTypes),\n throttlingRetryPolicy(),\n systemErrorRetryPolicy(),\n exponentialRetryPolicy(\n retryOptions.maxRetries,\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n )\n );\n\n if (redirectOptions.handleRedirects) {\n requestPolicyFactories.push(redirectPolicy(redirectOptions.maxRetries));\n }\n\n if (authPolicyFactory) {\n requestPolicyFactories.push(authPolicyFactory);\n }\n\n requestPolicyFactories.push(logPolicy(loggingOptions));\n\n if (isNode && pipelineOptions.decompressResponse === false) {\n requestPolicyFactories.push(disableResponseDecompressionPolicy());\n }\n\n return {\n httpClient: pipelineOptions.httpClient,\n requestPolicyFactories\n };\n}\n\nexport type PropertyParent = { [propertyName: string]: any };\n\n/**\n * Get the property parent for the property at the provided path when starting with the provided\n * parent object.\n */\nexport function getPropertyParent(parent: PropertyParent, propertyPath: string[]): PropertyParent {\n if (parent && propertyPath) {\n const propertyPathLength: number = propertyPath.length;\n for (let i = 0; i < propertyPathLength - 1; ++i) {\n const propertyName: string = propertyPath[i];\n if (!parent[propertyName]) {\n parent[propertyName] = {};\n }\n parent = parent[propertyName];\n }\n }\n return parent;\n}\n\nfunction getOperationArgumentValueFromParameter(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameter: OperationParameter,\n serializer: Serializer\n): any {\n return getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n parameter.parameterPath,\n parameter.mapper,\n serializer\n );\n}\n\nexport function getOperationArgumentValueFromParameterPath(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameterPath: ParameterPath,\n parameterMapper: Mapper,\n serializer: Serializer\n): any {\n let value: any;\n if (typeof parameterPath === \"string\") {\n parameterPath = [parameterPath];\n }\n const serializerOptions = operationArguments.options?.serializerOptions;\n if (Array.isArray(parameterPath)) {\n if (parameterPath.length > 0) {\n if (parameterMapper.isConstant) {\n value = parameterMapper.defaultValue;\n } else {\n let propertySearchResult: PropertySearchResult = getPropertyFromParameterPath(\n operationArguments,\n parameterPath\n );\n if (!propertySearchResult.propertyFound) {\n propertySearchResult = getPropertyFromParameterPath(serviceClient, parameterPath);\n }\n\n let useDefaultValue = false;\n if (!propertySearchResult.propertyFound) {\n useDefaultValue =\n parameterMapper.required ||\n (parameterPath[0] === \"options\" && parameterPath.length === 2);\n }\n value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue;\n }\n\n // Serialize just for validation purposes.\n const parameterPathString: string = getPathStringFromParameterPath(\n parameterPath,\n parameterMapper\n );\n serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions);\n }\n } else {\n if (parameterMapper.required) {\n value = {};\n }\n\n for (const propertyName in parameterPath) {\n const propertyMapper: Mapper = (parameterMapper as CompositeMapper).type.modelProperties![\n propertyName\n ];\n const propertyPath: ParameterPath = parameterPath[propertyName];\n const propertyValue: any = getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n propertyPath,\n propertyMapper,\n serializer\n );\n // Serialize just for validation purposes.\n const propertyPathString: string = getPathStringFromParameterPath(\n propertyPath,\n propertyMapper\n );\n serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions);\n if (propertyValue !== undefined && propertyValue !== null) {\n if (!value) {\n value = {};\n }\n value[propertyName] = propertyValue;\n }\n }\n }\n return value;\n}\n\ninterface PropertySearchResult {\n propertyValue?: any;\n propertyFound: boolean;\n}\n\nfunction getPropertyFromParameterPath(\n parent: { [parameterName: string]: any },\n parameterPath: string[]\n): PropertySearchResult {\n const result: PropertySearchResult = { propertyFound: false };\n let i = 0;\n for (; i < parameterPath.length; ++i) {\n const parameterPathPart: string = parameterPath[i];\n // Make sure to check inherited properties too, so don't use hasOwnProperty().\n if (parent !== undefined && parent !== null && parameterPathPart in parent) {\n parent = parent[parameterPathPart];\n } else {\n break;\n }\n }\n if (i === parameterPath.length) {\n result.propertyValue = parent;\n result.propertyFound = true;\n }\n return result;\n}\n\nexport function flattenResponse(\n _response: HttpOperationResponse,\n responseSpec: OperationResponse | undefined\n): RestResponse {\n const parsedHeaders = _response.parsedHeaders;\n const bodyMapper = responseSpec && responseSpec.bodyMapper;\n\n const addOperationResponse = (obj: {}): {\n _response: HttpOperationResponse;\n } => {\n return Object.defineProperty(obj, \"_response\", {\n value: _response\n });\n };\n\n if (bodyMapper) {\n const typeName = bodyMapper.type.name;\n if (typeName === \"Stream\") {\n return addOperationResponse({\n ...parsedHeaders,\n blobBody: _response.blobBody,\n readableStreamBody: _response.readableStreamBody\n });\n }\n\n const modelProperties =\n (typeName === \"Composite\" && (bodyMapper as CompositeMapper).type.modelProperties) || {};\n const isPageableResponse = Object.keys(modelProperties).some(\n (k) => modelProperties[k].serializedName === \"\"\n );\n if (typeName === \"Sequence\" || isPageableResponse) {\n const arrayResponse = [...(_response.parsedBody || [])] as RestResponse & any[];\n\n for (const key of Object.keys(modelProperties)) {\n if (modelProperties[key].serializedName) {\n arrayResponse[key] = _response.parsedBody[key];\n }\n }\n\n if (parsedHeaders) {\n for (const key of Object.keys(parsedHeaders)) {\n arrayResponse[key] = parsedHeaders[key];\n }\n }\n addOperationResponse(arrayResponse);\n return arrayResponse;\n }\n\n if (typeName === \"Composite\" || typeName === \"Dictionary\") {\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody\n });\n }\n }\n\n if (\n bodyMapper ||\n _response.request.method === \"HEAD\" ||\n utils.isPrimitiveType(_response.parsedBody)\n ) {\n // primitive body types and HEAD booleans\n return addOperationResponse({\n ...parsedHeaders,\n body: _response.parsedBody\n });\n }\n\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody\n });\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for\n * license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is\n * regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\n\nconst packageName = \"azure-storage-blob\";\nconst packageVersion = \"12.3.0\";\n\nexport class StorageClientContext extends coreHttp.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the StorageClientContext class.\n * @param url The URL of the service account, container, or blob that is the targe of the desired\n * operation.\n * @param [options] The parameter options\n */\n constructor(url: string, options?: coreHttp.ServiceClientOptions) {\n if (url == undefined) {\n throw new Error(\"'url' cannot be null.\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (!options.userAgent) {\n const defaultUserAgent = coreHttp.getDefaultUserAgentValue();\n options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;\n }\n\n super(undefined, options);\n\n this.version = \"2020-02-10\";\n this.baseUri = \"{url}\";\n this.requestContentType = \"application/json; charset=utf-8\";\n this.url = url;\n }\n}\n","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_TRACE_API_KEY = exports.GLOBAL_PROPAGATION_API_KEY = exports.GLOBAL_METRICS_API_KEY = exports.GLOBAL_CONTEXT_MANAGER_API_KEY = void 0;\nvar platform_1 = require(\"../platform\");\nexports.GLOBAL_CONTEXT_MANAGER_API_KEY = Symbol.for('io.opentelemetry.js.api.context');\nexports.GLOBAL_METRICS_API_KEY = Symbol.for('io.opentelemetry.js.api.metrics');\nexports.GLOBAL_PROPAGATION_API_KEY = Symbol.for('io.opentelemetry.js.api.propagation');\nexports.GLOBAL_TRACE_API_KEY = Symbol.for('io.opentelemetry.js.api.trace');\nexports._global = platform_1._globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n return function (version) {\n return version === requiredVersion ? instance : fallback;\n };\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 0;\n//# sourceMappingURL=global-utils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { URLBuilder, URLQuery } from \"../url\";\n\nexport interface SanitizerOptions {\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n allowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n allowedQueryParameters?: string[];\n}\n\nconst RedactedString = \"REDACTED\";\n\nconst defaultAllowedHeaderNames = [\n \"x-ms-client-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-useragent\",\n \"x-ms-correlation-request-id\",\n \"x-ms-request-id\",\n \"client-request-id\",\n \"return-client-request-id\",\n \"traceparent\",\n\n \"Access-Control-Allow-Credentials\",\n \"Access-Control-Allow-Headers\",\n \"Access-Control-Allow-Methods\",\n \"Access-Control-Allow-Origin\",\n \"Access-Control-Expose-Headers\",\n \"Access-Control-Max-Age\",\n \"Access-Control-Request-Headers\",\n \"Access-Control-Request-Method\",\n \"Origin\",\n\n \"Accept\",\n \"Cache-Control\",\n \"Connection\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"ETag\",\n \"Expires\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"Last-Modified\",\n \"Pragma\",\n \"Request-Id\",\n \"Retry-After\",\n \"Server\",\n \"Transfer-Encoding\",\n \"User-Agent\"\n];\n\nconst defaultAllowedQueryParameters: string[] = [\"api-version\"];\n\nexport class Sanitizer {\n public allowedHeaderNames: Set;\n public allowedQueryParameters: Set;\n\n constructor({ allowedHeaderNames = [], allowedQueryParameters = [] }: SanitizerOptions = {}) {\n allowedHeaderNames = Array.isArray(allowedHeaderNames)\n ? defaultAllowedHeaderNames.concat(allowedHeaderNames)\n : defaultAllowedHeaderNames;\n\n allowedQueryParameters = Array.isArray(allowedQueryParameters)\n ? defaultAllowedQueryParameters.concat(allowedQueryParameters)\n : defaultAllowedQueryParameters;\n\n this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));\n this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));\n }\n\n public sanitize(obj: object): string {\n return JSON.stringify(obj, this.replacer.bind(this), 2);\n }\n\n private replacer(key: string, value: unknown): any {\n // Ensure Errors include their interesting non-enumerable members\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message\n };\n }\n if (key === \"_headersMap\") {\n return this.sanitizeHeaders(key, value as {});\n } else if (key === \"url\") {\n return this.sanitizeUrl(value as string);\n } else if (key === \"query\") {\n return this.sanitizeQuery(value as {});\n } else if (key === \"body\") {\n // Don't log the request body\n return undefined;\n } else if (key === \"response\") {\n // Don't log response again\n return undefined;\n } else if (key === \"operationSpec\") {\n // When using sendOperationRequest, the request carries a massive\n // field with the autorest spec. No need to log it.\n return undefined;\n }\n\n return value;\n }\n\n private sanitizeHeaders(_: string, value: { [s: string]: any }): { [s: string]: string } {\n return this.sanitizeObject(value, this.allowedHeaderNames, (v, k) => v[k].value);\n }\n\n private sanitizeQuery(value: { [s: string]: string }): { [s: string]: string } {\n return this.sanitizeObject(value, this.allowedQueryParameters, (v, k) => v[k]);\n }\n\n private sanitizeObject(\n value: { [s: string]: any },\n allowedKeys: Set,\n accessor: (value: any, key: string) => any\n ): { [s: string]: string } {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n const sanitized: { [s: string]: string } = {};\n\n for (const k of Object.keys(value)) {\n if (allowedKeys.has(k.toLowerCase())) {\n sanitized[k] = accessor(value, k);\n } else {\n sanitized[k] = RedactedString;\n }\n }\n\n return sanitized;\n }\n\n private sanitizeUrl(value: string): string {\n if (typeof value !== \"string\" || value === null) {\n return value;\n }\n\n const urlBuilder = URLBuilder.parse(value);\n const queryString = urlBuilder.getQuery();\n\n if (!queryString) {\n return value;\n }\n\n const query = URLQuery.parse(queryString);\n for (const k of query.keys()) {\n if (!this.allowedQueryParameters.has(k.toLowerCase())) {\n query.set(k, RedactedString);\n }\n }\n\n urlBuilder.setQuery(query.toString());\n return urlBuilder.toString();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n OperationParameter,\n OperationQueryParameter,\n OperationURLParameter\n} from \"./operationParameter\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { MapperType, Serializer } from \"./serializer\";\nimport { HttpMethods } from \"./webResource\";\n\n/**\n * A specification that defines an operation.\n */\nexport interface OperationSpec {\n /**\n * The serializer to use in this operation.\n */\n readonly serializer: Serializer;\n\n /**\n * The HTTP method that should be used by requests for this operation.\n */\n readonly httpMethod: HttpMethods;\n\n /**\n * The URL that was provided in the service's specification. This will still have all of the URL\n * template variables in it. If this is not provided when the OperationSpec is created, then it\n * will be populated by a \"baseUri\" property on the ServiceClient.\n */\n readonly baseUrl?: string;\n\n /**\n * The fixed path for this operation's URL. This will still have all of the URL template variables\n * in it.\n */\n readonly path?: string;\n\n /**\n * The content type of the request body. This value will be used as the \"Content-Type\" header if\n * it is provided.\n */\n readonly contentType?: string;\n\n /**\n * The media type of the request body.\n * This value can be used to aide in serialization if it is provided.\n */\n readonly mediaType?:\n | \"json\"\n | \"xml\"\n | \"form\"\n | \"binary\"\n | \"multipart\"\n | \"text\"\n | \"unknown\"\n | string;\n /**\n * The parameter that will be used to construct the HTTP request's body.\n */\n readonly requestBody?: OperationParameter;\n\n /**\n * Whether or not this operation uses XML request and response bodies.\n */\n readonly isXML?: boolean;\n\n /**\n * The parameters to the operation method that will be substituted into the constructed URL.\n */\n readonly urlParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be added to the constructed URL's query.\n */\n readonly queryParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be converted to headers on the operation's\n * HTTP request.\n */\n readonly headerParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be used to create a formdata body for the\n * operation's HTTP request.\n */\n readonly formDataParameters?: ReadonlyArray;\n\n /**\n * The different types of responses that this operation can return based on what status code is\n * returned.\n */\n readonly responses: { [responseCode: string]: OperationResponse };\n}\n\nexport function isStreamOperation(operationSpec: OperationSpec): boolean {\n let result = false;\n for (const statusCode in operationSpec.responses) {\n const operationResponse: OperationResponse = operationSpec.responses[statusCode];\n if (\n operationResponse.bodyMapper &&\n operationResponse.bodyMapper.type.name === MapperType.Stream\n ) {\n result = true;\n break;\n }\n }\n return result;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { __read, __spread, __values } from \"tslib\";\nimport debug from \"./debug\";\nvar registeredLoggers = new Set();\nvar logLevelFromEnv = (typeof process !== \"undefined\" && process.env && process.env.AZURE_LOG_LEVEL) || undefined;\nvar azureLogLevel;\n/**\n * The AzureLogger provides a mechanism for overriding where logs are output to.\n * By default, logs are sent to stderr.\n * Override the `log` method to redirect logs to another location.\n */\nexport var AzureLogger = debug(\"azure\");\nAzureLogger.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n debug.log.apply(debug, __spread(args));\n};\nvar AZURE_LOG_LEVELS = [\"verbose\", \"info\", \"warning\", \"error\"];\nif (logLevelFromEnv) {\n // avoid calling setLogLevel because we don't want a mis-set environment variable to crash\n if (isAzureLogLevel(logLevelFromEnv)) {\n setLogLevel(logLevelFromEnv);\n }\n else {\n console.error(\"AZURE_LOG_LEVEL set to unknown log level '\" + logLevelFromEnv + \"'; logging is not enabled. Acceptable values: \" + AZURE_LOG_LEVELS.join(\", \") + \".\");\n }\n}\n/**\n * Immediately enables logging at the specified log level.\n * @param level The log level to enable for logging.\n * Options from most verbose to least verbose are:\n * - verbose\n * - info\n * - warning\n * - error\n */\nexport function setLogLevel(level) {\n var e_1, _a;\n if (level && !isAzureLogLevel(level)) {\n throw new Error(\"Unknown log level '\" + level + \"'. Acceptable values: \" + AZURE_LOG_LEVELS.join(\",\"));\n }\n azureLogLevel = level;\n var enabledNamespaces = [];\n try {\n for (var registeredLoggers_1 = __values(registeredLoggers), registeredLoggers_1_1 = registeredLoggers_1.next(); !registeredLoggers_1_1.done; registeredLoggers_1_1 = registeredLoggers_1.next()) {\n var logger = registeredLoggers_1_1.value;\n if (shouldEnable(logger)) {\n enabledNamespaces.push(logger.namespace);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (registeredLoggers_1_1 && !registeredLoggers_1_1.done && (_a = registeredLoggers_1.return)) _a.call(registeredLoggers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n debug.enable(enabledNamespaces.join(\",\"));\n}\n/**\n * Retrieves the currently specified log level.\n */\nexport function getLogLevel() {\n return azureLogLevel;\n}\nvar levelMap = {\n verbose: 400,\n info: 300,\n warning: 200,\n error: 100\n};\n/**\n * Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`.\n * @param namespace The name of the SDK package.\n * @ignore\n */\nexport function createClientLogger(namespace) {\n var clientRootLogger = AzureLogger.extend(namespace);\n patchLogMethod(AzureLogger, clientRootLogger);\n return {\n error: createLogger(clientRootLogger, \"error\"),\n warning: createLogger(clientRootLogger, \"warning\"),\n info: createLogger(clientRootLogger, \"info\"),\n verbose: createLogger(clientRootLogger, \"verbose\")\n };\n}\nfunction patchLogMethod(parent, child) {\n child.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n parent.log.apply(parent, __spread(args));\n };\n}\nfunction createLogger(parent, level) {\n var logger = Object.assign(parent.extend(level), {\n level: level\n });\n patchLogMethod(parent, logger);\n if (shouldEnable(logger)) {\n var enabledNamespaces = debug.disable();\n debug.enable(enabledNamespaces + \",\" + logger.namespace);\n }\n registeredLoggers.add(logger);\n return logger;\n}\nfunction shouldEnable(logger) {\n if (azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]) {\n return true;\n }\n else {\n return false;\n }\n}\nfunction isAzureLogLevel(logLevel) {\n return AZURE_LOG_LEVELS.includes(logLevel);\n}\n//# sourceMappingURL=logger.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { OperationResponse } from \"../operationResponse\";\nimport { OperationSpec, isStreamOperation } from \"../operationSpec\";\nimport { RestError } from \"../restError\";\nimport { MapperType } from \"../serializer\";\nimport { parseXML } from \"../util/xml\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\nimport { XML_CHARKEY, SerializerOptions } from \"../util/serializer.common\";\n\n/**\n * Options to configure API response deserialization.\n */\nexport interface DeserializationOptions {\n /**\n * Configures the expected content types for the deserialization of\n * JSON and XML response bodies.\n */\n expectedContentTypes: DeserializationContentTypes;\n}\n\n/**\n * The content-types that will indicate that an operation response should be deserialized in a\n * particular way.\n */\nexport interface DeserializationContentTypes {\n /**\n * The content-types that indicate that an operation response should be deserialized as JSON.\n * Defaults to [ \"application/json\", \"text/json\" ].\n */\n json?: string[];\n\n /**\n * The content-types that indicate that an operation response should be deserialized as XML.\n * Defaults to [ \"application/xml\", \"application/atom+xml\" ].\n */\n xml?: string[];\n}\n\n/**\n * Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they\n * pass through the HTTP pipeline.\n */\nexport function deserializationPolicy(\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions?: SerializerOptions\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new DeserializationPolicy(\n nextPolicy,\n options,\n deserializationContentTypes,\n parsingOptions\n );\n }\n };\n}\n\nexport const defaultJsonContentTypes = [\"application/json\", \"text/json\"];\nexport const defaultXmlContentTypes = [\"application/xml\", \"application/atom+xml\"];\n\nexport const DefaultDeserializationOptions: DeserializationOptions = {\n expectedContentTypes: {\n json: defaultJsonContentTypes,\n xml: defaultXmlContentTypes\n }\n};\n\n/**\n * A RequestPolicy that will deserialize HTTP response bodies and headers as they pass through the\n * HTTP pipeline.\n */\nexport class DeserializationPolicy extends BaseRequestPolicy {\n public readonly jsonContentTypes: string[];\n public readonly xmlContentTypes: string[];\n public readonly xmlCharKey: string;\n\n constructor(\n nextPolicy: RequestPolicy,\n requestPolicyOptions: RequestPolicyOptions,\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions: SerializerOptions = {}\n ) {\n super(nextPolicy, requestPolicyOptions);\n\n this.jsonContentTypes =\n (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes;\n this.xmlContentTypes =\n (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes;\n this.xmlCharKey = parsingOptions.xmlCharKey ?? XML_CHARKEY;\n }\n\n public async sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy.sendRequest(request).then((response: HttpOperationResponse) =>\n deserializeResponseBody(this.jsonContentTypes, this.xmlContentTypes, response, {\n xmlCharKey: this.xmlCharKey\n })\n );\n }\n}\n\nfunction getOperationResponse(\n parsedResponse: HttpOperationResponse\n): undefined | OperationResponse {\n let result: OperationResponse | undefined;\n const request: WebResourceLike = parsedResponse.request;\n const operationSpec: OperationSpec | undefined = request.operationSpec;\n if (operationSpec) {\n const operationResponseGetter:\n | undefined\n | ((\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse) = request.operationResponseGetter;\n if (!operationResponseGetter) {\n result = operationSpec.responses[parsedResponse.status];\n } else {\n result = operationResponseGetter(operationSpec, parsedResponse);\n }\n }\n return result;\n}\n\nfunction shouldDeserializeResponse(parsedResponse: HttpOperationResponse): boolean {\n const shouldDeserialize: undefined | boolean | ((response: HttpOperationResponse) => boolean) =\n parsedResponse.request.shouldDeserialize;\n let result: boolean;\n if (shouldDeserialize === undefined) {\n result = true;\n } else if (typeof shouldDeserialize === \"boolean\") {\n result = shouldDeserialize;\n } else {\n result = shouldDeserialize(parsedResponse);\n }\n return result;\n}\n\nexport function deserializeResponseBody(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n response: HttpOperationResponse,\n options: SerializerOptions = {}\n): Promise {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY\n };\n return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then(\n (parsedResponse) => {\n if (!shouldDeserializeResponse(parsedResponse)) {\n return parsedResponse;\n }\n\n const operationSpec = parsedResponse.request.operationSpec;\n if (!operationSpec || !operationSpec.responses) {\n return parsedResponse;\n }\n\n const responseSpec = getOperationResponse(parsedResponse);\n\n const { error, shouldReturnResponse } = handleErrorResponse(\n parsedResponse,\n operationSpec,\n responseSpec\n );\n if (error) {\n throw error;\n } else if (shouldReturnResponse) {\n return parsedResponse;\n }\n\n // An operation response spec does exist for current status code, so\n // use it to deserialize the response.\n if (responseSpec) {\n if (responseSpec.bodyMapper) {\n let valueToDeserialize: any = parsedResponse.parsedBody;\n if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof valueToDeserialize === \"object\"\n ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName!]\n : [];\n }\n try {\n parsedResponse.parsedBody = operationSpec.serializer.deserialize(\n responseSpec.bodyMapper,\n valueToDeserialize,\n \"operationRes.parsedBody\",\n options\n );\n } catch (error) {\n const restError = new RestError(\n `Error ${error} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n throw restError;\n }\n } else if (operationSpec.httpMethod === \"HEAD\") {\n // head methods never have a body, but we return a boolean to indicate presence/absence of the resource\n parsedResponse.parsedBody = response.status >= 200 && response.status < 300;\n }\n\n if (responseSpec.headersMapper) {\n parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(\n responseSpec.headersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\",\n options\n );\n }\n }\n\n return parsedResponse;\n }\n );\n}\n\nfunction isOperationSpecEmpty(operationSpec: OperationSpec): boolean {\n const expectedStatusCodes = Object.keys(operationSpec.responses);\n return (\n expectedStatusCodes.length === 0 ||\n (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === \"default\")\n );\n}\n\nfunction handleErrorResponse(\n parsedResponse: HttpOperationResponse,\n operationSpec: OperationSpec,\n responseSpec: OperationResponse | undefined\n): { error: RestError | null; shouldReturnResponse: boolean } {\n const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;\n const isExpectedStatusCode: boolean = isOperationSpecEmpty(operationSpec)\n ? isSuccessByStatus\n : !!responseSpec;\n\n if (isExpectedStatusCode) {\n if (responseSpec) {\n if (!responseSpec.isError) {\n return { error: null, shouldReturnResponse: false };\n }\n } else {\n return { error: null, shouldReturnResponse: false };\n }\n }\n\n const errorResponseSpec = responseSpec ?? operationSpec.responses.default;\n const initialErrorMessage = isStreamOperation(operationSpec)\n ? `Unexpected status code: ${parsedResponse.status}`\n : (parsedResponse.bodyAsText as string);\n\n const error = new RestError(\n initialErrorMessage,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n\n // If the item failed but there's no error spec or default spec to deserialize the error,\n // we should fail so we just throw the parsed response\n if (!errorResponseSpec) {\n throw error;\n }\n\n const defaultBodyMapper = errorResponseSpec.bodyMapper;\n const defaultHeadersMapper = errorResponseSpec.headersMapper;\n\n try {\n // If error response has a body, try to deserialize it using default body mapper.\n // Then try to extract error code & message from it\n if (parsedResponse.parsedBody) {\n const parsedBody = parsedResponse.parsedBody;\n let parsedError;\n if (defaultBodyMapper) {\n let valueToDeserialize: any = parsedBody;\n if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof parsedBody === \"object\" ? parsedBody[defaultBodyMapper.xmlElementName!] : [];\n }\n parsedError = operationSpec.serializer.deserialize(\n defaultBodyMapper,\n valueToDeserialize,\n \"error.response.parsedBody\"\n );\n }\n\n const internalError: any = parsedBody.error || parsedError || parsedBody;\n error.code = internalError.code;\n if (internalError.message) {\n error.message = internalError.message;\n }\n\n if (defaultBodyMapper) {\n error.response!.parsedBody = parsedError;\n }\n }\n\n // If error response has headers, try to deserialize it using default header mapper\n if (parsedResponse.headers && defaultHeadersMapper) {\n error.response!.parsedHeaders = operationSpec.serializer.deserialize(\n defaultHeadersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\"\n );\n }\n } catch (defaultError) {\n error.message = `Error \"${defaultError.message}\" occurred in deserializing the responseBody - \"${parsedResponse.bodyAsText}\" for the default response.`;\n }\n\n return { error, shouldReturnResponse: false };\n}\n\nfunction parse(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n operationResponse: HttpOperationResponse,\n opts: Required\n): Promise {\n const errorHandler = (err: Error & { code: string }): Promise => {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${operationResponse.bodyAsText}.`;\n const errCode = err.code || RestError.PARSE_ERROR;\n const e = new RestError(\n msg,\n errCode,\n operationResponse.status,\n operationResponse.request,\n operationResponse\n );\n return Promise.reject(e);\n };\n\n if (!operationResponse.request.streamResponseBody && operationResponse.bodyAsText) {\n const text = operationResponse.bodyAsText;\n const contentType: string = operationResponse.headers.get(\"Content-Type\") || \"\";\n const contentComponents: string[] = !contentType\n ? []\n : contentType.split(\";\").map((component) => component.toLowerCase());\n if (\n contentComponents.length === 0 ||\n contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)\n ) {\n return new Promise((resolve) => {\n operationResponse.parsedBody = JSON.parse(text);\n resolve(operationResponse);\n }).catch(errorHandler);\n } else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) {\n return parseXML(text, opts)\n .then((body) => {\n operationResponse.parsedBody = body;\n return operationResponse;\n })\n .catch(errorHandler);\n }\n }\n\n return Promise.resolve(operationResponse);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpHeaders, HttpHeadersLike, isHttpHeadersLike } from \"./httpHeaders\";\nimport { OperationSpec } from \"./operationSpec\";\nimport { Mapper, Serializer } from \"./serializer\";\nimport { generateUuid } from \"./util/utils\";\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { ProxySettings } from \"./serviceClient\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { SpanOptions } from \"@azure/core-tracing\";\nimport { SerializerOptions } from \"./util/serializer.common\";\n\nexport type HttpMethods =\n | \"GET\"\n | \"PUT\"\n | \"POST\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"OPTIONS\"\n | \"TRACE\";\nexport type HttpRequestBody =\n | Blob\n | string\n | ArrayBuffer\n | ArrayBufferView\n | (() => NodeJS.ReadableStream);\n\n/**\n * Fired in response to upload or download progress.\n */\nexport type TransferProgressEvent = {\n /**\n * The number of bytes loaded so far.\n */\n loadedBytes: number;\n};\n\nexport interface WebResourceLike {\n /**\n * The URL being accessed by the request.\n */\n url: string;\n /**\n * The HTTP method to use when making the request.\n */\n method: HttpMethods;\n /**\n * The HTTP body contents of the request.\n */\n body?: any;\n /**\n * The HTTP headers to use when making the request.\n */\n headers: HttpHeadersLike;\n /**\n * Whether or not the body of the HttpOperationResponse should be treated as a stream.\n */\n streamResponseBody?: boolean;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n /**\n * A function that returns the proper OperationResponse for the given OperationSpec and\n * HttpOperationResponse combination. If this is undefined, then a simple status code lookup will\n * be used.\n */\n operationResponseGetter?: (\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse;\n formData?: any;\n /**\n * A query string represented as an object.\n */\n query?: { [key: string]: any };\n /**\n * Used to parse the response.\n */\n operationSpec?: OperationSpec;\n /**\n * If credentials (cookies) should be sent along during an XHR.\n */\n withCredentials: boolean;\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n * If the request is terminated, an `AbortError` is thrown.\n */\n timeout: number;\n /**\n * Proxy configuration.\n */\n proxySettings?: ProxySettings;\n /**\n * If the connection should be reused.\n */\n keepAlive?: boolean;\n /**\n * Whether or not to decompress response according to Accept-Encoding header (node-fetch only)\n */\n decompressResponse?: boolean;\n /**\n * A unique identifier for the request. Used for logging and tracing.\n */\n requestId: string;\n\n /**\n * Used to abort the request later.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /** Callback which fires upon download progress. */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Options used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n\n /**\n * Validates that the required properties such as method, url, headers[\"Content-Type\"],\n * headers[\"accept-language\"] are defined. It will throw an error if one of the above\n * mentioned properties are not defined.\n */\n validateRequestProperties(): void;\n\n /**\n * Sets options on the request.\n */\n prepare(options: RequestPrepareOptions): WebResourceLike;\n /**\n * Clone this request object.\n */\n clone(): WebResourceLike;\n}\n\nexport function isWebResourceLike(object: any): object is WebResourceLike {\n if (typeof object !== \"object\") {\n return false;\n }\n if (\n typeof object.url === \"string\" &&\n typeof object.method === \"string\" &&\n typeof object.headers === \"object\" &&\n isHttpHeadersLike(object.headers) &&\n typeof object.validateRequestProperties === \"function\" &&\n typeof object.prepare === \"function\" &&\n typeof object.clone === \"function\"\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * Creates a new WebResource object.\n *\n * This class provides an abstraction over a REST call by being library / implementation agnostic and wrapping the necessary\n * properties to initiate a request.\n *\n * @constructor\n */\nexport class WebResource implements WebResourceLike {\n url: string;\n method: HttpMethods;\n body?: any;\n headers: HttpHeadersLike;\n /**\n * Whether or not the body of the HttpOperationResponse should be treated as a stream.\n */\n streamResponseBody?: boolean;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n /**\n * A function that returns the proper OperationResponse for the given OperationSpec and\n * HttpOperationResponse combination. If this is undefined, then a simple status code lookup will\n * be used.\n */\n operationResponseGetter?: (\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse;\n formData?: any;\n query?: { [key: string]: any };\n operationSpec?: OperationSpec;\n withCredentials: boolean;\n timeout: number;\n proxySettings?: ProxySettings;\n keepAlive?: boolean;\n /**\n * Whether or not to decompress response according to Accept-Encoding header (node-fetch only)\n */\n decompressResponse?: boolean;\n requestId: string;\n\n abortSignal?: AbortSignalLike;\n\n /** Callback which fires upon upload progress. */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /** Callback which fires upon download progress. */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Options used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n\n constructor(\n url?: string,\n method?: HttpMethods,\n body?: any,\n query?: { [key: string]: any },\n headers?: { [key: string]: any } | HttpHeadersLike,\n streamResponseBody?: boolean,\n withCredentials?: boolean,\n abortSignal?: AbortSignalLike,\n timeout?: number,\n onUploadProgress?: (progress: TransferProgressEvent) => void,\n onDownloadProgress?: (progress: TransferProgressEvent) => void,\n proxySettings?: ProxySettings,\n keepAlive?: boolean,\n decompressResponse?: boolean\n ) {\n this.streamResponseBody = streamResponseBody;\n this.url = url || \"\";\n this.method = method || \"GET\";\n this.headers = isHttpHeadersLike(headers) ? headers : new HttpHeaders(headers);\n this.body = body;\n this.query = query;\n this.formData = undefined;\n this.withCredentials = withCredentials || false;\n this.abortSignal = abortSignal;\n this.timeout = timeout || 0;\n this.onUploadProgress = onUploadProgress;\n this.onDownloadProgress = onDownloadProgress;\n this.proxySettings = proxySettings;\n this.keepAlive = keepAlive;\n this.decompressResponse = decompressResponse;\n this.requestId = this.headers.get(\"x-ms-client-request-id\") || generateUuid();\n }\n\n /**\n * Validates that the required properties such as method, url, headers[\"Content-Type\"],\n * headers[\"accept-language\"] are defined. It will throw an error if one of the above\n * mentioned properties are not defined.\n */\n validateRequestProperties(): void {\n if (!this.method) {\n throw new Error(\"WebResource.method is required.\");\n }\n if (!this.url) {\n throw new Error(\"WebResource.url is required.\");\n }\n }\n\n /**\n * Prepares the request.\n * @param {RequestPrepareOptions} options Options to provide for preparing the request.\n * @returns {WebResource} Returns the prepared WebResource (HTTP Request) object that needs to be given to the request pipeline.\n */\n prepare(options: RequestPrepareOptions): WebResource {\n if (!options) {\n throw new Error(\"options object is required\");\n }\n\n if (\n options.method === undefined ||\n options.method === null ||\n typeof options.method.valueOf() !== \"string\"\n ) {\n throw new Error(\"options.method must be a string.\");\n }\n\n if (options.url && options.pathTemplate) {\n throw new Error(\n \"options.url and options.pathTemplate are mutually exclusive. Please provide exactly one of them.\"\n );\n }\n\n if (\n (options.pathTemplate === undefined ||\n options.pathTemplate === null ||\n typeof options.pathTemplate.valueOf() !== \"string\") &&\n (options.url === undefined ||\n options.url === null ||\n typeof options.url.valueOf() !== \"string\")\n ) {\n throw new Error(\"Please provide exactly one of options.pathTemplate or options.url.\");\n }\n\n // set the url if it is provided.\n if (options.url) {\n if (typeof options.url !== \"string\") {\n throw new Error('options.url must be of type \"string\".');\n }\n this.url = options.url;\n }\n\n // set the method\n if (options.method) {\n const validMethods = [\"GET\", \"PUT\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"POST\", \"PATCH\", \"TRACE\"];\n if (validMethods.indexOf(options.method.toUpperCase()) === -1) {\n throw new Error(\n 'The provided method \"' +\n options.method +\n '\" is invalid. Supported HTTP methods are: ' +\n JSON.stringify(validMethods)\n );\n }\n }\n this.method = options.method.toUpperCase() as HttpMethods;\n\n // construct the url if path template is provided\n if (options.pathTemplate) {\n const { pathTemplate, pathParameters } = options;\n if (typeof pathTemplate !== \"string\") {\n throw new Error('options.pathTemplate must be of type \"string\".');\n }\n if (!options.baseUrl) {\n options.baseUrl = \"https://management.azure.com\";\n }\n const baseUrl = options.baseUrl;\n let url =\n baseUrl +\n (baseUrl.endsWith(\"/\") ? \"\" : \"/\") +\n (pathTemplate.startsWith(\"/\") ? pathTemplate.slice(1) : pathTemplate);\n const segments = url.match(/({[\\w-]*\\s*[\\w-]*})/gi);\n if (segments && segments.length) {\n if (!pathParameters) {\n throw new Error(\n `pathTemplate: ${pathTemplate} has been provided. Hence, options.pathParameters must also be provided.`\n );\n }\n segments.forEach(function(item) {\n const pathParamName = item.slice(1, -1);\n const pathParam = (pathParameters as { [key: string]: any })[pathParamName];\n if (\n pathParam === null ||\n pathParam === undefined ||\n !(typeof pathParam === \"string\" || typeof pathParam === \"object\")\n ) {\n const stringifiedPathParameters = JSON.stringify(pathParameters, undefined, 2);\n throw new Error(\n `pathTemplate: ${pathTemplate} contains the path parameter ${pathParamName}` +\n ` however, it is not present in parameters: ${stringifiedPathParameters}.` +\n `The value of the path parameter can either be a \"string\" of the form { ${pathParamName}: \"some sample value\" } or ` +\n `it can be an \"object\" of the form { \"${pathParamName}\": { value: \"some sample value\", skipUrlEncoding: true } }.`\n );\n }\n\n if (typeof pathParam.valueOf() === \"string\") {\n url = url.replace(item, encodeURIComponent(pathParam));\n }\n\n if (typeof pathParam.valueOf() === \"object\") {\n if (!pathParam.value) {\n throw new Error(\n `options.pathParameters[${pathParamName}] is of type \"object\" but it does not contain a \"value\" property.`\n );\n }\n if (pathParam.skipUrlEncoding) {\n url = url.replace(item, pathParam.value);\n } else {\n url = url.replace(item, encodeURIComponent(pathParam.value));\n }\n }\n });\n }\n this.url = url;\n }\n\n // append query parameters to the url if they are provided. They can be provided with pathTemplate or url option.\n if (options.queryParameters) {\n const queryParameters = options.queryParameters;\n if (typeof queryParameters !== \"object\") {\n throw new Error(\n `options.queryParameters must be of type object. It should be a JSON object ` +\n `of \"query-parameter-name\" as the key and the \"query-parameter-value\" as the value. ` +\n `The \"query-parameter-value\" may be fo type \"string\" or an \"object\" of the form { value: \"query-parameter-value\", skipUrlEncoding: true }.`\n );\n }\n // append question mark if it is not present in the url\n if (this.url && this.url.indexOf(\"?\") === -1) {\n this.url += \"?\";\n }\n // construct queryString\n const queryParams = [];\n // We need to populate this.query as a dictionary if the request is being used for Sway's validateRequest().\n this.query = {};\n for (const queryParamName in queryParameters) {\n const queryParam: any = queryParameters[queryParamName];\n if (queryParam) {\n if (typeof queryParam === \"string\") {\n queryParams.push(queryParamName + \"=\" + encodeURIComponent(queryParam));\n this.query[queryParamName] = encodeURIComponent(queryParam);\n } else if (typeof queryParam === \"object\") {\n if (!queryParam.value) {\n throw new Error(\n `options.queryParameters[${queryParamName}] is of type \"object\" but it does not contain a \"value\" property.`\n );\n }\n if (queryParam.skipUrlEncoding) {\n queryParams.push(queryParamName + \"=\" + queryParam.value);\n this.query[queryParamName] = queryParam.value;\n } else {\n queryParams.push(queryParamName + \"=\" + encodeURIComponent(queryParam.value));\n this.query[queryParamName] = encodeURIComponent(queryParam.value);\n }\n }\n }\n } // end-of-for\n // append the queryString\n this.url += queryParams.join(\"&\");\n }\n\n // add headers to the request if they are provided\n if (options.headers) {\n const headers = options.headers;\n for (const headerName of Object.keys(options.headers)) {\n this.headers.set(headerName, headers[headerName]);\n }\n }\n // ensure accept-language is set correctly\n if (!this.headers.get(\"accept-language\")) {\n this.headers.set(\"accept-language\", \"en-US\");\n }\n // ensure the request-id is set correctly\n if (!this.headers.get(\"x-ms-client-request-id\") && !options.disableClientRequestId) {\n this.headers.set(\"x-ms-client-request-id\", this.requestId);\n }\n\n // default\n if (!this.headers.get(\"Content-Type\")) {\n this.headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n // set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicilty\n this.body = options.body;\n if (options.body !== undefined && options.body !== null) {\n // body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream.\n if (options.bodyIsStream) {\n if (!this.headers.get(\"Transfer-Encoding\")) {\n this.headers.set(\"Transfer-Encoding\", \"chunked\");\n }\n if (this.headers.get(\"Content-Type\") !== \"application/octet-stream\") {\n this.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n } else {\n if (options.serializationMapper) {\n this.body = new Serializer(options.mappers).serialize(\n options.serializationMapper,\n options.body,\n \"requestBody\"\n );\n }\n if (!options.disableJsonStringifyOnBody) {\n this.body = JSON.stringify(options.body);\n }\n }\n }\n\n if (options.spanOptions) {\n this.spanOptions = options.spanOptions;\n }\n\n this.abortSignal = options.abortSignal;\n this.onDownloadProgress = options.onDownloadProgress;\n this.onUploadProgress = options.onUploadProgress;\n\n return this;\n }\n\n /**\n * Clone this WebResource HTTP request object.\n * @returns {WebResource} The clone of this WebResource HTTP request object.\n */\n clone(): WebResource {\n const result = new WebResource(\n this.url,\n this.method,\n this.body,\n this.query,\n this.headers && this.headers.clone(),\n this.streamResponseBody,\n this.withCredentials,\n this.abortSignal,\n this.timeout,\n this.onUploadProgress,\n this.onDownloadProgress,\n this.proxySettings,\n this.keepAlive,\n this.decompressResponse\n );\n\n if (this.formData) {\n result.formData = this.formData;\n }\n\n if (this.operationSpec) {\n result.operationSpec = this.operationSpec;\n }\n\n if (this.shouldDeserialize) {\n result.shouldDeserialize = this.shouldDeserialize;\n }\n\n if (this.operationResponseGetter) {\n result.operationResponseGetter = this.operationResponseGetter;\n }\n\n return result;\n }\n}\n\nexport interface RequestPrepareOptions {\n /**\n * The HTTP request method. Valid values are \"GET\", \"PUT\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"POST\",\n * or \"PATCH\".\n */\n method: HttpMethods;\n /**\n * The request url. It may or may not have query parameters in it. Either provide the \"url\" or\n * provide the \"pathTemplate\" in the options object. Both the options are mutually exclusive.\n */\n url?: string;\n /**\n * A dictionary of query parameters to be appended to the url, where\n * the \"key\" is the \"query-parameter-name\" and the \"value\" is the \"query-parameter-value\".\n * The \"query-parameter-value\" can be of type \"string\" or it can be of type \"object\".\n * The \"object\" format should be used when you want to skip url encoding. While using the object format,\n * the object must have a property named value which provides the \"query-parameter-value\".\n * Example:\n * - query-parameter-value in \"object\" format: { \"query-parameter-name\": { value: \"query-parameter-value\", skipUrlEncoding: true } }\n * - query-parameter-value in \"string\" format: { \"query-parameter-name\": \"query-parameter-value\"}.\n * Note: \"If options.url already has some query parameters, then the value provided in options.queryParameters will be appended to the url.\n */\n queryParameters?: { [key: string]: any | ParameterValue };\n /**\n * The path template of the request url. Either provide the \"url\" or provide the \"pathTemplate\" in\n * the options object. Both the options are mutually exclusive.\n * Example: \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}\"\n */\n pathTemplate?: string;\n /**\n * The base url of the request. Default value is: \"https://management.azure.com\". This is\n * applicable only with pathTemplate. If you are providing options.url then it is expected that\n * you provide the complete url.\n */\n baseUrl?: string;\n /**\n * A dictionary of path parameters that need to be replaced with actual values in the pathTemplate.\n * Here the key is the \"path-parameter-name\" and the value is the \"path-parameter-value\".\n * The \"path-parameter-value\" can be of type \"string\" or it can be of type \"object\".\n * The \"object\" format should be used when you want to skip url encoding. While using the object format,\n * the object must have a property named value which provides the \"path-parameter-value\".\n * Example:\n * - path-parameter-value in \"object\" format: { \"path-parameter-name\": { value: \"path-parameter-value\", skipUrlEncoding: true } }\n * - path-parameter-value in \"string\" format: { \"path-parameter-name\": \"path-parameter-value\" }.\n */\n pathParameters?: { [key: string]: any | ParameterValue };\n formData?: { [key: string]: any };\n /**\n * A dictionary of request headers that need to be applied to the request.\n * Here the key is the \"header-name\" and the value is the \"header-value\". The header-value MUST be of type string.\n * - ContentType must be provided with the key name as \"Content-Type\". Default value \"application/json; charset=utf-8\".\n * - \"Transfer-Encoding\" is set to \"chunked\" by default if \"options.bodyIsStream\" is set to true.\n * - \"Content-Type\" is set to \"application/octet-stream\" by default if \"options.bodyIsStream\" is set to true.\n * - \"accept-language\" by default is set to \"en-US\"\n * - \"x-ms-client-request-id\" by default is set to a new Guid. To not generate a guid for the request, please set options.disableClientRequestId to true\n */\n headers?: { [key: string]: any };\n /**\n * When set to true, instructs the client to not set \"x-ms-client-request-id\" header to a new Guid().\n */\n disableClientRequestId?: boolean;\n /**\n * The request body. It can be of any type. This value will be serialized if it is not a stream.\n */\n body?: any;\n /**\n * Provides information on how to serialize the request body.\n */\n serializationMapper?: Mapper;\n /**\n * A dictionary of mappers that may be used while [de]serialization.\n */\n mappers?: { [x: string]: any };\n /**\n * Provides information on how to deserialize the response body.\n */\n deserializationMapper?: object;\n /**\n * Indicates whether this method should JSON.stringify() the request body. Default value: false.\n */\n disableJsonStringifyOnBody?: boolean;\n /**\n * Indicates whether the request body is a stream (useful for file upload scenarios).\n */\n bodyIsStream?: boolean;\n abortSignal?: AbortSignalLike;\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n spanOptions?: SpanOptions;\n}\n\n/**\n * The Parameter value provided for path or query parameters in RequestPrepareOptions\n */\nexport interface ParameterValue {\n value: any;\n skipUrlEncoding: boolean;\n [key: string]: any;\n}\n\n/**\n * Describes the base structure of the options object that will be used in every operation.\n */\nexport interface RequestOptionsBase {\n /**\n * @property {object} [customHeaders] User defined custom request headers that\n * will be applied before the request is sent.\n */\n customHeaders?: { [key: string]: string };\n\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n * If the request is terminated, an `AbortError` is thrown.\n */\n timeout?: number;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback which fires upon download progress.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n\n /**\n * Options used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n\n [key: string]: any;\n\n /**\n * Options to override XML parsing/building behavior.\n */\n serializerOptions?: SerializerOptions;\n}\n","import { HttpResponse } from \"@azure/core-http\";\nimport {\n PageBlobGetPageRangesHeaders,\n PageBlobGetPageRangesDiffHeaders,\n PageBlobGetPageRangesResponse as PageBlobGetPageRangesResponseModel,\n PageBlobGetPageRangesDiffResponse as PageBlobGetPageRangesDiffResponseModel\n} from \"./generatedModels\";\nimport { Range } from \"./Range\";\n\n/**\n * List of page ranges for a blob.\n */\nexport interface PageList {\n /**\n * Valid non-overlapping page ranges.\n */\n pageRange?: Range[];\n /**\n * Present if the prevSnapshot parameter was specified and there were cleared\n * pages between the previous snapshot and the target snapshot.\n */\n clearRange?: Range[];\n}\n\n/**\n * Contains response data for the {@link BlobClient.getPageRanges} operation.\n */\nexport interface PageBlobGetPageRangesResponse extends PageList, PageBlobGetPageRangesHeaders {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: PageBlobGetPageRangesHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: PageList;\n };\n}\n\n/**\n * Contains response data for the {@link BlobClient.getPageRangesDiff} operation.\n */\nexport interface PageBlobGetPageRangesDiffResponse\n extends PageList,\n PageBlobGetPageRangesDiffHeaders {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: PageBlobGetPageRangesDiffHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: PageList;\n };\n}\n\n/**\n * Function that converts PageRange and ClearRange to a common Range object.\n * PageRange and ClearRange have start and end while Range offset and count\n * this function normalizes to Range.\n * @param response Model PageBlob Range response\n */\nexport function rangeResponseFromModel(\n response: PageBlobGetPageRangesResponseModel | PageBlobGetPageRangesDiffResponseModel\n): PageBlobGetPageRangesResponse | PageBlobGetPageRangesDiffResponse {\n const pageRange = (response._response.parsedBody.pageRange || []).map((x) => ({\n offset: x.start,\n count: x.end - x.start\n }));\n\n const clearRange = (response._response.parsedBody.clearRange || []).map((x) => ({\n offset: x.start,\n count: x.end - x.start\n }));\n\n return {\n ...response,\n pageRange,\n clearRange,\n _response: {\n ...response._response,\n parsedBody: {\n pageRange,\n clearRange\n }\n }\n };\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","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyOptions,\n RequestPolicyFactory\n} from \"./requestPolicy\";\nimport { WebResourceLike } from \"../webResource\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\n\n/**\n * Options for how HTTP connections should be maintained for future\n * requests.\n */\nexport interface KeepAliveOptions {\n /*\n * When true, connections will be kept alive for multiple requests.\n * Defaults to true.\n */\n enable: boolean;\n}\n\nexport const DefaultKeepAliveOptions: KeepAliveOptions = {\n enable: true\n};\n\nexport function keepAlivePolicy(keepAliveOptions?: KeepAliveOptions): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new KeepAlivePolicy(nextPolicy, options, keepAliveOptions || DefaultKeepAliveOptions);\n }\n };\n}\n\n/**\n * KeepAlivePolicy is a policy used to control keep alive settings for every request.\n */\nexport class KeepAlivePolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of KeepAlivePolicy.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @param {KeepAliveOptions} [keepAliveOptions]\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n private readonly keepAliveOptions: KeepAliveOptions\n ) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends out request.\n *\n * @param {WebResourceLike} request\n * @returns {Promise}\n * @memberof KeepAlivePolicy\n */\n public async sendRequest(request: WebResourceLike): Promise {\n request.keepAlive = this.keepAliveOptions.enable;\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\n\nexport function generateClientRequestIdPolicy(\n requestIdHeaderName = \"x-ms-client-request-id\"\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new GenerateClientRequestIdPolicy(nextPolicy, options, requestIdHeaderName);\n }\n };\n}\n\nexport class GenerateClientRequestIdPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n private _requestIdHeaderName: string\n ) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n if (!request.headers.contains(this._requestIdHeaderName)) {\n request.headers.set(this._requestIdHeaderName, request.requestId);\n }\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions\n} from \"./requestPolicy\";\nimport { Debugger } from \"@azure/logger\";\nimport { logger as coreLogger } from \"../log\";\nimport { Sanitizer } from \"../util/sanitizer\";\n\nexport interface LogPolicyOptions {\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n allowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n allowedQueryParameters?: string[];\n\n /**\n * The Debugger (logger) instance to use for writing pipeline logs.\n */\n logger?: Debugger;\n}\n\nexport function logPolicy(loggingOptions: LogPolicyOptions = {}): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new LogPolicy(nextPolicy, options, loggingOptions);\n }\n };\n}\n\nexport class LogPolicy extends BaseRequestPolicy {\n logger: Debugger;\n sanitizer: Sanitizer;\n\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n * @deprecated Pass these into the constructor instead.\n */\n public get allowedHeaderNames(): Set {\n return this.sanitizer.allowedHeaderNames;\n }\n\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n * @deprecated Pass these into the constructor instead.\n */\n public set allowedHeaderNames(allowedHeaderNames: Set) {\n this.sanitizer.allowedHeaderNames = allowedHeaderNames;\n }\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n * @deprecated Pass these into the constructor instead.\n */\n public get allowedQueryParameters(): Set {\n return this.sanitizer.allowedQueryParameters;\n }\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n * @deprecated Pass these into the constructor instead.\n */\n public set allowedQueryParameters(allowedQueryParameters: Set) {\n this.sanitizer.allowedQueryParameters = allowedQueryParameters;\n }\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n {\n logger = coreLogger.info,\n allowedHeaderNames = [],\n allowedQueryParameters = []\n }: LogPolicyOptions = {}\n ) {\n super(nextPolicy, options);\n this.logger = logger;\n this.sanitizer = new Sanitizer({ allowedHeaderNames, allowedQueryParameters });\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n if (!this.logger.enabled) return this._nextPolicy.sendRequest(request);\n\n this.logRequest(request);\n return this._nextPolicy.sendRequest(request).then((response) => this.logResponse(response));\n }\n\n private logRequest(request: WebResourceLike): void {\n this.logger(`Request: ${this.sanitizer.sanitize(request)}`);\n }\n\n private logResponse(response: HttpOperationResponse): HttpOperationResponse {\n this.logger(`Response status code: ${response.status}`);\n this.logger(`Headers: ${this.sanitizer.sanitize(response.headers)}`);\n return response;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// In browser, during webpack or browserify bundling, this module will be replaced by 'events'\n// https://github.com/Gozala/events\nimport { EventEmitter } from \"events\";\n\n/**\n * Operation is an async function to be executed and managed by Batch.\n */\nexport declare type Operation = () => Promise;\n\n/**\n * States for Batch.\n *\n * @enum {number}\n */\nenum BatchStates {\n Good,\n Error\n}\n\n/**\n * Batch provides basic parallel execution with concurrency limits.\n * Will stop execute left operations when one of the executed operation throws an error.\n * But Batch cannot cancel ongoing operations, you need to cancel them by yourself.\n *\n * @export\n * @class Batch\n */\nexport class Batch {\n /**\n * Concurrency. Must be lager than 0.\n *\n * @type {number}\n * @memberof Batch\n */\n private concurrency: number;\n\n /**\n * Number of active operations under execution.\n *\n * @private\n * @type {number}\n * @memberof Batch\n */\n private actives: number = 0;\n\n /**\n * Number of completed operations under execution.\n *\n * @private\n * @type {number}\n * @memberof Batch\n */\n private completed: number = 0;\n\n /**\n * Offset of next operation to be executed.\n *\n * @private\n * @type {number}\n * @memberof Batch\n */\n private offset: number = 0;\n\n /**\n * Operation array to be executed.\n *\n * @private\n * @type {Operation[]}\n * @memberof Batch\n */\n private operations: Operation[] = [];\n\n /**\n * States of Batch. When an error happens, state will turn into error.\n * Batch will stop execute left operations.\n *\n * @private\n * @type {BatchStates}\n * @memberof Batch\n */\n private state: BatchStates = BatchStates.Good;\n\n /**\n * A private emitter used to pass events inside this class.\n *\n * @private\n * @type {EventEmitter}\n * @memberof Batch\n */\n private emitter: EventEmitter;\n\n /**\n * Creates an instance of Batch.\n * @param {number} [concurrency=5]\n * @memberof Batch\n */\n public constructor(concurrency: number = 5) {\n if (concurrency < 1) {\n throw new RangeError(\"concurrency must be larger than 0\");\n }\n this.concurrency = concurrency;\n this.emitter = new EventEmitter();\n }\n\n /**\n * Add a operation into queue.\n *\n * @param {Operation} operation\n * @memberof Batch\n */\n public addOperation(operation: Operation): void {\n this.operations.push(async () => {\n try {\n this.actives++;\n await operation();\n this.actives--;\n this.completed++;\n this.parallelExecute();\n } catch (error) {\n this.emitter.emit(\"error\", error);\n }\n });\n }\n\n /**\n * Start execute operations in the queue.\n *\n * @returns {Promise}\n * @memberof Batch\n */\n public async do(): Promise {\n if (this.operations.length === 0) {\n return Promise.resolve();\n }\n\n this.parallelExecute();\n\n return new Promise((resolve, reject) => {\n this.emitter.on(\"finish\", resolve);\n\n this.emitter.on(\"error\", (error) => {\n this.state = BatchStates.Error;\n reject(error);\n });\n });\n }\n\n /**\n * Get next operation to be executed. Return null when reaching ends.\n *\n * @private\n * @returns {(Operation | null)}\n * @memberof Batch\n */\n private nextOperation(): Operation | null {\n if (this.offset < this.operations.length) {\n return this.operations[this.offset++];\n }\n return null;\n }\n\n /**\n * Start execute operations. One one the most important difference between\n * this method with do() is that do() wraps as an sync method.\n *\n * @private\n * @returns {void}\n * @memberof Batch\n */\n private parallelExecute(): void {\n if (this.state === BatchStates.Error) {\n return;\n }\n\n if (this.completed >= this.operations.length) {\n this.emitter.emit(\"finish\");\n return;\n }\n\n while (this.actives < this.concurrency) {\n const operation = this.nextOperation();\n if (operation) {\n operation();\n } else {\n return;\n }\n }\n }\n}\n","enum MutexLockStatus {\n LOCKED,\n UNLOCKED\n}\n\ntype Callback = (...args: any[]) => any;\n\n/**\n * An async mutex lock.\n *\n * @export\n * @class Mutex\n */\nexport class Mutex {\n /**\n * Lock for a specific key. If the lock has been acquired by another customer, then\n * will wait until getting the lock.\n *\n * @static\n * @param {string} key lock key\n * @returns {Promise}\n * @memberof Mutex\n */\n public static async lock(key: string): Promise {\n return new Promise((resolve) => {\n if (this.keys[key] === undefined || this.keys[key] === MutexLockStatus.UNLOCKED) {\n this.keys[key] = MutexLockStatus.LOCKED;\n resolve();\n } else {\n this.onUnlockEvent(key, () => {\n this.keys[key] = MutexLockStatus.LOCKED;\n resolve();\n });\n }\n });\n }\n\n /**\n * Unlock a key.\n *\n * @static\n * @param {string} key\n * @returns {Promise}\n * @memberof Mutex\n */\n public static async unlock(key: string): Promise {\n return new Promise((resolve) => {\n if (this.keys[key] === MutexLockStatus.LOCKED) {\n this.emitUnlockEvent(key);\n }\n delete this.keys[key];\n resolve();\n });\n }\n\n private static keys: { [key: string]: MutexLockStatus } = {};\n private static listeners: { [key: string]: Callback[] } = {};\n\n private static onUnlockEvent(key: string, handler: Callback) {\n if (this.listeners[key] === undefined) {\n this.listeners[key] = [handler];\n } else {\n this.listeners[key].push(handler);\n }\n }\n\n private static emitUnlockEvent(key: string) {\n if (this.listeners[key] !== undefined && this.listeners[key].length > 0) {\n const handler = this.listeners[key].shift();\n setImmediate(() => {\n handler!.call(this);\n });\n }\n }\n}\n","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}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/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(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for\n * license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is\n * regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\nimport * as Models from \"../models\";\nimport * as Mappers from \"../models/blobMappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClientContext } from \"../storageClientContext\";\n\n/** Class representing a Blob. */\nexport class Blob {\n private readonly client: StorageClientContext;\n\n /**\n * Create a Blob.\n * @param {StorageClientContext} client Reference to the service client.\n */\n constructor(client: StorageClientContext) {\n this.client = client;\n }\n\n /**\n * The Download operation reads or downloads a blob from the system, including its metadata and\n * properties. You can also call Download to read a snapshot.\n * @param [options] The optional parameters\n * @returns Promise\n */\n download(options?: Models.BlobDownloadOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n download(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n download(options: Models.BlobDownloadOptionalParams, callback: coreHttp.ServiceCallback): void;\n download(options?: Models.BlobDownloadOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n downloadOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Get Properties operation returns all user-defined metadata, standard HTTP properties, and\n * system properties for the blob. It does not return the content of the blob.\n * @param [options] The optional parameters\n * @returns Promise\n */\n getProperties(options?: Models.BlobGetPropertiesOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n getProperties(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getProperties(options: Models.BlobGetPropertiesOptionalParams, callback: coreHttp.ServiceCallback): void;\n getProperties(options?: Models.BlobGetPropertiesOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getPropertiesOperationSpec,\n callback) as Promise;\n }\n\n /**\n * If the storage account's soft delete feature is disabled then, when a blob is deleted, it is\n * permanently removed from the storage account. If the storage account's soft delete feature is\n * enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible\n * immediately. However, the blob service retains the blob or snapshot for the number of days\n * specified by the DeleteRetentionPolicy section of [Storage service properties]\n * (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data\n * is permanently removed from the storage account. Note that you continue to be charged for the\n * soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify\n * the \"include=deleted\" query parameter to discover which blobs and snapshots have been soft\n * deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other\n * operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code\n * of 404 (ResourceNotFound).\n * @param [options] The optional parameters\n * @returns Promise\n */\n deleteMethod(options?: Models.BlobDeleteMethodOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n deleteMethod(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n deleteMethod(options: Models.BlobDeleteMethodOptionalParams, callback: coreHttp.ServiceCallback): void;\n deleteMethod(options?: Models.BlobDeleteMethodOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n deleteMethodOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Set the owner, group, permissions, or access control list for a blob.\n * @param [options] The optional parameters\n * @returns Promise\n */\n setAccessControl(options?: Models.BlobSetAccessControlOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setAccessControl(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setAccessControl(options: Models.BlobSetAccessControlOptionalParams, callback: coreHttp.ServiceCallback): void;\n setAccessControl(options?: Models.BlobSetAccessControlOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setAccessControlOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Get the owner, group, permissions, or access control list for a blob.\n * @param [options] The optional parameters\n * @returns Promise\n */\n getAccessControl(options?: Models.BlobGetAccessControlOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n getAccessControl(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getAccessControl(options: Models.BlobGetAccessControlOptionalParams, callback: coreHttp.ServiceCallback): void;\n getAccessControl(options?: Models.BlobGetAccessControlOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getAccessControlOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Rename a blob/file. By default, the destination is overwritten and if the destination already\n * exists and has a lease the lease is broken. This operation supports conditional HTTP requests.\n * For more information, see [Specifying Conditional Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * To fail if the destination already exists, use a conditional request with If-None-Match: \"*\".\n * @param renameSource The file or directory to be renamed. The value must have the following\n * format: \"/{filesysystem}/{path}\". If \"x-ms-properties\" is specified, the properties will\n * overwrite the existing properties; otherwise, the existing properties will be preserved.\n * @param [options] The optional parameters\n * @returns Promise\n */\n rename(renameSource: string, options?: Models.BlobRenameOptionalParams): Promise;\n /**\n * @param renameSource The file or directory to be renamed. The value must have the following\n * format: \"/{filesysystem}/{path}\". If \"x-ms-properties\" is specified, the properties will\n * overwrite the existing properties; otherwise, the existing properties will be preserved.\n * @param callback The callback\n */\n rename(renameSource: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param renameSource The file or directory to be renamed. The value must have the following\n * format: \"/{filesysystem}/{path}\". If \"x-ms-properties\" is specified, the properties will\n * overwrite the existing properties; otherwise, the existing properties will be preserved.\n * @param options The optional parameters\n * @param callback The callback\n */\n rename(renameSource: string, options: Models.BlobRenameOptionalParams, callback: coreHttp.ServiceCallback): void;\n rename(renameSource: string, options?: Models.BlobRenameOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n renameSource,\n options\n },\n renameOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Undelete a blob that was previously soft deleted\n * @param [options] The optional parameters\n * @returns Promise\n */\n undelete(options?: Models.BlobUndeleteOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n undelete(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n undelete(options: Models.BlobUndeleteOptionalParams, callback: coreHttp.ServiceCallback): void;\n undelete(options?: Models.BlobUndeleteOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n undeleteOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Sets the time a blob will expire and be deleted.\n * @param expiryOptions Required. Indicates mode of the expiry time. Possible values include:\n * 'NeverExpire', 'RelativeToCreation', 'RelativeToNow', 'Absolute'\n * @param [options] The optional parameters\n * @returns Promise\n */\n setExpiry(expiryOptions: Models.BlobExpiryOptions, options?: Models.BlobSetExpiryOptionalParams): Promise;\n /**\n * @param expiryOptions Required. Indicates mode of the expiry time. Possible values include:\n * 'NeverExpire', 'RelativeToCreation', 'RelativeToNow', 'Absolute'\n * @param callback The callback\n */\n setExpiry(expiryOptions: Models.BlobExpiryOptions, callback: coreHttp.ServiceCallback): void;\n /**\n * @param expiryOptions Required. Indicates mode of the expiry time. Possible values include:\n * 'NeverExpire', 'RelativeToCreation', 'RelativeToNow', 'Absolute'\n * @param options The optional parameters\n * @param callback The callback\n */\n setExpiry(expiryOptions: Models.BlobExpiryOptions, options: Models.BlobSetExpiryOptionalParams, callback: coreHttp.ServiceCallback): void;\n setExpiry(expiryOptions: Models.BlobExpiryOptions, options?: Models.BlobSetExpiryOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n expiryOptions,\n options\n },\n setExpiryOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Set HTTP Headers operation sets system properties on the blob\n * @param [options] The optional parameters\n * @returns Promise\n */\n setHTTPHeaders(options?: Models.BlobSetHTTPHeadersOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setHTTPHeaders(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setHTTPHeaders(options: Models.BlobSetHTTPHeadersOptionalParams, callback: coreHttp.ServiceCallback): void;\n setHTTPHeaders(options?: Models.BlobSetHTTPHeadersOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setHTTPHeadersOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more\n * name-value pairs\n * @param [options] The optional parameters\n * @returns Promise\n */\n setMetadata(options?: Models.BlobSetMetadataOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setMetadata(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setMetadata(options: Models.BlobSetMetadataOptionalParams, callback: coreHttp.ServiceCallback): void;\n setMetadata(options?: Models.BlobSetMetadataOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setMetadataOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param [options] The optional parameters\n * @returns Promise\n */\n acquireLease(options?: Models.BlobAcquireLeaseOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n acquireLease(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n acquireLease(options: Models.BlobAcquireLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n acquireLease(options?: Models.BlobAcquireLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n acquireLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param [options] The optional parameters\n * @returns Promise\n */\n releaseLease(leaseId: string, options?: Models.BlobReleaseLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param callback The callback\n */\n releaseLease(leaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The optional parameters\n * @param callback The callback\n */\n releaseLease(leaseId: string, options: Models.BlobReleaseLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n releaseLease(leaseId: string, options?: Models.BlobReleaseLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n options\n },\n releaseLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param [options] The optional parameters\n * @returns Promise\n */\n renewLease(leaseId: string, options?: Models.BlobRenewLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param callback The callback\n */\n renewLease(leaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The optional parameters\n * @param callback The callback\n */\n renewLease(leaseId: string, options: Models.BlobRenewLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n renewLease(leaseId: string, options?: Models.BlobRenewLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n options\n },\n renewLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param [options] The optional parameters\n * @returns Promise\n */\n changeLease(leaseId: string, proposedLeaseId: string, options?: Models.BlobChangeLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param callback The callback\n */\n changeLease(leaseId: string, proposedLeaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param options The optional parameters\n * @param callback The callback\n */\n changeLease(leaseId: string, proposedLeaseId: string, options: Models.BlobChangeLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n changeLease(leaseId: string, proposedLeaseId: string, options?: Models.BlobChangeLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n proposedLeaseId,\n options\n },\n changeLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param [options] The optional parameters\n * @returns Promise\n */\n breakLease(options?: Models.BlobBreakLeaseOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n breakLease(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n breakLease(options: Models.BlobBreakLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n breakLease(options?: Models.BlobBreakLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n breakLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Create Snapshot operation creates a read-only snapshot of a blob\n * @param [options] The optional parameters\n * @returns Promise\n */\n createSnapshot(options?: Models.BlobCreateSnapshotOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n createSnapshot(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n createSnapshot(options: Models.BlobCreateSnapshotOptionalParams, callback: coreHttp.ServiceCallback): void;\n createSnapshot(options?: Models.BlobCreateSnapshotOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n createSnapshotOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Start Copy From URL operation copies a blob or an internet resource to a new blob.\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param [options] The optional parameters\n * @returns Promise\n */\n startCopyFromURL(copySource: string, options?: Models.BlobStartCopyFromURLOptionalParams): Promise;\n /**\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param callback The callback\n */\n startCopyFromURL(copySource: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param options The optional parameters\n * @param callback The callback\n */\n startCopyFromURL(copySource: string, options: Models.BlobStartCopyFromURLOptionalParams, callback: coreHttp.ServiceCallback): void;\n startCopyFromURL(copySource: string, options?: Models.BlobStartCopyFromURLOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n copySource,\n options\n },\n startCopyFromURLOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Copy From URL operation copies a blob or an internet resource to a new blob. It will not\n * return a response until the copy is complete.\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param [options] The optional parameters\n * @returns Promise\n */\n copyFromURL(copySource: string, options?: Models.BlobCopyFromURLOptionalParams): Promise;\n /**\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param callback The callback\n */\n copyFromURL(copySource: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up\n * to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it\n * would appear in a request URI. The source blob must either be public or must be authenticated\n * via a shared access signature.\n * @param options The optional parameters\n * @param callback The callback\n */\n copyFromURL(copySource: string, options: Models.BlobCopyFromURLOptionalParams, callback: coreHttp.ServiceCallback): void;\n copyFromURL(copySource: string, options?: Models.BlobCopyFromURLOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n copySource,\n options\n },\n copyFromURLOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a\n * destination blob with zero length and full metadata.\n * @param copyId The copy identifier provided in the x-ms-copy-id header of the original Copy Blob\n * operation.\n * @param [options] The optional parameters\n * @returns Promise\n */\n abortCopyFromURL(copyId: string, options?: Models.BlobAbortCopyFromURLOptionalParams): Promise;\n /**\n * @param copyId The copy identifier provided in the x-ms-copy-id header of the original Copy Blob\n * operation.\n * @param callback The callback\n */\n abortCopyFromURL(copyId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param copyId The copy identifier provided in the x-ms-copy-id header of the original Copy Blob\n * operation.\n * @param options The optional parameters\n * @param callback The callback\n */\n abortCopyFromURL(copyId: string, options: Models.BlobAbortCopyFromURLOptionalParams, callback: coreHttp.ServiceCallback): void;\n abortCopyFromURL(copyId: string, options?: Models.BlobAbortCopyFromURLOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n copyId,\n options\n },\n abortCopyFromURLOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a\n * premium storage account and on a block blob in a blob storage account (locally redundant storage\n * only). A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob.\n * A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the\n * blob's ETag.\n * @param tier Indicates the tier to be set on the blob. Possible values include: 'P4', 'P6',\n * 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive'\n * @param [options] The optional parameters\n * @returns Promise\n */\n setTier(tier: Models.AccessTier, options?: Models.BlobSetTierOptionalParams): Promise;\n /**\n * @param tier Indicates the tier to be set on the blob. Possible values include: 'P4', 'P6',\n * 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive'\n * @param callback The callback\n */\n setTier(tier: Models.AccessTier, callback: coreHttp.ServiceCallback): void;\n /**\n * @param tier Indicates the tier to be set on the blob. Possible values include: 'P4', 'P6',\n * 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive'\n * @param options The optional parameters\n * @param callback The callback\n */\n setTier(tier: Models.AccessTier, options: Models.BlobSetTierOptionalParams, callback: coreHttp.ServiceCallback): void;\n setTier(tier: Models.AccessTier, options?: Models.BlobSetTierOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n tier,\n options\n },\n setTierOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Returns the sku name and account kind\n * @param [options] The optional parameters\n * @returns Promise\n */\n getAccountInfo(options?: coreHttp.RequestOptionsBase): Promise;\n /**\n * @param callback The callback\n */\n getAccountInfo(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getAccountInfo(options: coreHttp.RequestOptionsBase, callback: coreHttp.ServiceCallback): void;\n getAccountInfo(options?: coreHttp.RequestOptionsBase | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getAccountInfoOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Query operation enables users to select/project on blob data by providing simple query\n * expressions.\n * @param [options] The optional parameters\n * @returns Promise\n */\n query(options?: Models.BlobQueryOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n query(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n query(options: Models.BlobQueryOptionalParams, callback: coreHttp.ServiceCallback): void;\n query(options?: Models.BlobQueryOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n queryOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Get Tags operation enables users to get the tags associated with a blob.\n * @param [options] The optional parameters\n * @returns Promise\n */\n getTags(options?: Models.BlobGetTagsOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n getTags(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getTags(options: Models.BlobGetTagsOptionalParams, callback: coreHttp.ServiceCallback): void;\n getTags(options?: Models.BlobGetTagsOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getTagsOperationSpec,\n callback) as Promise;\n }\n\n /**\n * The Set Tags operation enables users to set tags on a blob.\n * @param [options] The optional parameters\n * @returns Promise\n */\n setTags(options?: Models.BlobSetTagsOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setTags(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setTags(options: Models.BlobSetTagsOptionalParams, callback: coreHttp.ServiceCallback): void;\n setTags(options?: Models.BlobSetTagsOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setTagsOperationSpec,\n callback) as Promise;\n }\n}\n\n// Operation Specifications\nconst serializer = new coreHttp.Serializer(Mappers, true);\nconst downloadOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.timeoutInSeconds\n ],\n headerParameters: [\n Parameters.range0,\n Parameters.rangeGetContentMD5,\n Parameters.rangeGetContentCRC64,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n bodyMapper: {\n serializedName: \"parsedResponse\",\n type: {\n name: \"Stream\"\n }\n },\n headersMapper: Mappers.BlobDownloadHeaders\n },\n 206: {\n bodyMapper: {\n serializedName: \"parsedResponse\",\n type: {\n name: \"Stream\"\n }\n },\n headersMapper: Mappers.BlobDownloadHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobDownloadHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getPropertiesOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"HEAD\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.timeoutInSeconds\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetPropertiesHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst deleteMethodOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"DELETE\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.timeoutInSeconds\n ],\n headerParameters: [\n Parameters.deleteSnapshots,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 202: {\n headersMapper: Mappers.BlobDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobDeleteHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setAccessControlOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PATCH\",\n path: \"{filesystem}/{path}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.action5\n ],\n headerParameters: [\n Parameters.owner,\n Parameters.group,\n Parameters.posixPermissions,\n Parameters.posixAcl,\n Parameters.requestId,\n Parameters.version,\n Parameters.leaseId0,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetAccessControlHeaders\n },\n default: {\n bodyMapper: Mappers.DataLakeStorageError,\n headersMapper: Mappers.BlobSetAccessControlHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getAccessControlOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"HEAD\",\n path: \"{filesystem}/{path}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.upn,\n Parameters.action6\n ],\n headerParameters: [\n Parameters.requestId,\n Parameters.version,\n Parameters.leaseId0,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobGetAccessControlHeaders\n },\n default: {\n bodyMapper: Mappers.DataLakeStorageError,\n headersMapper: Mappers.BlobGetAccessControlHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst renameOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{filesystem}/{path}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.pathRenameMode\n ],\n headerParameters: [\n Parameters.renameSource,\n Parameters.directoryProperties,\n Parameters.posixPermissions,\n Parameters.posixUmask,\n Parameters.sourceLeaseId,\n Parameters.version,\n Parameters.requestId,\n Parameters.cacheControl,\n Parameters.contentType,\n Parameters.contentEncoding,\n Parameters.contentLanguage,\n Parameters.contentDisposition,\n Parameters.leaseId0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch\n ],\n responses: {\n 201: {\n headersMapper: Mappers.BlobRenameHeaders\n },\n default: {\n bodyMapper: Mappers.DataLakeStorageError,\n headersMapper: Mappers.BlobRenameHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst undeleteOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp8\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobUndeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobUndeleteHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setExpiryOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp10\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.expiryOptions,\n Parameters.expiresOn\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetExpiryHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetExpiryHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setHTTPHeadersOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp0\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.blobCacheControl,\n Parameters.blobContentType,\n Parameters.blobContentMD5,\n Parameters.blobContentEncoding,\n Parameters.blobContentLanguage,\n Parameters.blobContentDisposition,\n Parameters.leaseId0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetHTTPHeadersHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetHTTPHeadersHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setMetadataOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp6\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.encryptionScope,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetMetadataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetMetadataHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst acquireLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9\n ],\n headerParameters: [\n Parameters.duration,\n Parameters.proposedLeaseId0,\n Parameters.version,\n Parameters.requestId,\n Parameters.action0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 201: {\n headersMapper: Mappers.BlobAcquireLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobAcquireLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst releaseLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobReleaseLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobReleaseLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst renewLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action2,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobRenewLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobRenewLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst changeLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.proposedLeaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action4,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobChangeLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobChangeLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst breakLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9\n ],\n headerParameters: [\n Parameters.breakPeriod,\n Parameters.version,\n Parameters.requestId,\n Parameters.action3,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n responses: {\n 202: {\n headersMapper: Mappers.BlobBreakLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobBreakLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst createSnapshotOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp11\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.encryptionScope,\n Parameters.version,\n Parameters.requestId,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.leaseId0\n ],\n responses: {\n 201: {\n headersMapper: Mappers.BlobCreateSnapshotHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobCreateSnapshotHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst startCopyFromURLOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.tier0,\n Parameters.rehydratePriority,\n Parameters.copySource,\n Parameters.version,\n Parameters.requestId,\n Parameters.blobTagsString,\n Parameters.sealBlob,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch,\n Parameters.sourceIfTags,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.leaseId0\n ],\n responses: {\n 202: {\n headersMapper: Mappers.BlobStartCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobStartCopyFromURLHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst copyFromURLOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.tier0,\n Parameters.copySource,\n Parameters.version,\n Parameters.requestId,\n Parameters.sourceContentMD5,\n Parameters.blobTagsString,\n Parameters.xMsRequiresSync,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.leaseId0\n ],\n responses: {\n 202: {\n headersMapper: Mappers.BlobCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobCopyFromURLHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst abortCopyFromURLOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.copyId,\n Parameters.timeoutInSeconds,\n Parameters.comp12\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.copyActionAbortConstant,\n Parameters.leaseId0\n ],\n responses: {\n 204: {\n headersMapper: Mappers.BlobAbortCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobAbortCopyFromURLHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setTierOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.timeoutInSeconds,\n Parameters.comp13\n ],\n headerParameters: [\n Parameters.tier1,\n Parameters.rehydratePriority,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetTierHeaders\n },\n 202: {\n headersMapper: Mappers.BlobSetTierHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetTierHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getAccountInfoOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.restype1,\n Parameters.comp0\n ],\n headerParameters: [\n Parameters.version\n ],\n responses: {\n 200: {\n headersMapper: Mappers.BlobGetAccountInfoHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetAccountInfoHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst queryOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"POST\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.snapshot,\n Parameters.timeoutInSeconds,\n Parameters.comp14\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n requestBody: {\n parameterPath: [\n \"options\",\n \"queryRequest\"\n ],\n mapper: Mappers.QueryRequest\n },\n contentType: \"application/xml; charset=utf-8\",\n responses: {\n 200: {\n bodyMapper: {\n serializedName: \"parsedResponse\",\n type: {\n name: \"Stream\"\n }\n },\n headersMapper: Mappers.BlobQueryHeaders\n },\n 206: {\n bodyMapper: {\n serializedName: \"parsedResponse\",\n type: {\n name: \"Stream\"\n }\n },\n headersMapper: Mappers.BlobQueryHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobQueryHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getTagsOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.comp15\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.ifTags\n ],\n responses: {\n 200: {\n bodyMapper: Mappers.BlobTags,\n headersMapper: Mappers.BlobGetTagsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetTagsHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setTagsOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}/{blob}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.versionId,\n Parameters.comp15\n ],\n headerParameters: [\n Parameters.version,\n Parameters.transactionalContentMD5,\n Parameters.transactionalContentCrc64,\n Parameters.requestId,\n Parameters.ifTags\n ],\n requestBody: {\n parameterPath: [\n \"options\",\n \"tags\"\n ],\n mapper: Mappers.BlobTags\n },\n contentType: \"application/xml; charset=utf-8\",\n responses: {\n 204: {\n headersMapper: Mappers.BlobSetTagsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetTagsHeaders\n }\n },\n isXML: true,\n serializer\n};\n","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultGetter = void 0;\n/**\n * Default getter which just does a simple property access. Returns\n * undefined if the key is not set.\n *\n * @param carrier\n * @param key\n */\nfunction defaultGetter(carrier, key) {\n return carrier[key];\n}\nexports.defaultGetter = defaultGetter;\n//# sourceMappingURL=getter.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_HTTP_TEXT_PROPAGATOR = exports.NoopHttpTextPropagator = void 0;\n/**\n * No-op implementations of {@link HttpTextPropagator}.\n */\nvar NoopHttpTextPropagator = /** @class */ (function () {\n function NoopHttpTextPropagator() {\n }\n /** Noop inject function does nothing */\n NoopHttpTextPropagator.prototype.inject = function (context, carrier, setter) { };\n /** Noop extract function does nothing and returns the input context */\n NoopHttpTextPropagator.prototype.extract = function (context, carrier, getter) {\n return context;\n };\n return NoopHttpTextPropagator;\n}());\nexports.NoopHttpTextPropagator = NoopHttpTextPropagator;\nexports.NOOP_HTTP_TEXT_PROPAGATOR = new NoopHttpTextPropagator();\n//# sourceMappingURL=NoopHttpTextPropagator.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultSetter = void 0;\n/**\n * Default setter which sets value via direct property access\n *\n * @param carrier\n * @param key\n */\nfunction defaultSetter(carrier, key, value) {\n carrier[key] = value;\n}\nexports.defaultSetter = defaultSetter;\n//# sourceMappingURL=setter.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_BATCH_OBSERVER_METRIC = exports.NOOP_SUM_OBSERVER_METRIC = exports.NOOP_UP_DOWN_SUM_OBSERVER_METRIC = exports.NOOP_VALUE_OBSERVER_METRIC = exports.NOOP_BOUND_BASE_OBSERVER = exports.NOOP_VALUE_RECORDER_METRIC = exports.NOOP_BOUND_VALUE_RECORDER = exports.NOOP_COUNTER_METRIC = exports.NOOP_BOUND_COUNTER = exports.NOOP_METER = exports.NoopBoundBaseObserver = exports.NoopBoundValueRecorder = exports.NoopBoundCounter = exports.NoopBatchObserverMetric = exports.NoopBaseObserverMetric = exports.NoopValueRecorderMetric = exports.NoopCounterMetric = exports.NoopMetric = exports.NoopMeter = void 0;\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nvar NoopMeter = /** @class */ (function () {\n function NoopMeter() {\n }\n /**\n * Returns constant noop value recorder.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n NoopMeter.prototype.createValueRecorder = function (name, options) {\n return exports.NOOP_VALUE_RECORDER_METRIC;\n };\n /**\n * Returns a constant noop counter.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n NoopMeter.prototype.createCounter = function (name, options) {\n return exports.NOOP_COUNTER_METRIC;\n };\n /**\n * Returns a constant noop UpDownCounter.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n NoopMeter.prototype.createUpDownCounter = function (name, options) {\n return exports.NOOP_COUNTER_METRIC;\n };\n /**\n * Returns constant noop value observer.\n * @param name the name of the metric.\n * @param [options] the metric options.\n * @param [callback] the value observer callback\n */\n NoopMeter.prototype.createValueObserver = function (name, options, callback) {\n return exports.NOOP_VALUE_OBSERVER_METRIC;\n };\n /**\n * Returns constant noop batch observer.\n * @param name the name of the metric.\n * @param callback the batch observer callback\n */\n NoopMeter.prototype.createBatchObserver = function (name, callback) {\n return exports.NOOP_BATCH_OBSERVER_METRIC;\n };\n return NoopMeter;\n}());\nexports.NoopMeter = NoopMeter;\nvar NoopMetric = /** @class */ (function () {\n function NoopMetric(instrument) {\n this._instrument = instrument;\n }\n /**\n * Returns a Bound Instrument associated with specified Labels.\n * It is recommended to keep a reference to the Bound Instrument instead of\n * always calling this method for every operations.\n * @param labels key-values pairs that are associated with a specific metric\n * that you want to record.\n */\n NoopMetric.prototype.bind = function (labels) {\n return this._instrument;\n };\n /**\n * Removes the Binding from the metric, if it is present.\n * @param labels key-values pairs that are associated with a specific metric.\n */\n NoopMetric.prototype.unbind = function (labels) {\n return;\n };\n /**\n * Clears all timeseries from the Metric.\n */\n NoopMetric.prototype.clear = function () {\n return;\n };\n return NoopMetric;\n}());\nexports.NoopMetric = NoopMetric;\nvar NoopCounterMetric = /** @class */ (function (_super) {\n __extends(NoopCounterMetric, _super);\n function NoopCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopCounterMetric.prototype.add = function (value, labels) {\n this.bind(labels).add(value);\n };\n return NoopCounterMetric;\n}(NoopMetric));\nexports.NoopCounterMetric = NoopCounterMetric;\nvar NoopValueRecorderMetric = /** @class */ (function (_super) {\n __extends(NoopValueRecorderMetric, _super);\n function NoopValueRecorderMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopValueRecorderMetric.prototype.record = function (value, labels, correlationContext, spanContext) {\n if (typeof correlationContext === 'undefined') {\n this.bind(labels).record(value);\n }\n else if (typeof spanContext === 'undefined') {\n this.bind(labels).record(value, correlationContext);\n }\n else {\n this.bind(labels).record(value, correlationContext, spanContext);\n }\n };\n return NoopValueRecorderMetric;\n}(NoopMetric));\nexports.NoopValueRecorderMetric = NoopValueRecorderMetric;\nvar NoopBaseObserverMetric = /** @class */ (function (_super) {\n __extends(NoopBaseObserverMetric, _super);\n function NoopBaseObserverMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopBaseObserverMetric.prototype.observation = function () {\n return {\n observer: this,\n value: 0,\n };\n };\n return NoopBaseObserverMetric;\n}(NoopMetric));\nexports.NoopBaseObserverMetric = NoopBaseObserverMetric;\nvar NoopBatchObserverMetric = /** @class */ (function (_super) {\n __extends(NoopBatchObserverMetric, _super);\n function NoopBatchObserverMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopBatchObserverMetric;\n}(NoopMetric));\nexports.NoopBatchObserverMetric = NoopBatchObserverMetric;\nvar NoopBoundCounter = /** @class */ (function () {\n function NoopBoundCounter() {\n }\n NoopBoundCounter.prototype.add = function (value) {\n return;\n };\n return NoopBoundCounter;\n}());\nexports.NoopBoundCounter = NoopBoundCounter;\nvar NoopBoundValueRecorder = /** @class */ (function () {\n function NoopBoundValueRecorder() {\n }\n NoopBoundValueRecorder.prototype.record = function (value, correlationContext, spanContext) {\n return;\n };\n return NoopBoundValueRecorder;\n}());\nexports.NoopBoundValueRecorder = NoopBoundValueRecorder;\nvar NoopBoundBaseObserver = /** @class */ (function () {\n function NoopBoundBaseObserver() {\n }\n NoopBoundBaseObserver.prototype.update = function (value) { };\n return NoopBoundBaseObserver;\n}());\nexports.NoopBoundBaseObserver = NoopBoundBaseObserver;\nexports.NOOP_METER = new NoopMeter();\nexports.NOOP_BOUND_COUNTER = new NoopBoundCounter();\nexports.NOOP_COUNTER_METRIC = new NoopCounterMetric(exports.NOOP_BOUND_COUNTER);\nexports.NOOP_BOUND_VALUE_RECORDER = new NoopBoundValueRecorder();\nexports.NOOP_VALUE_RECORDER_METRIC = new NoopValueRecorderMetric(exports.NOOP_BOUND_VALUE_RECORDER);\nexports.NOOP_BOUND_BASE_OBSERVER = new NoopBoundBaseObserver();\nexports.NOOP_VALUE_OBSERVER_METRIC = new NoopBaseObserverMetric(exports.NOOP_BOUND_BASE_OBSERVER);\nexports.NOOP_UP_DOWN_SUM_OBSERVER_METRIC = new NoopBaseObserverMetric(exports.NOOP_BOUND_BASE_OBSERVER);\nexports.NOOP_SUM_OBSERVER_METRIC = new NoopBaseObserverMetric(exports.NOOP_BOUND_BASE_OBSERVER);\nexports.NOOP_BATCH_OBSERVER_METRIC = new NoopBatchObserverMetric();\n//# sourceMappingURL=NoopMeter.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_METER_PROVIDER = exports.NoopMeterProvider = void 0;\nvar NoopMeter_1 = require(\"./NoopMeter\");\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nvar NoopMeterProvider = /** @class */ (function () {\n function NoopMeterProvider() {\n }\n NoopMeterProvider.prototype.getMeter = function (_name, _version) {\n return NoopMeter_1.NOOP_METER;\n };\n return NoopMeterProvider;\n}());\nexports.NoopMeterProvider = NoopMeterProvider;\nexports.NOOP_METER_PROVIDER = new NoopMeterProvider();\n//# sourceMappingURL=NoopMeterProvider.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_SPAN = exports.NoopSpan = exports.INVALID_SPAN_ID = exports.INVALID_TRACE_ID = void 0;\nvar trace_flags_1 = require(\"./trace_flags\");\nexports.INVALID_TRACE_ID = '0';\nexports.INVALID_SPAN_ID = '0';\nvar INVALID_SPAN_CONTEXT = {\n traceId: exports.INVALID_TRACE_ID,\n spanId: exports.INVALID_SPAN_ID,\n traceFlags: trace_flags_1.TraceFlags.NONE,\n};\n/**\n * The NoopSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nvar NoopSpan = /** @class */ (function () {\n function NoopSpan(_spanContext) {\n if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; }\n this._spanContext = _spanContext;\n }\n // Returns a SpanContext.\n NoopSpan.prototype.context = function () {\n return this._spanContext;\n };\n // By default does nothing\n NoopSpan.prototype.setAttribute = function (key, value) {\n return this;\n };\n // By default does nothing\n NoopSpan.prototype.setAttributes = function (attributes) {\n return this;\n };\n // By default does nothing\n NoopSpan.prototype.addEvent = function (name, attributes) {\n return this;\n };\n // By default does nothing\n NoopSpan.prototype.setStatus = function (status) {\n return this;\n };\n // By default does nothing\n NoopSpan.prototype.updateName = function (name) {\n return this;\n };\n // By default does nothing\n NoopSpan.prototype.end = function (endTime) { };\n // isRecording always returns false for noopSpan.\n NoopSpan.prototype.isRecording = function () {\n return false;\n };\n return NoopSpan;\n}());\nexports.NoopSpan = NoopSpan;\nexports.NOOP_SPAN = new NoopSpan();\n//# sourceMappingURL=NoopSpan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceFlags = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar TraceFlags;\n(function (TraceFlags) {\n /** Represents no flag set. */\n TraceFlags[TraceFlags[\"NONE\"] = 0] = \"NONE\";\n /** Bit to represent whether trace is sampled in trace flags. */\n TraceFlags[TraceFlags[\"SAMPLED\"] = 1] = \"SAMPLED\";\n})(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {}));\n//# sourceMappingURL=trace_flags.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_TRACER = exports.NoopTracer = void 0;\nvar NoopSpan_1 = require(\"./NoopSpan\");\n/**\n * No-op implementations of {@link Tracer}.\n */\nvar NoopTracer = /** @class */ (function () {\n function NoopTracer() {\n }\n NoopTracer.prototype.getCurrentSpan = function () {\n return NoopSpan_1.NOOP_SPAN;\n };\n // startSpan starts a noop span.\n NoopTracer.prototype.startSpan = function (name, options) {\n return NoopSpan_1.NOOP_SPAN;\n };\n NoopTracer.prototype.withSpan = function (span, fn) {\n return fn();\n };\n NoopTracer.prototype.bind = function (target, span) {\n return target;\n };\n return NoopTracer;\n}());\nexports.NoopTracer = NoopTracer;\nexports.NOOP_TRACER = new NoopTracer();\n//# sourceMappingURL=NoopTracer.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_TRACER_PROVIDER = exports.NoopTracerProvider = void 0;\nvar NoopTracer_1 = require(\"./NoopTracer\");\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nvar NoopTracerProvider = /** @class */ (function () {\n function NoopTracerProvider() {\n }\n NoopTracerProvider.prototype.getTracer = function (_name, _version) {\n return NoopTracer_1.NOOP_TRACER;\n };\n return NoopTracerProvider;\n}());\nexports.NoopTracerProvider = NoopTracerProvider;\nexports.NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n//# sourceMappingURL=NoopTracerProvider.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Context = /** @class */ (function () {\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n function Context(parentContext) {\n this._currentContext = parentContext ? new Map(parentContext) : new Map();\n }\n /** Get a key to uniquely identify a context value */\n Context.createKey = function (description) {\n return Symbol(description);\n };\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n Context.prototype.getValue = function (key) {\n return this._currentContext.get(key);\n };\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n Context.prototype.setValue = function (key, value) {\n var context = new Context(this._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n Context.prototype.deleteValue = function (key) {\n var context = new Context(this._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n /** The root context is used as the default parent context when there is no active context */\n Context.ROOT_CONTEXT = new Context();\n /**\n * This is another identifier to the root context which allows developers to easily search the\n * codebase for direct uses of context which need to be removed in later PRs.\n *\n * It's existence is temporary and it should be removed when all references are fixed.\n */\n Context.TODO = Context.ROOT_CONTEXT;\n return Context;\n}());\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextAPI = void 0;\nvar context_base_1 = require(\"@opentelemetry/context-base\");\nvar global_utils_1 = require(\"./global-utils\");\nvar NOOP_CONTEXT_MANAGER = new context_base_1.NoopContextManager();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nvar ContextAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function ContextAPI() {\n }\n /** Get the singleton instance of the Context API */\n ContextAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n return this._instance;\n };\n /**\n * Set the current context manager. Returns the initialized context manager\n */\n ContextAPI.prototype.setGlobalContextManager = function (contextManager) {\n if (global_utils_1._global[global_utils_1.GLOBAL_CONTEXT_MANAGER_API_KEY]) {\n // global context manager has already been set\n return this._getContextManager();\n }\n global_utils_1._global[global_utils_1.GLOBAL_CONTEXT_MANAGER_API_KEY] = global_utils_1.makeGetter(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, contextManager, NOOP_CONTEXT_MANAGER);\n return contextManager;\n };\n /**\n * Get the currently active context\n */\n ContextAPI.prototype.active = function () {\n return this._getContextManager().active();\n };\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n */\n ContextAPI.prototype.with = function (context, fn) {\n return this._getContextManager().with(context, fn);\n };\n /**\n * Bind a context to a target function or event emitter\n *\n * @param target function or event emitter to bind\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n */\n ContextAPI.prototype.bind = function (target, context) {\n if (context === void 0) { context = this.active(); }\n return this._getContextManager().bind(target, context);\n };\n ContextAPI.prototype._getContextManager = function () {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_CONTEXT_MANAGER_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : NOOP_CONTEXT_MANAGER);\n };\n /** Disable and remove the global context manager */\n ContextAPI.prototype.disable = function () {\n this._getContextManager().disable();\n delete global_utils_1._global[global_utils_1.GLOBAL_CONTEXT_MANAGER_API_KEY];\n };\n return ContextAPI;\n}());\nexports.ContextAPI = ContextAPI;\n//# sourceMappingURL=context.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","'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","/*! @azure/msal-browser v2.14.0 2021-04-14 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\nvar __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\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __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}\n\n/*! @azure/msal-common v4.2.0 2021-04-14 */\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics$1 = function(d, b) {\r\n extendStatics$1 = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics$1(d, b);\r\n};\r\n\r\nfunction __extends$1(d, b) {\r\n extendStatics$1(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\nvar __assign$1 = function() {\r\n __assign$1 = 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$1.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator$1(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\nfunction __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}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n FORWARD_SLASH: \"/\"\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n HeaderNames[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n HeaderNames[\"X_MS_LIB_CAPABILITY_VALUE\"] = \"retry-after, h429\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\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 */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar 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[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * Disallowed extra query parameters.\r\n */\r\nvar BlacklistedEQParams = [\r\n SSOTypes.SID,\r\n SSOTypes.LOGIN_HINT\r\n];\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CacheSchemaType;\r\n(function (CacheSchemaType) {\r\n CacheSchemaType[\"ACCOUNT\"] = \"Account\";\r\n CacheSchemaType[\"CREDENTIAL\"] = \"Credential\";\r\n CacheSchemaType[\"ID_TOKEN\"] = \"IdToken\";\r\n CacheSchemaType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CacheSchemaType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n CacheSchemaType[\"APP_METADATA\"] = \"AppMetadata\";\r\n CacheSchemaType[\"TEMPORARY\"] = \"TempCache\";\r\n CacheSchemaType[\"TELEMETRY\"] = \"Telemetry\";\r\n CacheSchemaType[\"UNDEFINED\"] = \"Undefined\";\r\n CacheSchemaType[\"THROTTLING\"] = \"Throttling\";\r\n})(CacheSchemaType || (CacheSchemaType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar ClientInfo = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 2,\r\n MAX_HEADER_BYTES: 4000,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\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 __extends$1(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || \"\";\r\n _this.subError = suberror || \"\";\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator$1(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator$1(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator$1(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\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 clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\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 networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Srver response does not contain an authorization code to proceed\"\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 __extends$1(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 /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\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 /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n ClientAuthError.createNoTokensFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noTokensFoundError.code, ClientAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function (givenScopeSet) {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, ClientAuthErrorMessage.emptyInputScopeSetError.desc + \" Given ScopeSet: \" + givenScopeSet);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\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 StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\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 * 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 StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = 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(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 /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\"));\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar 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\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () { };\r\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\r\n this.level = loggerOptions.logLevel || LogLevel.Info;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n var logHeader = StringUtils.isEmpty(this.correlationId) ? \"[\" + timestamp + \"] : \" : \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\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 * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"4.2.0\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -----\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * oboAssertion: access token passed in as part of OBO request\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * helper function to return `CredentialType`\r\n * @param key\r\n */\r\n CredentialEntity.getCredentialType = function (key) {\r\n // First keyword search will match all \"AccessToken\" and \"AccessToken_With_AuthScheme\" credentials\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) !== -1) {\r\n // Perform second search to differentiate between \"AccessToken\" and \"AccessToken_With_AuthScheme\" credential types\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) !== -1) {\r\n return CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n }\r\n return CredentialType.ACCESS_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.ID_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.ID_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.REFRESH_TOKEN;\r\n }\r\n return Constants.NOT_DEFINED;\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || \"\",\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || \"\").toLowerCase();\r\n };\r\n return CredentialEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\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 authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent' and 'none'. Please see here for valid configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a JSON object containing authorization_endpoint, token_endpoint, end_session_endpoint, issuer fields.\"\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.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends$1(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 /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\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 /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are not an array\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createScopesNonArrayError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.nonArrayScopesError.code, ClientConfigurationErrorMessage.nonArrayScopesError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, ClientConfigurationErrorMessage.emptyScopesError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\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 /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n inputScopeString = inputScopeString || \"\";\r\n var inputScopes = inputScopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - 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 */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError(inputScopes);\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError(otherScopes);\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError(otherScopes);\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e);\r\n }\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * oboAssertion: access token passed in as part of OBO request\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || \"\",\r\n accountInterface.tenantId || \"\",\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, authority, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || \"\";\r\n account.oboAssertion = oboAssertion;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || \"\";\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\r\n * This field should not be relied upon if a custom policy is configured to return more than 1 email.\r\n */\r\n account.username = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username) || (((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : \"\");\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (authority, homeAccountId, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = \"\";\r\n account.oboAssertion = oboAssertion;\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || \"\";\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || \"\";\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || \"\";\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accounts are equal\r\n * Used to avoid unnecessary state updates\r\n * @param arrayA\r\n * @param arrayB\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment);\r\n };\r\n return AccountEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var currentAccounts = this.getAccountsFilteredBy();\r\n var accountValues = Object.keys(currentAccounts).map(function (accountKey) { return currentAccounts[accountKey]; });\r\n var numAccounts = accountValues.length;\r\n if (numAccounts < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountValues.map(function (value) {\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), value);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = _this.readIdTokenFromCache(_this.clientId, accountInfo);\r\n if (idToken && !accountInfo.idTokenClaims) {\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, _this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!cacheRecord.accessToken) {\r\n this.saveAccessToken(cacheRecord.accessToken);\r\n }\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n var _this = this;\r\n var currentTokenCache = this.getCredentialsFilteredBy({\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n });\r\n var currentScopes = ScopeSet.fromString(credential.target);\r\n var currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });\r\n if (currentAccessTokens) {\r\n currentAccessTokens.forEach(function (tokenEntity) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n _this.removeCredential(tokenEntity);\r\n }\r\n });\r\n }\r\n this.setAccessTokenCredential(credential);\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : \"\", accountFilter ? accountFilter.environment : \"\", accountFilter ? accountFilter.realm : \"\");\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredByInternal = function (homeAccountId, environment, realm) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAccounts = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n matchingAccounts[cacheKey] = entity;\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * retrieve credentails matching all provided filters; if no filter is set, get all credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredBy = function (filter) {\r\n return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion);\r\n };\r\n /**\r\n * Support function to help match credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingCredentials = {\r\n idTokens: {},\r\n accessTokens: {},\r\n refreshTokens: {},\r\n };\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!oboAssertion && !_this.matchOboAssertion(entity, oboAssertion)) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n if (!!credentialType && !_this.matchCredentialType(entity, credentialType)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n if (!!familyId && !_this.matchFamilyId(entity, familyId)) {\r\n return;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!target && !_this.matchTarget(entity, target)) {\r\n return;\r\n }\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN:\r\n matchingCredentials.idTokens[cacheKey] = entity;\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n matchingCredentials.accessTokens[cacheKey] = entity;\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n matchingCredentials.refreshTokens[cacheKey] = entity;\r\n break;\r\n }\r\n });\r\n return matchingCredentials;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n _this.removeAccount(cacheKey);\r\n });\r\n return true;\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n var account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return (this.removeAccountContext(account) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT));\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var accountId = account.generateAccountId();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n var cacheEntity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\r\n _this.removeCredential(cacheEntity);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeCredential = function (credential) {\r\n var key = credential.generateCredentialKey();\r\n return this.removeItem(key, CacheSchemaType.CREDENTIAL);\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, clientId, scopes, environment, authScheme) {\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.readIdTokenFromCache(clientId, account);\r\n var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, scopes, authScheme);\r\n var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.readIdTokenFromCache = function (clientId, account) {\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(idTokenFilter);\r\n var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return idTokens[0];\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, scopes, authScheme) {\r\n var credentialType = (authScheme === AuthenticationScheme.POP) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n target: scopes.printScopesLowerCase(),\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.readRefreshTokenFromCache = function (clientId, account, familyRT) {\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: clientId,\r\n familyId: id\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\r\n var refreshTokens = Object.keys(credentialCache.refreshTokens).map(function (key) { return credentialCache.refreshTokens[key]; });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment, clientId) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment, clientId) {\r\n var appMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchOboAssertion = function (entity, oboAssertion) {\r\n return !!(entity.oboAssertion && oboAssertion === entity.oboAssertion);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n var requestTargetScopeSet = ScopeSet.fromString(target);\r\n if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\r\n requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\r\n }\r\n else {\r\n requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return entityScopeSet.containsScopeSet(requestTargetScopeSet);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\r\n * @param key\r\n * @param credType\r\n */\r\n CacheManager.prototype.getSpecificCredential = function (key, credType) {\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN: {\r\n return this.getIdTokenCredential(key);\r\n }\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\r\n return this.getAccessTokenCredential(key);\r\n }\r\n case CredentialType.REFRESH_TOKEN: {\r\n return this.getRefreshTokenCredential(key);\r\n }\r\n default:\r\n return null;\r\n }\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends$1(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n var notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator$1(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator$1(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: \"\",\r\n os: \"\"\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: \"\",\r\n clientAssertion: undefined\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign$1(__assign$1({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: __assign$1(__assign$1({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption),\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign$1(__assign$1({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign$1({ clientCapabilities: [] }, authOptions);\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\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 __extends$1(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n if (throttleTime <= 0) {\r\n throttleTime = 0;\r\n }\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (throttleTime || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, authority, scopes, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: authority,\r\n scopes: scopes,\r\n homeAccountIdentifier: homeAccountIdentifier\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createDefaultTokenRequestHeaders = function () {\r\n var headers = this.createDefaultLibraryHeaders();\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n headers[HeaderNames.X_MS_LIB_CAPABILITY] = HeaderNames.X_MS_LIB_CAPABILITY_VALUE;\r\n if (this.serverTelemetryManager) {\r\n headers[HeaderNames.X_CLIENT_CURR_TELEM] = this.serverTelemetryManager.generateCurrentRequestHeaderValue();\r\n headers[HeaderNames.X_CLIENT_LAST_TELEM] = this.serverTelemetryManager.generateLastRequestHeaderValue();\r\n }\r\n return headers;\r\n };\r\n /**\r\n * addLibraryData\r\n */\r\n BaseClient.prototype.createDefaultLibraryHeaders = function () {\r\n var headers = {};\r\n // client info headers\r\n headers[AADServerParamKeys.X_CLIENT_SKU] = this.config.libraryInfo.sku;\r\n headers[AADServerParamKeys.X_CLIENT_VER] = this.config.libraryInfo.version;\r\n headers[AADServerParamKeys.X_CLIENT_OS] = this.config.libraryInfo.os;\r\n headers[AADServerParamKeys.X_CLIENT_CPU] = this.config.libraryInfo.cpu;\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var response;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n return BaseClient;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n if ([\r\n PromptValue.LOGIN,\r\n PromptValue.SELECT_ACCOUNT,\r\n PromptValue.CONSENT,\r\n PromptValue.NONE\r\n ].indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n return eQParams;\r\n };\r\n return RequestValidator;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(ClientInfo, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQparams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {\r\n var _this = this;\r\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\r\n Object.keys(eQparams).forEach(function (key) {\r\n _this.parameters.set(key, eQparams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, username);\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, password);\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends$1(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId, oboAssertion) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n idTokenEntity.oboAssertion = oboAssertion;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n return TimeUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends$1(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, oboAssertion) {\r\n var _a;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.oboAssertion = oboAssertion;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n // Create Access Token With AuthScheme instead of regular access token\r\n if (atEntity.tokenType === AuthenticationScheme.POP) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends$1(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, oboAssertion) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.oboAssertion = oboAssertion;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar InteractionRequiredAuthErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Error thrown when user interaction is required at the auth server.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends$1(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n return _this;\r\n }\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredAuthErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredAuthErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n return InteractionRequiredAuthError;\r\n}(ServerError));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = decodeURIComponent(state).split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n url = url.toLowerCase();\r\n if (StringUtils.endsWith(url, \"?\")) {\r\n url = url.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(url, \"?/\")) {\r\n url = url.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(url, \"/\")) {\r\n url += \"/\";\r\n }\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Function to remove query string params from url. Returns the new url.\r\n * @param url\r\n * @param name\r\n */\r\n UrlString.prototype.urlRemoveQueryStringParameter = function (name) {\r\n var regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value&\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n return this.urlString;\r\n };\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(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 UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\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 UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\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 (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return \"\";\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash)) {\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils) {\r\n this.cryptoUtils = cryptoUtils;\r\n }\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var kidThumbprint, reqCnf;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _a.sent();\r\n reqCnf = {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n };\r\n return [2 /*return*/, this.cryptoUtils.base64Encode(JSON.stringify(reqCnf))];\r\n }\r\n });\r\n });\r\n };\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, request) {\r\n var _a;\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var tokenClaims, resourceRequestMethod, resourceRequestUri, shrClaims, resourceUrlString, resourceUrlComponents;\r\n return __generator$1(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n tokenClaims = AuthToken.extractTokenClaims(accessToken, this.cryptoUtils);\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n return [4 /*yield*/, this.cryptoUtils.signJwt({\r\n at: accessToken,\r\n ts: \"\" + TimeUtils.nowSeconds(),\r\n m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(),\r\n u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort,\r\n nonce: this.cryptoUtils.createNewGuid(),\r\n p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath,\r\n q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined,\r\n client_claims: shrClaims || undefined\r\n }, tokenClaims.cnf.kid)];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, oboAssertion, handlingRefreshTokenResponse) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var idTokenObj, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, idTokenObj, request.scopes, oboAssertion, authCodePayload);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 4, 7]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal.\r\n */\r\n if (handlingRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n }\r\n }\r\n this.cacheStorage.saveCacheRecord(cacheRecord);\r\n return [3 /*break*/, 7];\r\n case 4:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 6];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [7 /*endfinally*/];\r\n case 7: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, idTokenObj, requestScopes, oboAssertion, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING, oboAssertion);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, oboAssertion, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(requestScopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, oboAssertion);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, oboAssertion);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, oboAssertion, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : \"\";\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : \"\";\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, authority, idToken, oboAssertion, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState) {\r\n var _a, _b, _c;\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, uid, tid;\r\n return __generator$1(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n accessToken = \"\";\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(cacheRecord.accessToken.secret, request)];\r\n case 1:\r\n accessToken = _d.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _d.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _d.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends$1(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator$1(this, function (_a) {\r\n queryString = this.createAuthCodeUrlQueryString(request);\r\n return [2 /*return*/, this.authority.authorizationEndpoint + \"?\" + queryString];\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.info(\"in acquireToken call\");\r\n if (!request || StringUtils.isEmpty(request.code)) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign$1(__assign$1({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\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 * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n if (logoutRequest.account) {\r\n // Clear given account.\r\n this.cacheManager.removeAccount(AccountEntity.generateAccountCacheKey(logoutRequest.account));\r\n }\r\n else {\r\n // Clear all accounts and tokens\r\n this.cacheManager.clear();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI.\r\n return StringUtils.isEmpty(queryString) ? this.authority.endSessionEndpoint : this.authority.endSessionEndpoint + \"?\" + queryString;\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var thumbprint, requestBody, queryParameters, headers, endpoint;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes\r\n };\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : authority.tokenEndpoint + \"?\" + queryParameters;\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, cnfString, correlationId;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n cnfString = _a.sent();\r\n parameterBuilder.addPopToken(cnfString);\r\n _a.label = 2;\r\n case 2:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n var requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n // generate the correlationId if not set by the user and add\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n var accountSid = this.extractAccountSid(request.account);\r\n // If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n if (accountSid && request.prompt === PromptValue.NONE) {\r\n // SessionId is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n if (account.idTokenClaims) {\r\n var tokenClaims = account.idTokenClaims;\r\n return tokenClaims.sid || null;\r\n }\r\n return null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 Device code client\r\n */\r\nvar DeviceCodeClient = /** @class */ (function (_super) {\r\n __extends$1(DeviceCodeClient, _super);\r\n function DeviceCodeClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Gets device code from device code endpoint, calls back to with device code response, and\r\n * polls token endpoint to exchange device code for tokens\r\n * @param request\r\n */\r\n DeviceCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var deviceCodeResponse, reqTimestamp, response, responseHandler;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getDeviceCode(request)];\r\n case 1:\r\n deviceCodeResponse = _a.sent();\r\n request.deviceCodeCallback(deviceCodeResponse);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.acquireTokenWithDeviceCode(request, deviceCodeResponse)];\r\n case 2:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response, this.authority, reqTimestamp, request)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates device code request and executes http GET\r\n * @param request\r\n */\r\n DeviceCodeClient.prototype.getDeviceCode = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var queryString, headers, thumbprint;\r\n return __generator$1(this, function (_a) {\r\n queryString = this.createQueryString(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: request.authority,\r\n scopes: request.scopes\r\n };\r\n return [2 /*return*/, this.executePostRequestToDeviceCodeEndpoint(this.authority.deviceCodeEndpoint, queryString, headers, thumbprint)];\r\n });\r\n });\r\n };\r\n /**\r\n * Executes POST request to device code endpoint\r\n * @param deviceCodeEndpoint\r\n * @param queryString\r\n * @param headers\r\n */\r\n DeviceCodeClient.prototype.executePostRequestToDeviceCodeEndpoint = function (deviceCodeEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var _a, userCode, deviceCode, verificationUri, expiresIn, interval, message;\r\n return __generator$1(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, deviceCodeEndpoint, {\r\n body: queryString,\r\n headers: headers\r\n })];\r\n case 1:\r\n _a = (_b.sent()).body, userCode = _a.user_code, deviceCode = _a.device_code, verificationUri = _a.verification_uri, expiresIn = _a.expires_in, interval = _a.interval, message = _a.message;\r\n return [2 /*return*/, {\r\n userCode: userCode,\r\n deviceCode: deviceCode,\r\n verificationUri: verificationUri,\r\n expiresIn: expiresIn,\r\n interval: interval,\r\n message: message\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create device code endpoint query parameters and returns string\r\n */\r\n DeviceCodeClient.prototype.createQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Creates token request with device code response and polls token endpoint at interval set by the device code\r\n * response\r\n * @param request\r\n * @param deviceCodeResponse\r\n */\r\n DeviceCodeClient.prototype.acquireTokenWithDeviceCode = function (request, deviceCodeResponse) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var requestBody, headers, userSpecifiedTimeout, deviceCodeExpirationTime, pollingIntervalMilli;\r\n var _this = this;\r\n return __generator$1(this, function (_a) {\r\n requestBody = this.createTokenRequestBody(request, deviceCodeResponse);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n userSpecifiedTimeout = request.timeout ? TimeUtils.nowSeconds() + request.timeout : undefined;\r\n deviceCodeExpirationTime = TimeUtils.nowSeconds() + deviceCodeResponse.expiresIn;\r\n pollingIntervalMilli = deviceCodeResponse.interval * 1000;\r\n /*\r\n * Poll token endpoint while (device code is not expired AND operation has not been cancelled by\r\n * setting CancellationToken.cancel = true). POST request is sent at interval set by pollingIntervalMilli\r\n */\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var intervalId = setInterval(function () { return __awaiter$1(_this, void 0, void 0, function () {\r\n var thumbprint, response, error_1;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 6, , 7]);\r\n if (!request.cancel) return [3 /*break*/, 1];\r\n this.logger.error(\"Token request cancelled by setting DeviceCodeRequest.cancel = true\");\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createDeviceCodeCancelledError());\r\n return [3 /*break*/, 5];\r\n case 1:\r\n if (!(userSpecifiedTimeout && userSpecifiedTimeout < deviceCodeExpirationTime && TimeUtils.nowSeconds() > userSpecifiedTimeout)) return [3 /*break*/, 2];\r\n this.logger.error(\"User defined timeout for device code polling reached. The timeout was set for \" + userSpecifiedTimeout);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createUserTimeoutReachedError());\r\n return [3 /*break*/, 5];\r\n case 2:\r\n if (!(TimeUtils.nowSeconds() > deviceCodeExpirationTime)) return [3 /*break*/, 3];\r\n if (userSpecifiedTimeout) {\r\n this.logger.verbose(\"User specified timeout ignored as the device code has expired before the timeout elapsed. The user specified timeout was set for \" + userSpecifiedTimeout);\r\n }\r\n this.logger.error(\"Device code expired. Expiration time of device code was \" + deviceCodeExpirationTime);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createDeviceCodeExpiredError());\r\n return [3 /*break*/, 5];\r\n case 3:\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: request.authority,\r\n scopes: request.scopes\r\n };\r\n return [4 /*yield*/, this.executePostToTokenEndpoint(this.authority.tokenEndpoint, requestBody, headers, thumbprint)];\r\n case 4:\r\n response = _a.sent();\r\n if (response.body && response.body.error === Constants.AUTHORIZATION_PENDING) {\r\n // user authorization is pending. Sleep for polling interval and try again\r\n this.logger.info(response.body.error_description || \"no_error_description\");\r\n }\r\n else {\r\n clearInterval(intervalId);\r\n resolve(response.body);\r\n }\r\n _a.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n error_1 = _a.sent();\r\n clearInterval(intervalId);\r\n reject(error_1);\r\n return [3 /*break*/, 7];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n }); }, pollingIntervalMilli);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query parameters and converts to string.\r\n * @param request\r\n * @param deviceCodeResponse\r\n */\r\n DeviceCodeClient.prototype.createTokenRequestBody = function (request, deviceCodeResponse) {\r\n var requestParameters = new RequestParameterBuilder();\r\n requestParameters.addScopes(request.scopes);\r\n requestParameters.addClientId(this.config.authOptions.clientId);\r\n requestParameters.addGrantType(GrantType.DEVICE_CODE_GRANT);\r\n requestParameters.addDeviceCode(deviceCodeResponse.deviceCode);\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n requestParameters.addCorrelationId(correlationId);\r\n requestParameters.addClientInfo();\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n requestParameters.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return requestParameters.createQueryString();\r\n };\r\n return DeviceCodeClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends$1(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator$1(this, function (_a) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof ClientAuthError && e.errorCode === ClientAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var refreshToken, refreshTokenRequest;\r\n return __generator$1(this, function (_a) {\r\n refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\r\n // no refresh Token\r\n if (!refreshToken) {\r\n throw ClientAuthError.createNoTokensFoundError();\r\n }\r\n refreshTokenRequest = __assign$1(__assign$1({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER });\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var requestBody, queryParameters, headers, thumbprint, endpoint;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes\r\n };\r\n endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : authority.tokenEndpoint + \"?\" + queryParameters;\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var parameterBuilder, correlationId, clientAssertion, popTokenGenerator, _a, _b;\r\n return __generator$1(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n _b = (_a = parameterBuilder).addPopToken;\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n _b.apply(_a, [_c.sent()]);\r\n _c.label = 2;\r\n case 2:\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 client credential grant\r\n */\r\nvar ClientCredentialClient = /** @class */ (function (_super) {\r\n __extends$1(ClientCredentialClient, _super);\r\n function ClientCredentialClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Public API to acquire a token with ClientCredential Flow for Confidential clients\r\n * @param request\r\n */\r\n ClientCredentialClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var cachedAuthenticationResult;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.scopeSet = new ScopeSet(request.scopes || []);\r\n if (!request.skipCache) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [4 /*yield*/, this.getCachedAuthenticationResult(request)];\r\n case 3:\r\n cachedAuthenticationResult = _a.sent();\r\n if (!cachedAuthenticationResult) return [3 /*break*/, 4];\r\n return [2 /*return*/, cachedAuthenticationResult];\r\n case 4: return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * looks up cache if the tokens are cached already\r\n */\r\n ClientCredentialClient.prototype.getCachedAuthenticationResult = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var cachedAccessToken;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedAccessToken = this.readAccessTokenFromCache();\r\n if (!cachedAccessToken ||\r\n TimeUtils.isTokenExpired(cachedAccessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, {\r\n account: null,\r\n idToken: null,\r\n accessToken: cachedAccessToken,\r\n refreshToken: null,\r\n appMetadata: null\r\n }, true, request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Reads access token from the cache\r\n * TODO: Move this call to cacheManager instead\r\n */\r\n ClientCredentialClient.prototype.readAccessTokenFromCache = function () {\r\n var accessTokenFilter = {\r\n homeAccountId: \"\",\r\n environment: this.authority.canonicalAuthorityUrlComponents.HostNameAndPort,\r\n credentialType: CredentialType.ACCESS_TOKEN,\r\n clientId: this.config.authOptions.clientId,\r\n realm: this.authority.tenant,\r\n target: this.scopeSet.printScopesLowerCase()\r\n };\r\n var credentialCache = this.cacheManager.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n if (accessTokens.length < 1) {\r\n return null;\r\n }\r\n else if (accessTokens.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Makes a network call to request the token from the service\r\n * @param request\r\n * @param authority\r\n */\r\n ClientCredentialClient.prototype.executeTokenRequest = function (request, authority) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var requestBody, headers, thumbprint, reqTimestamp, response, responseHandler, tokenResponse;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requestBody = this.createTokenRequestBody(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: request.authority,\r\n scopes: request.scopes\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executePostToTokenEndpoint(authority.tokenEndpoint, requestBody, headers, thumbprint)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request)];\r\n case 2:\r\n tokenResponse = _a.sent();\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * generate the request to the server in the acceptable format\r\n * @param request\r\n */\r\n ClientCredentialClient.prototype.createTokenRequestBody = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes, false);\r\n parameterBuilder.addGrantType(GrantType.CLIENT_CREDENTIALS_GRANT);\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n var clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return ClientCredentialClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * On-Behalf-Of client\r\n */\r\nvar OnBehalfOfClient = /** @class */ (function (_super) {\r\n __extends$1(OnBehalfOfClient, _super);\r\n function OnBehalfOfClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Public API to acquire tokens with on behalf of flow\r\n * @param request\r\n */\r\n OnBehalfOfClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var cachedAuthenticationResult;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.scopeSet = new ScopeSet(request.scopes || []);\r\n if (!request.skipCache) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [4 /*yield*/, this.getCachedAuthenticationResult(request)];\r\n case 3:\r\n cachedAuthenticationResult = _a.sent();\r\n if (!cachedAuthenticationResult) return [3 /*break*/, 4];\r\n return [2 /*return*/, cachedAuthenticationResult];\r\n case 4: return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * look up cache for tokens\r\n * @param request\r\n */\r\n OnBehalfOfClient.prototype.getCachedAuthenticationResult = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var cachedAccessToken, cachedIdToken, idTokenObject, cachedAccount, localAccountId, accountInfo;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedAccessToken = this.readAccessTokenFromCache(request);\r\n if (!cachedAccessToken ||\r\n TimeUtils.isTokenExpired(cachedAccessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n return [2 /*return*/, null];\r\n }\r\n cachedIdToken = this.readIdTokenFromCache(request);\r\n cachedAccount = null;\r\n if (cachedIdToken) {\r\n idTokenObject = new AuthToken(cachedIdToken.secret, this.config.cryptoInterface);\r\n localAccountId = idTokenObject.claims.oid ? idTokenObject.claims.oid : idTokenObject.claims.sub;\r\n accountInfo = {\r\n homeAccountId: cachedIdToken.homeAccountId,\r\n environment: cachedIdToken.environment,\r\n tenantId: cachedIdToken.realm,\r\n username: Constants.EMPTY_STRING,\r\n localAccountId: localAccountId || \"\"\r\n };\r\n cachedAccount = this.readAccountFromCache(accountInfo);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, {\r\n account: cachedAccount,\r\n accessToken: cachedAccessToken,\r\n idToken: cachedIdToken,\r\n refreshToken: null,\r\n appMetadata: null\r\n }, true, request, idTokenObject)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * read access token from cache TODO: CacheManager API should be used here\r\n * @param request\r\n */\r\n OnBehalfOfClient.prototype.readAccessTokenFromCache = function (request) {\r\n var accessTokenFilter = {\r\n environment: this.authority.canonicalAuthorityUrlComponents.HostNameAndPort,\r\n credentialType: CredentialType.ACCESS_TOKEN,\r\n clientId: this.config.authOptions.clientId,\r\n realm: this.authority.tenant,\r\n target: this.scopeSet.printScopesLowerCase(),\r\n oboAssertion: request.oboAssertion\r\n };\r\n var credentialCache = this.cacheManager.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * read idtoken from cache TODO: CacheManager API should be used here instead\r\n * @param request\r\n */\r\n OnBehalfOfClient.prototype.readIdTokenFromCache = function (request) {\r\n var idTokenFilter = {\r\n environment: this.authority.canonicalAuthorityUrlComponents.HostNameAndPort,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: this.config.authOptions.clientId,\r\n realm: this.authority.tenant,\r\n oboAssertion: request.oboAssertion\r\n };\r\n var credentialCache = this.cacheManager.getCredentialsFilteredBy(idTokenFilter);\r\n var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n // When acquiring a token on behalf of an application, there might not be an id token in the cache\r\n if (idTokens.length < 1) {\r\n return null;\r\n }\r\n return idTokens[0];\r\n };\r\n /**\r\n * read account from cache, TODO: CacheManager API should be used here instead\r\n * @param account\r\n */\r\n OnBehalfOfClient.prototype.readAccountFromCache = function (account) {\r\n return this.cacheManager.readAccountFromCache(account);\r\n };\r\n /**\r\n * Make a network call to the server requesting credentials\r\n * @param request\r\n * @param authority\r\n */\r\n OnBehalfOfClient.prototype.executeTokenRequest = function (request, authority) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var requestBody, headers, thumbprint, reqTimestamp, response, responseHandler, tokenResponse;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requestBody = this.createTokenRequestBody(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: request.authority,\r\n scopes: request.scopes\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executePostToTokenEndpoint(authority.tokenEndpoint, requestBody, headers, thumbprint)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request)];\r\n case 2:\r\n tokenResponse = _a.sent();\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * generate a server request in accepable format\r\n * @param request\r\n */\r\n OnBehalfOfClient.prototype.createTokenRequestBody = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.JWT_BEARER);\r\n parameterBuilder.addClientInfo();\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRequestTokenUse(AADServerParamKeys.ON_BEHALF_OF);\r\n parameterBuilder.addOboAssertion(request.oboAssertion);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n var clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return OnBehalfOfClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends$1(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var requestScopes, environment, authScheme, cacheRecord;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n requestScopes = new ScopeSet(request.scopes || []);\r\n environment = request.authority || this.authority.getPreferredCache();\r\n authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, requestScopes, environment, authScheme);\r\n if (request.forceRefresh ||\r\n request.claims ||\r\n !cacheRecord.accessToken ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds) ||\r\n (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0))) {\r\n // Must refresh due to request parameters, or expired or non-existent access_token\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var idTokenObj;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Password grant client\r\n * Note: We are only supporting public clients for password grant and for purely testing purposes\r\n */\r\nvar UsernamePasswordClient = /** @class */ (function (_super) {\r\n __extends$1(UsernamePasswordClient, _super);\r\n function UsernamePasswordClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * API to acquire a token by passing the username and password to the service in exchage of credentials\r\n * password_grant\r\n * @param request\r\n */\r\n UsernamePasswordClient.prototype.acquireToken = function (request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler, tokenResponse;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.info(\"in acquireToken call\");\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n tokenResponse = responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n UsernamePasswordClient.prototype.executeTokenRequest = function (authority, request) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var thumbprint, requestBody, headers;\r\n return __generator$1(this, function (_a) {\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes\r\n };\r\n requestBody = this.createTokenRequestBody(request);\r\n headers = this.createDefaultTokenRequestHeaders();\r\n return [2 /*return*/, this.executePostToTokenEndpoint(authority.tokenEndpoint, requestBody, headers, thumbprint)];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n UsernamePasswordClient.prototype.createTokenRequestBody = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addUsername(request.username);\r\n parameterBuilder.addPassword(request.password);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.RESOURCE_OWNER_PASSWORD_GRANT);\r\n parameterBuilder.addClientInfo();\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return UsernamePasswordClient;\r\n}(BaseClient));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"end_session_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\"));\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"end_session_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\r\n return AuthorityType.Adfs;\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: true,\r\n configurable: true\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.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\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 /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\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, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\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 /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs || this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _a.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _a.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var metadata;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _a.sent();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n else {\r\n throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached authority metadata can be used for the requested authority\r\n * Protects against same domain different authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint)];\r\n case 1:\r\n response = _a.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 2:\r\n e_1 = _a.sent();\r\n return [2 /*return*/, null];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache and returns where the information was retrived from\r\n * @param cachedMetadata\r\n * @param newMetadata\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var metadata;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If The cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _a.sent();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n else {\r\n // Metadata could not be obtained from config, cache or network\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n try {\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n if (metadata) {\r\n return metadata;\r\n }\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n * @param networkInterface\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, match, response, metadata, e_2;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n match = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint)];\r\n case 2:\r\n response = _a.sent();\r\n metadata = isCloudInstanceDiscoveryResponse(response.body) ? response.body.metadata : [];\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n return [2 /*return*/, null];\r\n case 4:\r\n if (!match) {\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded \r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n return Authority;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\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 (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions) {\r\n return __awaiter$1(this, void 0, void 0, function () {\r\n var acquireTokenAuthority, e_1;\r\n return __generator$1(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\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 (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions);\r\n };\r\n return AuthorityFactory;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.forceRefresh = telemetryRequest.forceRefresh || false;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var forceRefreshInt = this.forceRefresh ? 1 : 0;\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + forceRefreshInt;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, request, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n POLL_INTERVAL_MS: 50,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.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 return MathUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\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 GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.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 MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\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 GuidGenerator.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 return GuidGenerator;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = \"\";\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n return BrowserStringUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = \"\";\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = 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 var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\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 emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentSSOInsufficientInfoError: {\r\n code: \"silent_sso_error\",\r\n desc: \"Silent SSO could not be completed - insufficient information was provided. Please provide either a loginHint or sid.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request in found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popUpWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popUpWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the login_hint, sid or account object is not provided in the ssoSilent API.\r\n */\r\n BrowserAuthError.createSilentSSOInsufficientInfoError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentSSOInsufficientInfoError.code, BrowserAuthErrorMessage.silentSSOInsufficientInfoError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto() {\r\n if (!(this.hasCryptoAPI())) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto or msCrypto object not available.\");\r\n }\r\n this._keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n return [2 /*return*/, this.hasIECrypto() ? this.getMSCryptoDigest(S256_HASH_ALG, data) : this.getSubtleCryptoDigest(S256_HASH_ALG, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n var cryptoObj = window[\"msCrypto\"] || window.crypto;\r\n if (!cryptoObj.getRandomValues) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"getRandomValues does not exist.\");\r\n }\r\n cryptoObj.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, (this.hasIECrypto() ?\r\n this.msCryptoGenerateKey(extractable, usages)\r\n : window.crypto.subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages))];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ? this.msCryptoExportJwk(key) : window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserCrypto.getJwkString(key);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoImportKey(keyBuffer, extractable, usages)\r\n : window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, this._keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoSign(key, data)\r\n : window.crypto.subtle.sign(this._keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasCryptoAPI = function () {\r\n return this.hasIECrypto() || this.hasBrowserCrypto();\r\n };\r\n /**\r\n * Checks whether IE crypto (AKA msCrypto) is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getSubtleCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getMSCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for generating a keypair\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoGenerateKey = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(_this._keygenAlgorithmOptions, extractable, usages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for exportKey\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.msCryptoExportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, \"\")\r\n .replace(/\\n/g, \"\")\r\n .replace(/\\t/g, \"\")\r\n .split(\" \").join(\"\")\r\n .replace(\"\\u0000\", \"\");\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for importKey\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoImportKey = function (keyBuffer, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, _this._keygenAlgorithmOptions, extractable, usages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for sign JWT\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.msCryptoSign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(_this._keygenAlgorithmOptions, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserCrypto.getJwkString = function (jwk) {\r\n return JSON.stringify(jwk, Object.keys(jwk).sort());\r\n };\r\n return BrowserCrypto;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage(dbName, tableName, version) {\r\n this.dbName = dbName;\r\n this.tableName = tableName;\r\n this.version = version;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function (error) { return reject(error); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.get = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.put = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbPut.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps() {\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto();\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new DatabaseStorage(CryptoOps.DB_NAME, CryptoOps.TABLE_NAME, CryptoOps.DB_VERSION);\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkBuffer, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserCrypto.getJwkString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.browserCrypto.sha256Digest(publicJwkString)];\r\n case 3:\r\n publicJwkBuffer = _a.sent();\r\n publicJwkHash = this.b64Encode.urlEncodeArr(new Uint8Array(publicJwkBuffer));\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _a.sent();\r\n // Store Keypair data in keystore\r\n this.cache.put(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n });\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.get(kid)];\r\n case 1:\r\n cachedKeyPair = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\r\n header = {\r\n alg: publicKeyJwk.alg,\r\n type: KEY_FORMAT_JWK\r\n };\r\n encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _a.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n return [2 /*return*/, tokenString + \".\" + encodedSignature];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n CryptoOps.DB_VERSION = 1;\r\n CryptoOps.DB_NAME = \"msal.db\";\r\n CryptoOps.TABLE_NAME = CryptoOps.DB_NAME + \".keys\";\r\n return CryptoOps;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() 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 stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when callback object is invalid.\r\n * @param callbackObject\r\n */\r\n BrowserConfigurationAuthError.createInvalidCallbackObjectError = function (callbackObject) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.invalidCallbackObject.code, BrowserConfigurationAuthErrorMessage.invalidCallbackObject.desc + \" Given value for callback function: \" + callbackObject);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.cacheLocation);\r\n // Migrate any cache entries from older versions of MSAL.\r\n _this.migrateCacheEntries();\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n *\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\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 (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.verbose(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getIdTokenCredential called\");\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.verbose(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getAccessTokenCredential called\");\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.verbose(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getRefreshTokenCredential called\");\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.verbose(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getAppMetadata called\");\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.verbose(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getServerTelemetry called\");\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.verbose(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n this.logger.verbose(\"BrowserCacheManager.getAuthorityMetadata called\");\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.verbose(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.verbose(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getThrottlingCache called\");\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n return null;\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.verbose(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve frm cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n this.logger.verbose(\"BrowserCacheManager.getTemporaryCache called\");\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.verbose(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.verbose(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.verbose(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL (except tokens).\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n var _this = this;\r\n this.removeAllAccounts();\r\n this.removeAppMetadata();\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, \"\", -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\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 BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance) {\r\n this.logger.verbose(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.verbose(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.verbose(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.info(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || \"\");\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.verbose(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.info(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.verbose(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.verbose(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a, e_2;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n e_2 = _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a, e_4;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || \"\";\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n e_4 = _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\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 _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = 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, Constants.EMPTY_STRING, \"\" + window.location.pathname + window.location.search);\r\n }\r\n else {\r\n window.location.hash = \"\";\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (window.opener && window.opener !== window && typeof window.name === \"string\" && window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: \"\",\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: \"\",\r\n authorityMetadata: \"\",\r\n redirectUri: \"\",\r\n postLogoutRedirectUri: \"\",\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n loggerCallback: function () { },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false });\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), userInputSystem)\r\n };\r\n return overlayedConfig;\r\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return InteractionHandler;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserCrypto) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set to true, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.authModule.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to:\" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule, clientId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.authModule.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Remove throttle if it exists\r\n if (clientId) {\r\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest.authority, this.authCodeRequest.scopes);\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupUtils = /** @class */ (function () {\r\n function PopupUtils(storageImpl, logger) {\r\n this.browserStorage = storageImpl;\r\n this.logger = logger;\r\n // Properly sets this reference for the unload event.\r\n this.unloadWindow = this.unloadWindow.bind(this);\r\n }\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 PopupUtils.prototype.openPopup = function (urlNavigate, popupName, popup) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popup) {\r\n popupWindow = popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupName);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n PopupUtils.openSizedPopup = function (urlNavigate, popupName) {\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 = Math.max(0, ((width / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n var top = Math.max(0, ((height / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n return window.open(urlNavigate, popupName, \"width=\" + BrowserConstants.POPUP_WIDTH + \", height=\" + BrowserConstants.POPUP_HEIGHT + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupUtils.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupUtils.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n */\r\n PopupUtils.prototype.monitorPopupForSameOrigin = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var intervalId = setInterval(function () {\r\n if (popupWindow.closed) {\r\n // Window is closed\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\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 = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n clearInterval(intervalId);\r\n resolve();\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generatePopupName = function (clientId, request) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + request.scopes.join(\"-\") + \".\" + request.authority + \".\" + request.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generateLogoutPopupName = function (clientId, request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + homeAccountId + \".\" + request.correlationId;\r\n };\r\n return PopupUtils;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\r\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\r\n */\r\nvar PopupHandler = /** @class */ (function (_super) {\r\n __extends(PopupHandler, _super);\r\n function PopupHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.popupUtils = new PopupUtils(storageImpl, authCodeModule.logger);\r\n return _this;\r\n }\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n this.authModule.logger.infoPii(\"Navigate to:\" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.popupUtils.openPopup(requestUrl, params.popupName, params.popup);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - milliseconds until timeout\r\n */\r\n PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {\r\n var contentHash = popupWindow.location.hash;\r\n _this.popupUtils.cleanPopup(popupWindow);\r\n if (!contentHash) {\r\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\r\n }\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n return contentHash;\r\n }\r\n else {\r\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\r\n }\r\n });\r\n };\r\n return PopupHandler;\r\n}(InteractionHandler));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, navigateFrameWait) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n _this.navigateFrameWait = navigateFrameWait;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = this.loadFrameSync(requestUrl);\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, _a];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.authModule.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\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 = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\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 ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, BrowserConstants.POLL_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 SilentHandler.prototype.loadFrame = function (urlNavigate) {\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 var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\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 SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\n/* eslint-disable header/header */\r\nvar name$1 = \"@azure/msal-browser\";\r\nvar version$1 = \"2.14.0\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. 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 * - redirect_uri: the uri of your application registered in the portal.\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 * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.activeLocalAccountId = null;\r\n // Array of events\r\n this.eventCallbacks = new Map();\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name$1, version$1);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n if (!this.isBrowserEnvironment) {\r\n this.browserStorage = DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n this.browserCrypto = DEFAULT_CRYPTO_IMPLEMENTATION;\r\n return;\r\n }\r\n // Initialize the crypto class.\r\n this.browserCrypto = new CryptoOps();\r\n // Initialize the browser storage class.\r\n this.browserStorage = new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger);\r\n }\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n response = this.handleRedirectResponse(hash)\r\n .then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n })\r\n .catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n ClientApplication.prototype.handleRedirectResponse = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var responseHash, state, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.interactionInProgress()) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n try {\r\n state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\r\n BrowserUtils.clearHash();\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 2];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state)];\r\n case 1:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 2:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 3];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state)];\r\n case 3:\r\n if (!!BrowserUtils.isInIframe()) return [3 /*break*/, 8];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 5];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 4:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 7];\r\n case 5:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 6:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 7;\r\n case 7:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state)];\r\n }\r\n _a.label = 8;\r\n case 8: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n ClientApplication.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n if (isResponseHash) {\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.validateAndExtractStateFromHash = function (hash, interactionType) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\");\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hash);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\");\r\n return serverParams.state;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n ClientApplication.prototype.handleHash = function (hash, state) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverTelemetryManager, currentAuthority, authClient, interactionHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"handleHash called\");\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise, cachedRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 2:\r\n authClient = _a.sent();\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.browserCrypto);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n case 4:\r\n e_1 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\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. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isLoggedIn, validRequest, serverTelemetryManager, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Preflight request\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n this.logger.verbose(\"acquireTokenRedirect called\");\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Redirect);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.browserCrypto);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 5:\r\n e_2 = _a.sent();\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e_2);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e_2);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_2;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\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 *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var validRequest;\r\n try {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n this.logger.verbose(\"acquireTokenPopup called\");\r\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, validRequest);\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n return this.acquireTokenPopupAsync(validRequest, popupName);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n return this.acquireTokenPopupAsync(validRequest, popupName, popup);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopupAsync = function (validRequest, popupName, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, state, result, isLoggingIn, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, validRequest);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_START, InteractionType.Popup, validRequest);\r\n }\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName\r\n };\r\n popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)];\r\n case 5:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest.authority, authCodeRequest.scopes);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n case 6:\r\n result = _a.sent();\r\n isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n return [2 /*return*/, result];\r\n case 7:\r\n e_3 = _a.sent();\r\n if (loggedInAccounts.length > 0) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e_3);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e_3);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_3;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentTokenResult, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"ssoSilent called\");\r\n this.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, request);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.ssoSilent)];\r\n case 2:\r\n silentTokenResult = _a.sent();\r\n this.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, silentTokenResult);\r\n return [2 /*return*/, silentTokenResult];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e_4);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. To be used for silent refresh token acquisition and renewal.\r\n * @param request\r\n * @param apiId - ApiId of the calling function. Used for telemetry.\r\n */\r\n ClientApplication.prototype.acquireTokenByIframe = function (request, apiId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n throw BrowserAuthError.createSilentSSOInsufficientInfoError();\r\n }\r\n // Check that prompt is set to none, throw error if it is set to anything else.\r\n if (request.prompt && request.prompt !== PromptValue.NONE) {\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n silentRequest = this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: PromptValue.NONE }), InteractionType.Silent);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(apiId, silentRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(silentRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n return [4 /*yield*/, this.silentTokenHelper(navigateUrl, authCodeRequest, authClient)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n case 6:\r\n e_5 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_5);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_5;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\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 refresh token.\r\n *\r\n * @param {@link SilentRequest}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, refreshTokenClient, e_6, isServerError, isInteractionRequiredError, isInvalidGrantError;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, request);\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n silentRequest = __assign(__assign({}, request), this.initializeBaseRequest(request));\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 7]);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority)];\r\n case 2:\r\n refreshTokenClient = _a.sent();\r\n return [4 /*yield*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)];\r\n case 3: \r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n return [2 /*return*/, _a.sent()];\r\n case 4:\r\n e_6 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_6);\r\n isServerError = e_6 instanceof ServerError;\r\n isInteractionRequiredError = e_6 instanceof InteractionRequiredAuthError;\r\n isInvalidGrantError = (e_6.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if (!(isServerError && isInvalidGrantError && !isInteractionRequiredError)) return [3 /*break*/, 6];\r\n this.logger.verbose(\"Refresh token expired or invalid, attempting acquire token by iframe\");\r\n return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.acquireTokenSilent_authCode)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n case 6: throw e_6;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n ClientApplication.prototype.silentTokenHelper = function (navigateUrl, authCodeRequest, authClient) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentHandler, msalFrame, hash, state;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.config.system.navigateFrameWait);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 1:\r\n msalFrame = _a.sent();\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 2:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent);\r\n // Handle response from hash string\r\n return [2 /*return*/, silentHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\");\r\n return [2 /*return*/, this.logoutRedirect(logoutRequest)];\r\n });\r\n });\r\n };\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 * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, authClient, logoutUri, navigationOptions, navigate, e_7;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout, validLogoutRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 9, , 10]);\r\n this.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 2:\r\n authClient = _a.sent();\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n if (!validLogoutRequest.account || AccountEntity.accountInfoIsEqual(validLogoutRequest.account, this.getActiveAccount())) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.setActiveAccount(null);\r\n }\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 6];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 4];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 4:\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 5;\r\n case 5: return [3 /*break*/, 8];\r\n case 6: return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 7:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 8: return [3 /*break*/, 10];\r\n case 9:\r\n e_7 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_7);\r\n this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_7);\r\n throw e_7;\r\n case 10:\r\n this.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n var validLogoutRequest;\r\n try {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n this.logger.verbose(\"logoutPopup called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\r\n var popup;\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n }\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, authority, popup, mainWindowRedirectUri);\r\n };\r\n /**\r\n *\r\n * @param request\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n */\r\n ClientApplication.prototype.logoutPopupAsync = function (validRequest, popupName, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_8, navigationOptions, absoluteUrl, e_9;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 2:\r\n authClient = _a.sent();\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n if (!validRequest.account || AccountEntity.accountInfoIsEqual(validRequest.account, this.getActiveAccount())) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.setActiveAccount(null);\r\n }\r\n this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupUtils = new PopupUtils(this.browserStorage, this.logger);\r\n popupWindow = popupUtils.openPopup(logoutUri, popupName, popup);\r\n this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n // Don't care if this throws an error (User Cancelled)\r\n return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)];\r\n case 4:\r\n // Don't care if this throws an error (User Cancelled)\r\n _a.sent();\r\n this.logger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_8 = _a.sent();\r\n this.logger.verbose(\"Error occurred while monitoring popup for same origin. Session on server may remain active. Error: \" + e_8);\r\n return [3 /*break*/, 6];\r\n case 6:\r\n popupUtils.cleanPopup(popupWindow);\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecing main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 8];\r\n case 7:\r\n e_9 = _a.sent();\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_9);\r\n serverTelemetryManager.cacheFailedRequest(e_9);\r\n throw e_9;\r\n case 8:\r\n this.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (userName) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching username found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching username: \" + userName);\r\n return allAccounts.filter(function (accountObj) { return accountObj.username.toLowerCase() === userName.toLowerCase(); })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.homeAccountId === homeAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.localAccountId === localAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n this.activeLocalAccountId = account.localAccountId;\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.activeLocalAccountId = null;\r\n }\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n if (!this.activeLocalAccountId) {\r\n this.logger.verbose(\"getActiveAccount: No active account\");\r\n return null;\r\n }\r\n return this.getAccountByLocalId(this.activeLocalAccountId);\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n ClientApplication.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n ClientApplication.prototype.getRedirectStartPage = function (requestStartPage) {\r\n this.logger.verbose(\"getRedirectStartPage called\");\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n */\r\n ClientApplication.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to check whether interaction is in progress.\r\n */\r\n ClientApplication.prototype.interactionInProgress = function () {\r\n // Check whether value in cache is present and equal to expected value\r\n return (this.browserStorage.getTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, true)) === BrowserConstants.INTERACTION_IN_PROGRESS_VALUE;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createAuthCodeClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createSilentFlowClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createRefreshTokenClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n */\r\n ClientApplication.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getClientConfiguration called\");\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds\r\n },\r\n loggerOptions: {\r\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\r\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version$1,\r\n cpu: \"\",\r\n os: \"\"\r\n }\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to validate app environment before making a request.\r\n * @param request\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (request, interactionType) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.interactionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n return this.initializeAuthorizationRequest(request, interactionType);\r\n };\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n * * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType) {\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n ClientApplication.prototype.initializeBaseRequest = function (request) {\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n var authority = request.authority || this.config.auth.authority;\r\n var scopes = __spread(((request && request.scopes) || []));\r\n var correlationId = (request && request.correlationId) || this.browserCrypto.createNewGuid();\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!request.authenticationScheme) {\r\n request.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + request.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n var validatedRequest = __assign(__assign({}, request), { correlationId: correlationId,\r\n authority: authority,\r\n scopes: scopes });\r\n return validatedRequest;\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n ClientApplication.prototype.initializeServerTelemetryManager = function (apiId, correlationId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.wrapperSKU,\r\n wrapperVer: this.wrapperVer\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n this.logger.verbose(\"initializeAuthorizationRequest called\");\r\n var redirectUri = this.getRedirectUri(request.redirectUri);\r\n var browserState = {\r\n interactionType: interactionType\r\n };\r\n var state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || \"\", browserState);\r\n var validatedRequest = __assign(__assign({}, this.initializeBaseRequest(request)), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT });\r\n var account = request.account || this.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\");\r\n this.logger.verbosePii(\"Setting validated request account: \" + account);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint)) {\r\n // Only check for adal token if no SSO params are being used\r\n var adalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n var adalIdToken = new AuthToken(adalIdTokenString, this.browserCrypto);\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdToken.claims && adalIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL token retrieved, setting ADAL upn as loginHint\");\r\n validatedRequest.loginHint = adalIdToken.claims.upn;\r\n }\r\n }\r\n }\r\n this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority);\r\n return validatedRequest;\r\n };\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n ClientApplication.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: \"\", codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\");\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.interactionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\");\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not settibng post logout redirect uri\");\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n ClientApplication.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (this.isBrowserEnvironment) {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n if (this.isBrowserEnvironment) {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.wrapperSKU = sku;\r\n this.wrapperVer = version;\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n return ClientApplication;\r\n}());\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. 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 * - redirect_uri: the uri of your application registered in the portal.\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 * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"loginRedirect called\");\r\n return [2 /*return*/, this.acquireTokenRedirect(request || DEFAULT_REQUEST)];\r\n });\r\n });\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 request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n this.logger.verbose(\"loginPopup called\");\r\n return this.acquireTokenPopup(request || DEFAULT_REQUEST);\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n *\r\n * @param {@link (SilentRequest:type)}\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 PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, silentRequest, serverTelemetryManager, silentAuthClient, cachedToken, e_1, tokenRenewalResult, tokenRenewalError_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\");\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n silentRequest = __assign(__assign(__assign({}, request), this.initializeBaseRequest(request)), { account: account, forceRefresh: request.forceRefresh || false });\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 9]);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority)];\r\n case 2:\r\n silentAuthClient = _a.sent();\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n e_1 = _a.sent();\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.acquireTokenByRefreshToken(silentRequest)];\r\n case 6:\r\n tokenRenewalResult = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);\r\n return [2 /*return*/, tokenRenewalResult];\r\n case 7:\r\n tokenRenewalError_1 = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);\r\n throw tokenRenewalError_1;\r\n case 8: return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar stubbedPublicClientApplication = {\r\n acquireTokenPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n getAllAccounts: function () {\r\n return [];\r\n },\r\n getAccountByHomeId: function () {\r\n return null;\r\n },\r\n getAccountByUsername: function () {\r\n return null;\r\n },\r\n getAccountByLocalId: function () {\r\n return null;\r\n },\r\n handleRedirectPromise: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logout: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n ssoSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n addEventCallback: function () {\r\n return null;\r\n },\r\n removeEventCallback: function () {\r\n return;\r\n },\r\n getLogger: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n },\r\n setLogger: function () {\r\n return;\r\n },\r\n setActiveAccount: function () {\r\n return;\r\n },\r\n getActiveAccount: function () {\r\n return null;\r\n },\r\n initializeWrapperLibrary: function () {\r\n return;\r\n },\r\n setNavigationClient: function () {\r\n return;\r\n }\r\n};\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventMessageUtils = /** @class */ (function () {\r\n function EventMessageUtils() {\r\n }\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n */\r\n EventMessageUtils.getInteractionStatusFromEvent = function (message) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.HANDLE_REDIRECT_END:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.SSO_SILENT_FAILURE:\r\n case EventType.LOGOUT_END:\r\n return InteractionStatus.None;\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n };\r\n return EventMessageUtils;\r\n}());\n\nexport { AccountEntity, ApiId, AuthError, AuthErrorMessage, AuthenticationScheme, BrowserAuthError, BrowserAuthErrorMessage, BrowserCacheLocation, BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage, BrowserUtils, EventMessageUtils, EventType, InteractionRequiredAuthError, InteractionStatus, InteractionType, LogLevel, Logger, NavigationClient, ProtocolMode, PublicClientApplication, StringUtils, UrlString, WrapperSKU, stubbedPublicClientApplication };\n//# sourceMappingURL=index.es.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport {\n isNode,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n UserAgentOptions\n} from \"@azure/core-http\";\nimport * as os from \"os\";\n\nimport { TelemetryPolicy } from \"./policies/TelemetryPolicy\";\nimport { SDK_VERSION } from \"./utils/constants\";\n\n/**\n * TelemetryPolicyFactory is a factory class helping generating {@link TelemetryPolicy} objects.\n *\n * @export\n * @class TelemetryPolicyFactory\n * @implements {RequestPolicyFactory}\n */\nexport class TelemetryPolicyFactory implements RequestPolicyFactory {\n /**\n * @internal\n * @ignore\n */\n public readonly telemetryString: string;\n\n /**\n * Creates an instance of TelemetryPolicyFactory.\n * @param {UserAgentOptions} [telemetry]\n * @memberof TelemetryPolicyFactory\n */\n constructor(telemetry?: UserAgentOptions) {\n const userAgentInfo: string[] = [];\n\n if (isNode) {\n if (telemetry) {\n // FIXME: replace() only replaces the first space. And we have no idea why we need to replace spaces in the first place.\n // But fixing this would be a breaking change. Logged an issue here: https://github.com/Azure/azure-sdk-for-js/issues/10793\n const telemetryString = (telemetry.userAgentPrefix || \"\").replace(\" \", \"\");\n if (telemetryString.length > 0 && userAgentInfo.indexOf(telemetryString) === -1) {\n userAgentInfo.push(telemetryString);\n }\n }\n\n // e.g. azsdk-js-storageblob/10.0.0\n const libInfo = `azsdk-js-storageblob/${SDK_VERSION}`;\n if (userAgentInfo.indexOf(libInfo) === -1) {\n userAgentInfo.push(libInfo);\n }\n\n // e.g. (NODE-VERSION 4.9.1; Windows_NT 10.0.16299)\n const runtimeInfo = `(NODE-VERSION ${process.version}; ${os.type()} ${os.release()})`;\n if (userAgentInfo.indexOf(runtimeInfo) === -1) {\n userAgentInfo.push(runtimeInfo);\n }\n }\n\n this.telemetryString = userAgentInfo.join(\" \");\n }\n\n /**\n * Creates a TelemetryPolicy object.\n *\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @returns {TelemetryPolicy}\n * @memberof TelemetryPolicyFactory\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): TelemetryPolicy {\n return new TelemetryPolicy(nextPolicy, options, this.telemetryString);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport {\n BaseRequestPolicy,\n HttpHeaders,\n HttpOperationResponse,\n isNode,\n RequestPolicy,\n RequestPolicyOptions,\n WebResource\n} from \"@azure/core-http\";\n\nimport { HeaderConstants } from \"../utils/constants\";\n\n/**\n * TelemetryPolicy is a policy used to tag user-agent header for every requests.\n *\n * @class TelemetryPolicy\n * @extends {BaseRequestPolicy}\n */\nexport class TelemetryPolicy extends BaseRequestPolicy {\n /**\n * Telemetry string.\n *\n * @type {string}\n * @memberof TelemetryPolicy\n */\n public readonly telemetry: string;\n\n /**\n * Creates an instance of TelemetryPolicy.\n * @param {RequestPolicy} nextPolicy\n * @param {RequestPolicyOptions} options\n * @param {string} telemetry\n * @memberof TelemetryPolicy\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions, telemetry: string) {\n super(nextPolicy, options);\n this.telemetry = telemetry;\n }\n\n /**\n * Sends out request.\n *\n * @param {WebResource} request\n * @returns {Promise}\n * @memberof TelemetryPolicy\n */\n public async sendRequest(request: WebResource): Promise {\n if (isNode) {\n if (!request.headers) {\n request.headers = new HttpHeaders();\n }\n if (!request.headers.get(HeaderConstants.USER_AGENT)) {\n request.headers.set(HeaderConstants.USER_AGENT, this.telemetry);\n }\n }\n\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { __read, __spread } from \"tslib\";\nvar logFunction = console.debug || console.log;\nexport function log() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logFunction.apply(void 0, __spread(args));\n}\n//# sourceMappingURL=log.browser.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n */\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyOptions,\n RequestPolicyFactory\n} from \"./requestPolicy\";\nimport { WebResource } from \"../webResource\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\n\nconst DisbleResponseDecompressionNotSupportedInBrowser = new Error(\n \"DisableResponseDecompressionPolicy is not supported in browser environment\"\n);\n\n/**\n * {@link DisableResponseDecompressionPolicy} is not supported in browser and attempting\n * to use it will results in error being thrown.\n */\nexport function disableResponseDecompressionPolicy(): RequestPolicyFactory {\n return {\n create: (_nextPolicy: RequestPolicy, _options: RequestPolicyOptions) => {\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n }\n };\n}\n\nexport class DisableResponseDecompressionPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n }\n\n public async sendRequest(_request: WebResource): Promise {\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// This file is used as a shim of \"BlobDownloadResponse\" for some browser bundlers\n// when trying to bundle \"BlobDownloadResponse\"\n// \"BlobDownloadResponse\" class is only available in Node.js runtime\nexport const BlobDownloadResponse = 1;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { HttpResponse } from \"@azure/core-http\";\n\nimport {\n BlobDownloadResponseModel,\n BlobType,\n CopyStatusType,\n LeaseDurationType,\n LeaseStateType,\n LeaseStatusType,\n BlobDownloadHeaders,\n BlobQueryResponseModel\n} from \"./generatedModels\";\nimport { Metadata } from \"./models\";\nimport { BlobQuickQueryStreamOptions } from \"./utils/BlobQuickQueryStream\";\n\n/**\n * ONLY AVAILABLE IN BROWSER RUNTIME.\n *\n * BlobQueryResponse implements BlobDownloadResponseModel interface, and in browser runtime it will\n * parse avor data returned by blob query.\n *\n * @export\n * @class BlobQueryResponse\n * @implements {BlobDownloadResponseModel}\n */\nexport class BlobQueryResponse implements BlobDownloadResponseModel {\n /**\n * Indicates that the service supports\n * requests for partial file content.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get acceptRanges(): string | undefined {\n return this.originalResponse.acceptRanges;\n }\n\n /**\n * Returns if it was previously specified\n * for the file.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get cacheControl(): string | undefined {\n return this.originalResponse.cacheControl;\n }\n\n /**\n * Returns the value that was specified\n * for the 'x-ms-content-disposition' header and specifies how to process the\n * response.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentDisposition(): string | undefined {\n return this.originalResponse.contentDisposition;\n }\n\n /**\n * Returns the value that was specified\n * for the Content-Encoding request header.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentEncoding(): string | undefined {\n return this.originalResponse.contentEncoding;\n }\n\n /**\n * Returns the value that was specified\n * for the Content-Language request header.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentLanguage(): string | undefined {\n return this.originalResponse.contentLanguage;\n }\n\n /**\n * The current sequence number for a\n * page blob. This header is not returned for block blobs or append blobs.\n *\n * @readonly\n * @type {(number | undefined)}\n * @memberof BlobQueryResponse\n */\n public get blobSequenceNumber(): number | undefined {\n return this.originalResponse.blobSequenceNumber;\n }\n\n /**\n * The blob's type. Possible values include:\n * 'BlockBlob', 'PageBlob', 'AppendBlob'.\n *\n * @readonly\n * @type {(BlobType | undefined)}\n * @memberof BlobQueryResponse\n */\n public get blobType(): BlobType | undefined {\n return this.originalResponse.blobType;\n }\n\n /**\n * The number of bytes present in the\n * response body.\n *\n * @readonly\n * @type {(number | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentLength(): number | undefined {\n return this.originalResponse.contentLength;\n }\n\n /**\n * If the file has an MD5 hash and the\n * request is to read the full file, this response header is returned so that\n * the client can check for message content integrity. If the request is to\n * read a specified range and the 'x-ms-range-get-content-md5' is set to\n * true, then the request returns an MD5 hash for the range, as long as the\n * range size is less than or equal to 4 MB. If neither of these sets of\n * conditions is true, then no value is returned for the 'Content-MD5'\n * header.\n *\n * @readonly\n * @type {(Uint8Array | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentMD5(): Uint8Array | undefined {\n return this.originalResponse.contentMD5;\n }\n\n /**\n * Indicates the range of bytes returned if\n * the client requested a subset of the file by setting the Range request\n * header.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentRange(): string | undefined {\n return this.originalResponse.contentRange;\n }\n\n /**\n * The content type specified for the file.\n * The default content type is 'application/octet-stream'\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentType(): string | undefined {\n return this.originalResponse.contentType;\n }\n\n /**\n * Conclusion time of the last attempted\n * Copy File operation where this file was the destination file. This value\n * can specify the time of a completed, aborted, or failed copy attempt.\n *\n * @readonly\n * @type {(Date | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copyCompletedOn(): Date | undefined {\n return undefined;\n }\n\n /**\n * String identifier for the last attempted Copy\n * File operation where this file was the destination file.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copyId(): string | undefined {\n return this.originalResponse.copyId;\n }\n\n /**\n * Contains the number of bytes copied and\n * the total bytes in the source in the last attempted Copy File operation\n * where this file was the destination file. Can show between 0 and\n * Content-Length bytes copied.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copyProgress(): string | undefined {\n return this.originalResponse.copyProgress;\n }\n\n /**\n * URL up to 2KB in length that specifies the\n * source file used in the last attempted Copy File operation where this file\n * was the destination file.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copySource(): string | undefined {\n return this.originalResponse.copySource;\n }\n\n /**\n * State of the copy operation\n * identified by 'x-ms-copy-id'. Possible values include: 'pending',\n * 'success', 'aborted', 'failed'\n *\n * @readonly\n * @type {(CopyStatusType | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copyStatus(): CopyStatusType | undefined {\n return this.originalResponse.copyStatus;\n }\n\n /**\n * Only appears when\n * x-ms-copy-status is failed or pending. Describes cause of fatal or\n * non-fatal copy operation failure.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get copyStatusDescription(): string | undefined {\n return this.originalResponse.copyStatusDescription;\n }\n\n /**\n * When a blob is leased,\n * specifies whether the lease is of infinite or fixed duration. Possible\n * values include: 'infinite', 'fixed'.\n *\n * @readonly\n * @type {(LeaseDurationType | undefined)}\n * @memberof BlobQueryResponse\n */\n public get leaseDuration(): LeaseDurationType | undefined {\n return this.originalResponse.leaseDuration;\n }\n\n /**\n * Lease state of the blob. Possible\n * values include: 'available', 'leased', 'expired', 'breaking', 'broken'.\n *\n * @readonly\n * @type {(LeaseStateType | undefined)}\n * @memberof BlobQueryResponse\n */\n public get leaseState(): LeaseStateType | undefined {\n return this.originalResponse.leaseState;\n }\n\n /**\n * The current lease status of the\n * blob. Possible values include: 'locked', 'unlocked'.\n *\n * @readonly\n * @type {(LeaseStatusType | undefined)}\n * @memberof BlobQueryResponse\n */\n public get leaseStatus(): LeaseStatusType | undefined {\n return this.originalResponse.leaseStatus;\n }\n\n /**\n * A UTC date/time value generated by the service that\n * indicates the time at which the response was initiated.\n *\n * @readonly\n * @type {(Date | undefined)}\n * @memberof BlobQueryResponse\n */\n public get date(): Date | undefined {\n return this.originalResponse.date;\n }\n\n /**\n * The number of committed blocks\n * present in the blob. This header is returned only for append blobs.\n *\n * @readonly\n * @type {(number | undefined)}\n * @memberof BlobQueryResponse\n */\n public get blobCommittedBlockCount(): number | undefined {\n return this.originalResponse.blobCommittedBlockCount;\n }\n\n /**\n * The ETag contains a value that you can use to\n * perform operations conditionally, in quotes.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get etag(): string | undefined {\n return this.originalResponse.etag;\n }\n\n /**\n * The error code.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get errorCode(): string | undefined {\n return this.originalResponse.errorCode;\n }\n\n /**\n * The value of this header is set to\n * true if the file data and application metadata are completely encrypted\n * using the specified algorithm. Otherwise, the value is set to false (when\n * the file is unencrypted, or if only parts of the file/application metadata\n * are encrypted).\n *\n * @readonly\n * @type {(boolean | undefined)}\n * @memberof BlobQueryResponse\n */\n public get isServerEncrypted(): boolean | undefined {\n return this.originalResponse.isServerEncrypted;\n }\n\n /**\n * If the blob has a MD5 hash, and if\n * request contains range header (Range or x-ms-range), this response header\n * is returned with the value of the whole blob's MD5 value. This value may\n * or may not be equal to the value returned in Content-MD5 header, with the\n * latter calculated from the requested range.\n *\n * @readonly\n * @type {(Uint8Array | undefined)}\n * @memberof BlobQueryResponse\n */\n public get blobContentMD5(): Uint8Array | undefined {\n return this.originalResponse.blobContentMD5;\n }\n\n /**\n * Returns the date and time the file was last\n * modified. Any operation that modifies the file or its properties updates\n * the last modified time.\n *\n * @readonly\n * @type {(Date | undefined)}\n * @memberof BlobQueryResponse\n */\n public get lastModified(): Date | undefined {\n return this.originalResponse.lastModified;\n }\n\n /**\n * A name-value pair\n * to associate with a file storage object.\n *\n * @readonly\n * @type {(Metadata | undefined)}\n * @memberof BlobQueryResponse\n */\n public get metadata(): Metadata | undefined {\n return this.originalResponse.metadata;\n }\n\n /**\n * This header uniquely identifies the request\n * that was made and can be used for troubleshooting the request.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get requestId(): string | undefined {\n return this.originalResponse.requestId;\n }\n\n /**\n * If a client request id header is sent in the request, this header will be present in the\n * response with the same value.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get clientRequestId(): string | undefined {\n return this.originalResponse.clientRequestId;\n }\n\n /**\n * Indicates the version of the File service used\n * to execute the request.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get version(): string | undefined {\n return this.originalResponse.version;\n }\n\n /**\n * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned\n * when the blob was encrypted with a customer-provided key.\n *\n * @readonly\n * @type {(string | undefined)}\n * @memberof BlobQueryResponse\n */\n public get encryptionKeySha256(): string | undefined {\n return this.originalResponse.encryptionKeySha256;\n }\n\n /**\n * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to\n * true, then the request returns a crc64 for the range, as long as the range size is less than\n * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is\n * specified in the same request, it will fail with 400(Bad Request)\n *\n * @type {(Uint8Array | undefined)}\n * @memberof BlobQueryResponse\n */\n public get contentCrc64(): Uint8Array | undefined {\n return this.originalResponse.contentCrc64;\n }\n\n /**\n * The response body as a browser Blob.\n * Always undefined in node.js.\n *\n * @readonly\n * @type {(Promise | undefined)}\n * @memberof BlobQueryResponse\n */\n public get blobBody(): Promise | undefined {\n throw Error(`Quick query in browser is not supported yet.`);\n }\n\n /**\n * The response body as a node.js Readable stream.\n * Always undefined in the browser.\n *\n * @readonly\n * @type {(NodeJS.ReadableStream | undefined)}\n * @memberof BlobQueryResponse\n */\n public get readableStreamBody(): NodeJS.ReadableStream | undefined {\n return undefined;\n }\n\n /**\n * The HTTP response.\n *\n * @type {HttpResponse}\n * @memberof BlobQueryResponse\n */\n public get _response(): HttpResponse & {\n parsedHeaders: BlobDownloadHeaders;\n } {\n return this.originalResponse._response;\n }\n\n private originalResponse: BlobQueryResponseModel;\n\n /**\n * Creates an instance of BlobQueryResponse.\n *\n * @param {BlobQueryResponseModel} originalResponse\n * @param {BlobQuickQueryStreamOptions} [options={}]\n * @memberof BlobQueryResponse\n */\n public constructor(\n originalResponse: BlobQueryResponseModel,\n _options: BlobQuickQueryStreamOptions = {}\n ) {\n this.originalResponse = originalResponse;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AccessToken } from \"@azure/core-auth\";\n\n/**\n * Defines the default token refresh buffer duration.\n */\nexport const TokenRefreshBufferMs = 2 * 60 * 1000; // 2 Minutes\n\n/**\n * Provides a cache for an AccessToken that was that\n * was returned from a TokenCredential.\n */\nexport interface AccessTokenCache {\n /**\n * Sets the cached token.\n *\n * @param The {@link AccessToken} to be cached or null to\n * clear the cached token.\n */\n setCachedToken(accessToken: AccessToken | undefined): void;\n\n /**\n * Returns the cached {@link AccessToken} or undefined if nothing is cached.\n */\n getCachedToken(): AccessToken | undefined;\n}\n\n/**\n * Provides an {@link AccessTokenCache} implementation which clears\n * the cached {@link AccessToken}'s after the expiresOnTimestamp has\n * passed.\n */\nexport class ExpiringAccessTokenCache implements AccessTokenCache {\n private tokenRefreshBufferMs: number;\n private cachedToken?: AccessToken = undefined;\n\n /**\n * Constructs an instance of {@link ExpiringAccessTokenCache} with\n * an optional expiration buffer time.\n */\n constructor(tokenRefreshBufferMs: number = TokenRefreshBufferMs) {\n this.tokenRefreshBufferMs = tokenRefreshBufferMs;\n }\n\n setCachedToken(accessToken: AccessToken | undefined): void {\n this.cachedToken = accessToken;\n }\n\n getCachedToken(): AccessToken | undefined {\n if (\n this.cachedToken &&\n Date.now() + this.tokenRefreshBufferMs >= this.cachedToken.expiresOnTimestamp\n ) {\n this.cachedToken = undefined;\n }\n\n return this.cachedToken;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AccessToken, TokenCredential, GetTokenOptions } from \"@azure/core-auth\";\n\n/**\n * Helps the core-http token authentication policies with requesting a new token if we're not currently waiting for a new token.\n */\nexport class AccessTokenRefresher {\n private promise: Promise | undefined;\n private lastCalled = 0;\n\n constructor(\n private credential: TokenCredential,\n private scopes: string | string[],\n private requiredMillisecondsBeforeNewRefresh: number = 30000\n ) {}\n\n /**\n * Returns true if the required milliseconds(defaulted to 30000) have been passed signifying\n * that we are ready for a new refresh.\n *\n * @returns {boolean}\n */\n public isReady(): boolean {\n // We're only ready for a new refresh if the required milliseconds have passed.\n return (\n !this.lastCalled || Date.now() - this.lastCalled > this.requiredMillisecondsBeforeNewRefresh\n );\n }\n\n /**\n * Stores the time in which it is called,\n * then requests a new token,\n * then sets this.promise to undefined,\n * then returns the token.\n * @param options getToken options\n */\n private async getToken(options: GetTokenOptions): Promise {\n this.lastCalled = Date.now();\n const token = await this.credential.getToken(this.scopes, options);\n this.promise = undefined;\n return token || undefined;\n }\n\n /**\n * Requests a new token if we're not currently waiting for a new token.\n * Returns null if the required time between each call hasn't been reached.\n * @param options getToken options\n */\n public refresh(options: GetTokenOptions): Promise {\n if (!this.promise) {\n this.promise = this.getToken(options);\n }\n\n return this.promise;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TokenCredential, GetTokenOptions } from \"@azure/core-auth\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyOptions,\n RequestPolicyFactory\n} from \"../policies/requestPolicy\";\nimport { Constants } from \"../util/constants\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { HttpHeaders } from \"../httpHeaders\";\nimport { WebResourceLike } from \"../webResource\";\nimport { AccessTokenCache, ExpiringAccessTokenCache } from \"../credentials/accessTokenCache\";\nimport { AccessTokenRefresher } from \"../credentials/accessTokenRefresher\";\n\n/**\n * Creates a new BearerTokenAuthenticationPolicy factory.\n *\n * @param credential The TokenCredential implementation that can supply the bearer token.\n * @param scopes The scopes for which the bearer token applies.\n */\nexport function bearerTokenAuthenticationPolicy(\n credential: TokenCredential,\n scopes: string | string[]\n): RequestPolicyFactory {\n const tokenCache: AccessTokenCache = new ExpiringAccessTokenCache();\n const tokenRefresher = new AccessTokenRefresher(\n credential,\n scopes,\n timeBetweenRefreshAttemptsInMs\n );\n\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new BearerTokenAuthenticationPolicy(nextPolicy, options, tokenCache, tokenRefresher);\n }\n };\n}\n\n/**\n * The automated token refresh will only start to happen at the\n * expiration date minus the value of timeBetweenRefreshAttemptsInMs,\n * which is by default 30 seconds.\n */\nconst timeBetweenRefreshAttemptsInMs = 30000;\n\n/**\n *\n * Provides a RequestPolicy that can request a token from a TokenCredential\n * implementation and then apply it to the Authorization header of a request\n * as a Bearer token.\n *\n */\nexport class BearerTokenAuthenticationPolicy extends BaseRequestPolicy {\n /**\n * Creates a new BearerTokenAuthenticationPolicy object.\n *\n * @param nextPolicy The next RequestPolicy in the request pipeline.\n * @param options Options for this RequestPolicy.\n * @param credential The TokenCredential implementation that can supply the bearer token.\n * @param scopes The scopes for which the bearer token applies.\n * @param tokenCache The cache for the most recent AccessToken returned from the TokenCredential.\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n private tokenCache: AccessTokenCache,\n private tokenRefresher: AccessTokenRefresher\n ) {\n super(nextPolicy, options);\n }\n\n /**\n * Applies the Bearer token to the request through the Authorization header.\n * @param webResource\n */\n public async sendRequest(webResource: WebResourceLike): Promise {\n if (!webResource.headers) webResource.headers = new HttpHeaders();\n const token = await this.getToken({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n spanOptions: webResource.spanOptions\n }\n });\n webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`);\n return this._nextPolicy.sendRequest(webResource);\n }\n\n /**\n * Attempts a token update if any other time related conditionals have been reached based on the tokenRefresher class.\n */\n private async updateTokenIfNeeded(options: GetTokenOptions): Promise {\n if (this.tokenRefresher.isReady()) {\n const accessToken = await this.tokenRefresher.refresh(options);\n this.tokenCache.setCachedToken(accessToken);\n }\n }\n\n private async getToken(options: GetTokenOptions): Promise {\n let accessToken = this.tokenCache.getCachedToken();\n if (accessToken === undefined) {\n // Waiting for the next refresh only if the cache is unable to retrieve the access token,\n // which means that it has expired, or it has never been set.\n accessToken = await this.tokenRefresher.refresh(options);\n this.tokenCache.setCachedToken(accessToken);\n } else {\n // If we still have a cached access token,\n // And any other time related conditionals have been reached based on the tokenRefresher class,\n // then attempt to refresh without waiting.\n this.updateTokenIfNeeded(options);\n }\n\n return accessToken ? accessToken.token : undefined;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { getTracer, getTraceParentHeader } from \"@azure/core-tracing\";\nimport { SpanOptions, SpanKind } from \"@opentelemetry/api\";\nimport {\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n BaseRequestPolicy\n} from \"./requestPolicy\";\nimport { WebResourceLike } from \"../webResource\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { URLBuilder } from \"../url\";\n\nexport interface TracingPolicyOptions {\n userAgent?: string;\n}\n\nexport function tracingPolicy(tracingOptions: TracingPolicyOptions = {}): RequestPolicyFactory {\n return {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n return new TracingPolicy(nextPolicy, options, tracingOptions);\n }\n };\n}\n\nexport class TracingPolicy extends BaseRequestPolicy {\n private userAgent?: string;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n tracingOptions: TracingPolicyOptions\n ) {\n super(nextPolicy, options);\n this.userAgent = tracingOptions.userAgent;\n }\n\n public async sendRequest(request: WebResourceLike): Promise {\n if (!request.spanOptions || !request.spanOptions.parent) {\n return this._nextPolicy.sendRequest(request);\n }\n\n // create a new span\n const tracer = getTracer();\n const spanOptions: SpanOptions = {\n ...request.spanOptions,\n kind: SpanKind.CLIENT\n };\n const path = URLBuilder.parse(request.url).getPath() || \"/\";\n const span = tracer.startSpan(path, spanOptions);\n span.setAttributes({\n \"http.method\": request.method,\n \"http.url\": request.url,\n requestId: request.requestId\n });\n\n if (this.userAgent) {\n span.setAttribute(\"http.user_agent\", this.userAgent);\n }\n\n try {\n // set headers\n const spanContext = span.context();\n const traceParentHeader = getTraceParentHeader(spanContext);\n if (traceParentHeader) {\n request.headers.set(\"traceparent\", traceParentHeader);\n const traceState = spanContext.traceState && spanContext.traceState.serialize();\n // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent\n if (traceState) {\n request.headers.set(\"tracestate\", traceState);\n }\n }\n\n const response = await this._nextPolicy.sendRequest(request);\n span.setAttribute(\"http.status_code\", response.status);\n const serviceRequestId = response.headers.get(\"x-ms-request-id\");\n if (serviceRequestId) {\n span.setAttribute(\"serviceRequestId\", serviceRequestId);\n }\n span.end();\n return response;\n } catch (err) {\n span.end();\n throw err;\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PollOperation, PollOperationState } from \"./pollOperation\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\n\n/**\n * CancelOnProgress is used as the return value of a Poller's onProgress method.\n * When a user invokes onProgress, they're required to pass in a function that will be\n * called as a callback with the new data received each time the poll operation is updated.\n * onProgress returns a function that will prevent any further update to reach the original callback.\n */\nexport type CancelOnProgress = () => void;\n\n/**\n * PollProgressCallback is the type of the callback functions sent to onProgress.\n * These functions will receive a TState that is defined by your implementation of\n * the Poller class.\n */\nexport type PollProgressCallback = (state: TState) => void;\n\n/**\n * When a poller is manually stopped through the `stopPolling` method,\n * the poller will be rejected with an instance of the PollerStoppedError.\n */\nexport class PollerStoppedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PollerStoppedError\";\n Object.setPrototypeOf(this, PollerStoppedError.prototype);\n }\n}\n\n/**\n * When a poller is cancelled through the `cancelOperation` method,\n * the poller will be rejected with an instance of the PollerCancelledError.\n */\nexport class PollerCancelledError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PollerCancelledError\";\n Object.setPrototypeOf(this, PollerCancelledError.prototype);\n }\n}\n\n/**\n * Abstract representation of a poller, intended to expose just the minimal API that the user needs to work with.\n */\nexport interface PollerLike, TResult> {\n /**\n * Returns a promise that will resolve once a single polling request finishes.\n * It does this by calling the update method of the Poller's operation.\n */\n poll(options?: { abortSignal?: AbortSignalLike }): Promise;\n /**\n * Returns a promise that will resolve once the underlying operation is completed.\n */\n pollUntilDone(): Promise;\n /**\n * Invokes the provided callback after each polling is completed,\n * sending the current state of the poller's operation.\n *\n * It returns a method that can be used to stop receiving updates on the given callback function.\n */\n onProgress(callback: (state: TState) => void): CancelOnProgress;\n /**\n * Returns true if the poller has finished polling.\n */\n isDone(): boolean;\n /**\n * Stops the poller. After this, no manual or automated requests can be sent.\n */\n stopPolling(): void;\n /**\n * Returns true if the poller is stopped.\n */\n isStopped(): boolean;\n /**\n * Attempts to cancel the underlying operation.\n */\n cancelOperation(options?: { abortSignal?: AbortSignalLike }): Promise;\n /**\n * Returns the state of the operation.\n * The TState defined in PollerLike can be a subset of the TState defined in\n * the Poller implementation.\n */\n getOperationState(): TState;\n /**\n * Returns the result value of the operation,\n * regardless of the state of the poller.\n * It can return undefined or an incomplete form of the final TResult value\n * depending on the implementation.\n */\n getResult(): TResult | undefined;\n /**\n * Returns a serialized version of the poller's operation\n * by invoking the operation's toString method.\n */\n toString(): string;\n}\n\n/**\n * A class that represents the definition of a program that polls through consecutive requests\n * until it reaches a state of completion.\n *\n * A poller can be executed manually, by polling request by request by calling to the `poll()` method repeatedly, until its operation is completed.\n * It also provides a way to wait until the operation completes, by calling `pollUntilDone()` and waiting until the operation finishes.\n * Pollers can also request the cancellation of the ongoing process to whom is providing the underlying long running operation.\n *\n * ```ts\n * const poller = new MyPoller();\n *\n * // Polling just once:\n * await poller.poll();\n *\n * // We can try to cancel the request here, by calling:\n * //\n * // await poller.cancelOperation();\n * //\n *\n * // Getting the final result:\n * const result = await poller.pollUntilDone();\n * ```\n *\n * The Poller is defined by two types, a type representing the state of the poller, which\n * must include a basic set of properties from `PollOperationState`,\n * and a return type defined by `TResult`, which can be anything.\n *\n * The Poller class implements the `PollerLike` interface, which allows poller implementations to avoid having\n * to export the Poller's class directly, and instead only export the already instantiated poller with the PollerLike type.\n *\n * ```ts\n * class Client {\n * public async makePoller: PollerLike {\n * const poller = new MyPoller({});\n * // It might be preferred to return the poller after the first request is made,\n * // so that some information can be obtained right away.\n * await poller.poll();\n * return poller;\n * }\n * }\n *\n * const poller: PollerLike = myClient.makePoller();\n * ```\n *\n * A poller can be created through its constructor, then it can be polled until it's completed.\n * At any point in time, the state of the poller can be obtained without delay through the getOperationState method.\n * At any point in time, the intermediate forms of the result type can be requested without delay.\n * Once the underlying operation is marked as completed, the poller will stop and the final value will be returned.\n *\n * ```ts\n * const poller = myClient.makePoller();\n * const state: MyOperationState = poller.getOperationState();\n *\n * // The intermediate result can be obtained at any time.\n * const result: MyResult | undefined = poller.getResult();\n *\n * // The final result can only be obtained after the poller finishes.\n * const result: MyResult = await poller.pollUntilDone();\n * ```\n *\n */\nexport abstract class Poller, TResult>\n implements PollerLike {\n private stopped: boolean = true;\n private resolve?: (value?: TResult) => void;\n private reject?: (error: PollerStoppedError | PollerCancelledError | Error) => void;\n private pollOncePromise?: Promise;\n private cancelPromise?: Promise;\n private promise: Promise;\n private pollProgressCallbacks: PollProgressCallback[] = [];\n\n /**\n * The poller's operation is available in full to any of the methods of the Poller class\n * and any class extending the Poller class.\n */\n protected operation: PollOperation;\n\n /**\n * A poller needs to be initialized by passing in at least the basic properties of the PollOperation.\n *\n * When writing an implementation of a Poller, this implementation needs to deal with the initialization\n * of any custom state beyond the basic definition of the poller. The basic poller assumes that the poller's\n * operation has already been defined, at least its basic properties. The code below shows how to approach\n * the definition of the constructor of a new custom poller.\n *\n * ```ts\n * export class MyPoller extends Poller {\n * constructor({\n * // Anything you might need outside of the basics\n * }) {\n * let state: MyOperationState = {\n * privateProperty: private,\n * publicProperty: public,\n * };\n *\n * const operation = {\n * state,\n * update,\n * cancel,\n * toString\n * }\n *\n * // Sending the operation to the parent's constructor.\n * super(operation);\n *\n * // You can assign more local properties here.\n * }\n * }\n * ```\n *\n * Inside of this constructor, a new promise is created. This will be used to\n * tell the user when the poller finishes (see `pollUntilDone()`). The promise's\n * resolve and reject methods are also used internally to control when to resolve\n * or reject anyone waiting for the poller to finish.\n *\n * The constructor of a custom implementation of a poller is where any serialized version of\n * a previous poller's operation should be deserialized into the operation sent to the\n * base constructor. For example:\n *\n * ```ts\n * export class MyPoller extends Poller {\n * constructor(\n * baseOperation: string | undefined\n * ) {\n * let state: MyOperationState = {};\n * if (baseOperation) {\n * state = {\n * ...JSON.parse(baseOperation).state,\n * ...state\n * };\n * }\n * const operation = {\n * state,\n * // ...\n * }\n * super(operation);\n * }\n * }\n * ```\n *\n * @param operation Must contain the basic properties of PollOperation.\n */\n constructor(operation: PollOperation) {\n this.operation = operation;\n this.promise = new Promise(\n (\n resolve: (result?: TResult) => void,\n reject: (error: PollerStoppedError | PollerCancelledError | Error) => void\n ) => {\n this.resolve = resolve;\n this.reject = reject;\n }\n );\n // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown.\n // The above warning would get thrown if `poller.poll` is called, it returns an error,\n // and pullUntilDone did not have a .catch or await try/catch on it's return value.\n this.promise.catch(() => {});\n }\n\n /**\n * Defines how much to wait between each poll request.\n * This has to be implemented by your custom poller.\n *\n * @azure/core-http has a simple implementation of a delay function that waits as many milliseconds as specified.\n * This can be used as follows:\n *\n * ```ts\n * import { delay } from \"@azure/core-http\";\n *\n * export class MyPoller extends Poller {\n * // The other necessary definitions.\n *\n * async delay(): Promise {\n * const milliseconds = 1000;\n * return delay(milliseconds);\n * }\n * }\n * ```\n *\n */\n protected abstract async delay(): Promise;\n\n /**\n * @internal\n * @ignore\n * Starts a loop that will break only if the poller is done\n * or if the poller is stopped.\n */\n private async startPolling(): Promise {\n if (this.stopped) {\n this.stopped = false;\n }\n while (!this.isStopped() && !this.isDone()) {\n await this.poll();\n await this.delay();\n }\n }\n\n /**\n * @internal\n * @ignore\n * pollOnce does one polling, by calling to the update method of the underlying\n * poll operation to make any relevant change effective.\n *\n * It only optionally receives an object with an abortSignal property, from @azure/abort-controller's AbortSignalLike.\n *\n * @param options Optional properties passed to the operation's update method.\n */\n private async pollOnce(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n const state: PollOperationState = this.operation.state;\n try {\n if (!this.isDone()) {\n this.operation = await this.operation.update({\n abortSignal: options.abortSignal,\n fireProgress: this.fireProgress.bind(this)\n });\n if (this.isDone() && this.resolve) {\n this.resolve(state.result);\n }\n }\n } catch (e) {\n state.error = e;\n if (this.reject) {\n this.reject(e);\n }\n throw e;\n }\n }\n\n /**\n * @internal\n * @ignore\n * fireProgress calls the functions passed in via onProgress the method of the poller.\n *\n * It loops over all of the callbacks received from onProgress, and executes them, sending them\n * the current operation state.\n *\n * @param state The current operation state.\n */\n private fireProgress(state: TState): void {\n for (const callback of this.pollProgressCallbacks) {\n callback(state);\n }\n }\n\n /**\n * @internal\n * @ignore\n * Invokes the underlying operation's cancel method, and rejects the\n * pollUntilDone promise.\n */\n private async cancelOnce(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n this.operation = await this.operation.cancel(options);\n if (this.reject) {\n this.reject(new PollerCancelledError(\"Poller cancelled\"));\n }\n }\n\n /**\n * Returns a promise that will resolve once a single polling request finishes.\n * It does this by calling the update method of the Poller's operation.\n *\n * It only optionally receives an object with an abortSignal property, from @azure/abort-controller's AbortSignalLike.\n *\n * @param options Optional properties passed to the operation's update method.\n */\n public poll(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n if (!this.pollOncePromise) {\n this.pollOncePromise = this.pollOnce(options);\n const clearPollOncePromise = (): void => {\n this.pollOncePromise = undefined;\n };\n this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise);\n }\n return this.pollOncePromise;\n }\n\n /**\n * Returns a promise that will resolve once the underlying operation is completed.\n */\n public async pollUntilDone(): Promise {\n if (this.stopped) {\n this.startPolling().catch(this.reject);\n }\n return this.promise;\n }\n\n /**\n * Invokes the provided callback after each polling is completed,\n * sending the current state of the poller's operation.\n *\n * It returns a method that can be used to stop receiving updates on the given callback function.\n */\n public onProgress(callback: (state: TState) => void): CancelOnProgress {\n this.pollProgressCallbacks.push(callback);\n return (): void => {\n this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback);\n };\n }\n\n /**\n * Returns true if the poller has finished polling.\n */\n public isDone(): boolean {\n const state: PollOperationState = this.operation.state;\n return Boolean(state.isCompleted || state.isCancelled || state.error);\n }\n\n /**\n * Stops the poller from continuing to poll.\n */\n public stopPolling(): void {\n if (!this.stopped) {\n this.stopped = true;\n if (this.reject) {\n this.reject(new PollerStoppedError(\"This poller is already stopped\"));\n }\n }\n }\n\n /**\n * Returns true if the poller is stopped.\n */\n public isStopped(): boolean {\n return this.stopped;\n }\n\n /**\n * Attempts to cancel the underlying operation.\n *\n * It only optionally receives an object with an abortSignal property, from @azure/abort-controller's AbortSignalLike.\n *\n * If it's called again before it finishes, it will throw an error.\n *\n * @param options Optional properties passed to the operation's update method.\n */\n public cancelOperation(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n if (!this.stopped) {\n this.stopped = true;\n }\n if (!this.cancelPromise) {\n this.cancelPromise = this.cancelOnce(options);\n } else if (options.abortSignal) {\n throw new Error(\"A cancel request is currently pending\");\n }\n return this.cancelPromise;\n }\n\n /**\n * Returns the state of the operation.\n *\n * Even though TState will be the same type inside any of the methods of any extension of the Poller class,\n * implementations of the pollers can customize what's shared with the public by writing their own\n * version of the `getOperationState` method, and by defining two types, one representing the internal state of the poller\n * and a public type representing a safe to share subset of the properties of the internal state.\n * Their definition of getOperationState can then return their public type.\n *\n * Example:\n *\n * ```ts\n * // Let's say we have our poller's operation state defined as:\n * interface MyOperationState extends PollOperationState {\n * privateProperty?: string;\n * publicProperty?: string;\n * }\n *\n * // To allow us to have a true separation of public and private state, we have to define another interface:\n * interface PublicState extends PollOperationState {\n * publicProperty?: string;\n * }\n *\n * // Then, we define our Poller as follows:\n * export class MyPoller extends Poller {\n * // ... More content is needed here ...\n *\n * public getOperationState(): PublicState {\n * const state: PublicState = this.operation.state;\n * return {\n * // Properties from PollOperationState\n * isStarted: state.isStarted,\n * isCompleted: state.isCompleted,\n * isCancelled: state.isCancelled,\n * error: state.error,\n * result: state.result,\n *\n * // The only other property needed by PublicState.\n * publicProperty: state.publicProperty\n * }\n * }\n * }\n * ```\n *\n * You can see this in the tests of this repository, go to the file:\n * `../test/utils/testPoller.ts`\n * and look for the getOperationState implementation.\n */\n public getOperationState(): TState {\n return this.operation.state;\n }\n\n /**\n * Returns the result value of the operation,\n * regardless of the state of the poller.\n * It can return undefined or an incomplete form of the final TResult value\n * depending on the implementation.\n */\n public getResult(): TResult | undefined {\n const state: PollOperationState = this.operation.state;\n return state.result;\n }\n\n /**\n * Returns a serialized version of the poller's operation\n * by invoking the operation's toString method.\n */\n public toString(): string {\n return this.operation.toString();\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { delay } from \"@azure/core-http\";\nimport { PollOperation, PollOperationState, Poller } from \"@azure/core-lro\";\nimport { BlobClient, BlobStartCopyFromURLOptions, BlobBeginCopyFromURLResponse } from \"../Clients\";\n\n/**\n * Defines the operations from a {@link BlobClient} that are needed for the poller\n * returned by {@link BlobClient.beginCopyFromURL} to work.\n */\nexport type CopyPollerBlobClient = Pick & {\n startCopyFromURL(\n copySource: string,\n options?: BlobStartCopyFromURLOptions\n ): Promise;\n};\n\n/**\n * The state used by the poller returned from {@link BlobClient.beginCopyFromURL}.\n *\n * This state is passed into the user-specified `onProgress` callback\n * whenever copy progress is detected.\n */\nexport interface BlobBeginCopyFromUrlPollState\n extends PollOperationState {\n /**\n * The instance of {@link BlobClient} that was used when calling {@link BlobClient.beginCopyFromURL}.\n */\n readonly blobClient: CopyPollerBlobClient;\n /**\n * The copyId that identifies the in-progress blob copy.\n */\n copyId?: string;\n /**\n * the progress of the blob copy as reported by the service.\n */\n copyProgress?: string;\n /**\n * The source URL provided in {@link BlobClient.beginCopyFromURL}.\n */\n copySource: string;\n /**\n * The options that were passed to the initial {@link BlobClient.beginCopyFromURL} call.\n * This is exposed for the poller and should not be modified directly.\n */\n readonly startCopyFromURLOptions?: BlobStartCopyFromURLOptions;\n}\n\n/**\n * The PollOperation responsible for:\n * - performing the initial startCopyFromURL\n * - checking the copy status via getProperties\n * - cancellation via abortCopyFromURL\n * @ignore\n */\nexport interface BlobBeginCopyFromURLPollOperation\n extends PollOperation {}\n\n/**\n * The set of options used to configure the poller.\n * This is an internal interface populated by {@link BlobClient.beginCopyFromURL}.\n *\n * @ignore\n */\nexport interface BlobBeginCopyFromUrlPollerOptions {\n blobClient: CopyPollerBlobClient;\n copySource: string;\n intervalInMs?: number;\n onProgress?: (state: BlobBeginCopyFromUrlPollState) => void;\n resumeFrom?: string;\n startCopyFromURLOptions?: BlobStartCopyFromURLOptions;\n}\n\n/**\n * This is the poller returned by {@link BlobClient.beginCopyFromURL}.\n * This can not be instantiated directly outside of this package.\n *\n * @ignore\n */\nexport class BlobBeginCopyFromUrlPoller extends Poller<\n BlobBeginCopyFromUrlPollState,\n BlobBeginCopyFromURLResponse\n> {\n public intervalInMs: number;\n\n constructor(options: BlobBeginCopyFromUrlPollerOptions) {\n const {\n blobClient,\n copySource,\n intervalInMs = 15000,\n onProgress,\n resumeFrom,\n startCopyFromURLOptions\n } = options;\n\n let state: BlobBeginCopyFromUrlPollState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = makeBlobBeginCopyFromURLPollOperation({\n ...state,\n blobClient,\n copySource,\n startCopyFromURLOptions\n });\n\n super(operation);\n\n if (typeof onProgress === \"function\") {\n this.onProgress(onProgress);\n }\n\n this.intervalInMs = intervalInMs;\n }\n\n public delay(): Promise {\n return delay(this.intervalInMs);\n }\n}\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @ignore\n */\nconst cancel: BlobBeginCopyFromURLPollOperation[\"cancel\"] = async function cancel(\n this: BlobBeginCopyFromURLPollOperation,\n options = {}\n) {\n const state = this.state;\n const { copyId } = state;\n if (state.isCompleted) {\n return makeBlobBeginCopyFromURLPollOperation(state);\n }\n\n if (!copyId) {\n state.isCancelled = true;\n return makeBlobBeginCopyFromURLPollOperation(state);\n }\n\n // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call\n await state.blobClient.abortCopyFromURL(copyId, {\n abortSignal: options.abortSignal\n });\n state.isCancelled = true;\n\n return makeBlobBeginCopyFromURLPollOperation(state);\n};\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @ignore\n */\nconst update: BlobBeginCopyFromURLPollOperation[\"update\"] = async function update(\n this: BlobBeginCopyFromURLPollOperation,\n options = {}\n): Promise {\n const state = this.state;\n const { blobClient, copySource, startCopyFromURLOptions } = state;\n\n if (!state.isStarted) {\n state.isStarted = true;\n const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions);\n\n // copyId is needed to abort\n state.copyId = result.copyId;\n if (result.copyStatus === \"success\") {\n state.result = result;\n state.isCompleted = true;\n }\n } else if (!state.isCompleted) {\n try {\n const result = await state.blobClient.getProperties({ abortSignal: options.abortSignal });\n const { copyStatus, copyProgress } = result;\n const prevCopyProgress = state.copyProgress;\n if (copyProgress) {\n state.copyProgress = copyProgress;\n }\n if (\n copyStatus === \"pending\" &&\n copyProgress !== prevCopyProgress &&\n typeof options.fireProgress === \"function\"\n ) {\n // trigger in setTimeout, or swallow error?\n options.fireProgress(state);\n } else if (copyStatus === \"success\") {\n state.result = result;\n state.isCompleted = true;\n } else if (copyStatus === \"failed\") {\n state.error = new Error(\n `Blob copy failed with reason: \"${result.copyStatusDescription || \"unknown\"}\"`\n );\n state.isCompleted = true;\n }\n } catch (err) {\n state.error = err;\n state.isCompleted = true;\n }\n }\n\n return makeBlobBeginCopyFromURLPollOperation(state);\n};\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @ignore\n */\nconst toString: BlobBeginCopyFromURLPollOperation[\"toString\"] = function toString(\n this: BlobBeginCopyFromURLPollOperation\n) {\n return JSON.stringify({ state: this.state }, (key, value) => {\n // remove blobClient from serialized state since a client can't be hydrated from this info.\n if (key === \"blobClient\") {\n return undefined;\n }\n return value;\n });\n};\n\n/**\n * Creates a poll operation given the provided state.\n * @ignore\n */\nfunction makeBlobBeginCopyFromURLPollOperation(\n state: BlobBeginCopyFromUrlPollState\n): BlobBeginCopyFromURLPollOperation {\n return {\n state: { ...state },\n cancel,\n toString,\n update\n };\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for\n * license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is\n * regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\nimport * as Models from \"../models\";\nimport * as Mappers from \"../models/containerMappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClientContext } from \"../storageClientContext\";\n\n/** Class representing a Container. */\nexport class Container {\n private readonly client: StorageClientContext;\n\n /**\n * Create a Container.\n * @param {StorageClientContext} client Reference to the service client.\n */\n constructor(client: StorageClientContext) {\n this.client = client;\n }\n\n /**\n * creates a new container under the specified account. If the container with the same name already\n * exists, the operation fails\n * @param [options] The optional parameters\n * @returns Promise\n */\n create(options?: Models.ContainerCreateOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n create(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n create(options: Models.ContainerCreateOptionalParams, callback: coreHttp.ServiceCallback): void;\n create(options?: Models.ContainerCreateOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n createOperationSpec,\n callback) as Promise;\n }\n\n /**\n * returns all user-defined metadata and system properties for the specified container. The data\n * returned does not include the container's list of blobs\n * @param [options] The optional parameters\n * @returns Promise\n */\n getProperties(options?: Models.ContainerGetPropertiesOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n getProperties(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getProperties(options: Models.ContainerGetPropertiesOptionalParams, callback: coreHttp.ServiceCallback): void;\n getProperties(options?: Models.ContainerGetPropertiesOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getPropertiesOperationSpec,\n callback) as Promise;\n }\n\n /**\n * operation marks the specified container for deletion. The container and any blobs contained\n * within it are later deleted during garbage collection\n * @param [options] The optional parameters\n * @returns Promise\n */\n deleteMethod(options?: Models.ContainerDeleteMethodOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n deleteMethod(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n deleteMethod(options: Models.ContainerDeleteMethodOptionalParams, callback: coreHttp.ServiceCallback): void;\n deleteMethod(options?: Models.ContainerDeleteMethodOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n deleteMethodOperationSpec,\n callback) as Promise;\n }\n\n /**\n * operation sets one or more user-defined name-value pairs for the specified container.\n * @param [options] The optional parameters\n * @returns Promise\n */\n setMetadata(options?: Models.ContainerSetMetadataOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setMetadata(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setMetadata(options: Models.ContainerSetMetadataOptionalParams, callback: coreHttp.ServiceCallback): void;\n setMetadata(options?: Models.ContainerSetMetadataOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setMetadataOperationSpec,\n callback) as Promise;\n }\n\n /**\n * gets the permissions for the specified container. The permissions indicate whether container\n * data may be accessed publicly.\n * @param [options] The optional parameters\n * @returns Promise\n */\n getAccessPolicy(options?: Models.ContainerGetAccessPolicyOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n getAccessPolicy(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getAccessPolicy(options: Models.ContainerGetAccessPolicyOptionalParams, callback: coreHttp.ServiceCallback): void;\n getAccessPolicy(options?: Models.ContainerGetAccessPolicyOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getAccessPolicyOperationSpec,\n callback) as Promise;\n }\n\n /**\n * sets the permissions for the specified container. The permissions indicate whether blobs in a\n * container may be accessed publicly.\n * @param [options] The optional parameters\n * @returns Promise\n */\n setAccessPolicy(options?: Models.ContainerSetAccessPolicyOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n setAccessPolicy(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n setAccessPolicy(options: Models.ContainerSetAccessPolicyOptionalParams, callback: coreHttp.ServiceCallback): void;\n setAccessPolicy(options?: Models.ContainerSetAccessPolicyOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n setAccessPolicyOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Restores a previously-deleted container.\n * @param [options] The optional parameters\n * @returns Promise\n */\n restore(options?: Models.ContainerRestoreOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n restore(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n restore(options: Models.ContainerRestoreOptionalParams, callback: coreHttp.ServiceCallback): void;\n restore(options?: Models.ContainerRestoreOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n restoreOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] establishes and manages a lock on a container for delete operations. The lock duration\n * can be 15 to 60 seconds, or can be infinite\n * @param [options] The optional parameters\n * @returns Promise\n */\n acquireLease(options?: Models.ContainerAcquireLeaseOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n acquireLease(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n acquireLease(options: Models.ContainerAcquireLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n acquireLease(options?: Models.ContainerAcquireLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n acquireLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] establishes and manages a lock on a container for delete operations. The lock duration\n * can be 15 to 60 seconds, or can be infinite\n * @param leaseId Specifies the current lease ID on the resource.\n * @param [options] The optional parameters\n * @returns Promise\n */\n releaseLease(leaseId: string, options?: Models.ContainerReleaseLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param callback The callback\n */\n releaseLease(leaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The optional parameters\n * @param callback The callback\n */\n releaseLease(leaseId: string, options: Models.ContainerReleaseLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n releaseLease(leaseId: string, options?: Models.ContainerReleaseLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n options\n },\n releaseLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] establishes and manages a lock on a container for delete operations. The lock duration\n * can be 15 to 60 seconds, or can be infinite\n * @param leaseId Specifies the current lease ID on the resource.\n * @param [options] The optional parameters\n * @returns Promise\n */\n renewLease(leaseId: string, options?: Models.ContainerRenewLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param callback The callback\n */\n renewLease(leaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The optional parameters\n * @param callback The callback\n */\n renewLease(leaseId: string, options: Models.ContainerRenewLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n renewLease(leaseId: string, options?: Models.ContainerRenewLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n options\n },\n renewLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] establishes and manages a lock on a container for delete operations. The lock duration\n * can be 15 to 60 seconds, or can be infinite\n * @param [options] The optional parameters\n * @returns Promise\n */\n breakLease(options?: Models.ContainerBreakLeaseOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n breakLease(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n breakLease(options: Models.ContainerBreakLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n breakLease(options?: Models.ContainerBreakLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n breakLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] establishes and manages a lock on a container for delete operations. The lock duration\n * can be 15 to 60 seconds, or can be infinite\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param [options] The optional parameters\n * @returns Promise\n */\n changeLease(leaseId: string, proposedLeaseId: string, options?: Models.ContainerChangeLeaseOptionalParams): Promise;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param callback The callback\n */\n changeLease(leaseId: string, proposedLeaseId: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param options The optional parameters\n * @param callback The callback\n */\n changeLease(leaseId: string, proposedLeaseId: string, options: Models.ContainerChangeLeaseOptionalParams, callback: coreHttp.ServiceCallback): void;\n changeLease(leaseId: string, proposedLeaseId: string, options?: Models.ContainerChangeLeaseOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n leaseId,\n proposedLeaseId,\n options\n },\n changeLeaseOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The List Blobs operation returns a list of the blobs under the specified container\n * @param [options] The optional parameters\n * @returns Promise\n */\n listBlobFlatSegment(options?: Models.ContainerListBlobFlatSegmentOptionalParams): Promise;\n /**\n * @param callback The callback\n */\n listBlobFlatSegment(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n listBlobFlatSegment(options: Models.ContainerListBlobFlatSegmentOptionalParams, callback: coreHttp.ServiceCallback): void;\n listBlobFlatSegment(options?: Models.ContainerListBlobFlatSegmentOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n listBlobFlatSegmentOperationSpec,\n callback) as Promise;\n }\n\n /**\n * [Update] The List Blobs operation returns a list of the blobs under the specified container\n * @param delimiter When the request includes this parameter, the operation returns a BlobPrefix\n * element in the response body that acts as a placeholder for all blobs whose names begin with the\n * same substring up to the appearance of the delimiter character. The delimiter may be a single\n * character or a string.\n * @param [options] The optional parameters\n * @returns Promise\n */\n listBlobHierarchySegment(delimiter: string, options?: Models.ContainerListBlobHierarchySegmentOptionalParams): Promise;\n /**\n * @param delimiter When the request includes this parameter, the operation returns a BlobPrefix\n * element in the response body that acts as a placeholder for all blobs whose names begin with the\n * same substring up to the appearance of the delimiter character. The delimiter may be a single\n * character or a string.\n * @param callback The callback\n */\n listBlobHierarchySegment(delimiter: string, callback: coreHttp.ServiceCallback): void;\n /**\n * @param delimiter When the request includes this parameter, the operation returns a BlobPrefix\n * element in the response body that acts as a placeholder for all blobs whose names begin with the\n * same substring up to the appearance of the delimiter character. The delimiter may be a single\n * character or a string.\n * @param options The optional parameters\n * @param callback The callback\n */\n listBlobHierarchySegment(delimiter: string, options: Models.ContainerListBlobHierarchySegmentOptionalParams, callback: coreHttp.ServiceCallback): void;\n listBlobHierarchySegment(delimiter: string, options?: Models.ContainerListBlobHierarchySegmentOptionalParams | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n delimiter,\n options\n },\n listBlobHierarchySegmentOperationSpec,\n callback) as Promise;\n }\n\n /**\n * Returns the sku name and account kind\n * @param [options] The optional parameters\n * @returns Promise\n */\n getAccountInfo(options?: coreHttp.RequestOptionsBase): Promise;\n /**\n * @param callback The callback\n */\n getAccountInfo(callback: coreHttp.ServiceCallback): void;\n /**\n * @param options The optional parameters\n * @param callback The callback\n */\n getAccountInfo(options: coreHttp.RequestOptionsBase, callback: coreHttp.ServiceCallback): void;\n getAccountInfo(options?: coreHttp.RequestOptionsBase | coreHttp.ServiceCallback, callback?: coreHttp.ServiceCallback): Promise {\n return this.client.sendOperationRequest(\n {\n options\n },\n getAccountInfoOperationSpec,\n callback) as Promise;\n }\n}\n\n// Operation Specifications\nconst serializer = new coreHttp.Serializer(Mappers, true);\nconst createOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.access,\n Parameters.version,\n Parameters.requestId,\n Parameters.defaultEncryptionScope,\n Parameters.preventEncryptionScopeOverride\n ],\n responses: {\n 201: {\n headersMapper: Mappers.ContainerCreateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerCreateHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getPropertiesOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerGetPropertiesHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst deleteMethodOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"DELETE\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 202: {\n headersMapper: Mappers.ContainerDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerDeleteHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setMetadataOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp6\n ],\n headerParameters: [\n Parameters.metadata,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.ifModifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerSetMetadataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerSetMetadataHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getAccessPolicyOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp7\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0\n ],\n responses: {\n 200: {\n bodyMapper: {\n xmlElementName: \"SignedIdentifier\",\n serializedName: \"parsedResponse\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n },\n headersMapper: Mappers.ContainerGetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerGetAccessPolicyHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst setAccessPolicyOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp7\n ],\n headerParameters: [\n Parameters.access,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n requestBody: {\n parameterPath: [\n \"options\",\n \"containerAcl\"\n ],\n mapper: {\n xmlName: \"SignedIdentifiers\",\n xmlElementName: \"SignedIdentifier\",\n serializedName: \"containerAcl\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n }\n },\n contentType: \"application/xml; charset=utf-8\",\n responses: {\n 200: {\n headersMapper: Mappers.ContainerSetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerSetAccessPolicyHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst restoreOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp8\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.deletedContainerName,\n Parameters.deletedContainerVersion\n ],\n responses: {\n 201: {\n headersMapper: Mappers.ContainerRestoreHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerRestoreHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst acquireLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.duration,\n Parameters.proposedLeaseId0,\n Parameters.version,\n Parameters.requestId,\n Parameters.action0,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 201: {\n headersMapper: Mappers.ContainerAcquireLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerAcquireLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst releaseLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerReleaseLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerReleaseLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst renewLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action2,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerRenewLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerRenewLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst breakLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.breakPeriod,\n Parameters.version,\n Parameters.requestId,\n Parameters.action3,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 202: {\n headersMapper: Mappers.ContainerBreakLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerBreakLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst changeLeaseOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"PUT\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp9,\n Parameters.restype2\n ],\n headerParameters: [\n Parameters.leaseId1,\n Parameters.proposedLeaseId1,\n Parameters.version,\n Parameters.requestId,\n Parameters.action4,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerChangeLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerChangeLeaseHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst listBlobFlatSegmentOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.prefix,\n Parameters.marker0,\n Parameters.maxPageSize,\n Parameters.include1,\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp2\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId\n ],\n responses: {\n 200: {\n bodyMapper: Mappers.ListBlobsFlatSegmentResponse,\n headersMapper: Mappers.ContainerListBlobFlatSegmentHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerListBlobFlatSegmentHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst listBlobHierarchySegmentOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.prefix,\n Parameters.delimiter,\n Parameters.marker0,\n Parameters.maxPageSize,\n Parameters.include1,\n Parameters.timeoutInSeconds,\n Parameters.restype2,\n Parameters.comp2\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId\n ],\n responses: {\n 200: {\n bodyMapper: Mappers.ListBlobsHierarchySegmentResponse,\n headersMapper: Mappers.ContainerListBlobHierarchySegmentHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerListBlobHierarchySegmentHeaders\n }\n },\n isXML: true,\n serializer\n};\n\nconst getAccountInfoOperationSpec: coreHttp.OperationSpec = {\n httpMethod: \"GET\",\n path: \"{containerName}\",\n urlParameters: [\n Parameters.url\n ],\n queryParameters: [\n Parameters.restype1,\n Parameters.comp0\n ],\n headerParameters: [\n Parameters.version\n ],\n responses: {\n 200: {\n headersMapper: Mappers.ContainerGetAccountInfoHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ContainerGetAccountInfoHeaders\n }\n },\n isXML: true,\n serializer\n};\n","var listenersMap = new WeakMap();\nvar abortedMap = new WeakMap();\n/**\n * An aborter instance implements AbortSignal interface, can abort HTTP requests.\n *\n * - Call AbortSignal.none to create a new AbortSignal instance that cannot be cancelled.\n * Use `AbortSignal.none` when you are required to pass a cancellation token but the operation\n * cannot or will not ever be cancelled.\n *\n * @example\n * // Abort without timeout\n * await doAsyncWork(AbortSignal.none);\n *\n * @export\n * @class AbortSignal\n * @implements {AbortSignalLike}\n */\nvar AbortSignal = /** @class */ (function () {\n function AbortSignal() {\n /**\n * onabort event listener.\n *\n * @memberof AbortSignal\n */\n this.onabort = null;\n listenersMap.set(this, []);\n abortedMap.set(this, false);\n }\n Object.defineProperty(AbortSignal.prototype, \"aborted\", {\n /**\n * Status of whether aborted or not.\n *\n * @readonly\n * @type {boolean}\n * @memberof AbortSignal\n */\n get: function () {\n if (!abortedMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n return abortedMap.get(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AbortSignal, \"none\", {\n /**\n * Creates a new AbortSignal instance that will never be aborted.\n *\n * @readonly\n * @static\n * @type {AbortSignal}\n * @memberof AbortSignal\n */\n get: function () {\n return new AbortSignal();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Added new \"abort\" event listener, only support \"abort\" event.\n *\n * @param {\"abort\"} _type Only support \"abort\" event\n * @param {(this: AbortSignalLike, ev: any) => any} listener\n * @memberof AbortSignal\n */\n AbortSignal.prototype.addEventListener = function (\n // tslint:disable-next-line:variable-name\n _type, listener) {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n var listeners = listenersMap.get(this);\n listeners.push(listener);\n };\n /**\n * Remove \"abort\" event listener, only support \"abort\" event.\n *\n * @param {\"abort\"} _type Only support \"abort\" event\n * @param {(this: AbortSignalLike, ev: any) => any} listener\n * @memberof AbortSignal\n */\n AbortSignal.prototype.removeEventListener = function (\n // tslint:disable-next-line:variable-name\n _type, listener) {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n var listeners = listenersMap.get(this);\n var index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n /**\n * Dispatches a synthetic event to the AbortSignal.\n */\n AbortSignal.prototype.dispatchEvent = function (_event) {\n throw new Error(\"This is a stub dispatchEvent implementation that should not be used. It only exists for type-checking purposes.\");\n };\n return AbortSignal;\n}());\nexport { AbortSignal };\n/**\n * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.\n * Will try to trigger abort event for all linked AbortSignal nodes.\n *\n * - If there is a timeout, the timer will be cancelled.\n * - If aborted is true, nothing will happen.\n *\n * @returns\n * @internal\n */\nexport function abortSignal(signal) {\n if (signal.aborted) {\n return;\n }\n if (signal.onabort) {\n signal.onabort.call(signal);\n }\n var listeners = listenersMap.get(signal);\n if (listeners) {\n listeners.forEach(function (listener) {\n listener.call(signal, { type: \"abort\" });\n });\n }\n abortedMap.set(signal, true);\n}\n//# sourceMappingURL=AbortSignal.js.map","import { __extends } from \"tslib\";\nimport { AbortSignal, abortSignal } from \"./AbortSignal\";\n/**\n * This error is thrown when an asynchronous operation has been aborted.\n * Check for this error by testing the `name` that the name property of the\n * error matches `\"AbortError\"`.\n *\n * @example\n * const controller = new AbortController();\n * controller.abort();\n * try {\n * doAsyncWork(controller.signal)\n * } catch (e) {\n * if (e.name === 'AbortError') {\n * // handle abort error here.\n * }\n * }\n */\nvar AbortError = /** @class */ (function (_super) {\n __extends(AbortError, _super);\n function AbortError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = \"AbortError\";\n return _this;\n }\n return AbortError;\n}(Error));\nexport { AbortError };\n/**\n * An AbortController provides an AbortSignal and the associated controls to signal\n * that an asynchronous operation should be aborted.\n *\n * @example\n * // Abort an operation when another event fires\n * const controller = new AbortController();\n * const signal = controller.signal;\n * doAsyncWork(signal);\n * button.addEventListener('click', () => controller.abort());\n *\n * @example\n * // Share aborter cross multiple operations in 30s\n * // Upload the same data to 2 different data centers at the same time,\n * // abort another when any of them is finished\n * const controller = AbortController.withTimeout(30 * 1000);\n * doAsyncWork(controller.signal).then(controller.abort);\n * doAsyncWork(controller.signal).then(controller.abort);\n *\n * @example\n * // Cascaded aborting\n * // All operations can't take more than 30 seconds\n * const aborter = Aborter.timeout(30 * 1000);\n *\n * // Following 2 operations can't take more than 25 seconds\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n *\n * @export\n * @class AbortController\n * @implements {AbortSignalLike}\n */\nvar AbortController = /** @class */ (function () {\n function AbortController(parentSignals) {\n var _this = this;\n this._signal = new AbortSignal();\n if (!parentSignals) {\n return;\n }\n // coerce parentSignals into an array\n if (!Array.isArray(parentSignals)) {\n parentSignals = arguments;\n }\n for (var _i = 0, parentSignals_1 = parentSignals; _i < parentSignals_1.length; _i++) {\n var parentSignal = parentSignals_1[_i];\n // if the parent signal has already had abort() called,\n // then call abort on this signal as well.\n if (parentSignal.aborted) {\n this.abort();\n }\n else {\n // when the parent signal aborts, this signal should as well.\n parentSignal.addEventListener(\"abort\", function () {\n _this.abort();\n });\n }\n }\n }\n Object.defineProperty(AbortController.prototype, \"signal\", {\n /**\n * The AbortSignal associated with this controller that will signal aborted\n * when the abort method is called on this controller.\n *\n * @readonly\n * @type {AbortSignal}\n * @memberof AbortController\n */\n get: function () {\n return this._signal;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Signal that any operations passed this controller's associated abort signal\n * to cancel any remaining work and throw an `AbortError`.\n *\n * @memberof AbortController\n */\n AbortController.prototype.abort = function () {\n abortSignal(this._signal);\n };\n /**\n * Creates a new AbortSignal instance that will abort after the provided ms.\n *\n * @static\n * @params {number} ms Elapsed time in milliseconds to trigger an abort.\n * @returns {AbortSignal}\n */\n AbortController.timeout = function (ms) {\n var signal = new AbortSignal();\n var timer = setTimeout(abortSignal, ms, signal);\n // Prevent the active Timer from keeping the Node.js event loop active.\n if (typeof timer.unref === \"function\") {\n timer.unref();\n }\n return signal;\n };\n return AbortController;\n}());\nexport { AbortController };\n//# sourceMappingURL=AbortController.js.map","/** @license React v17.0.1\n * react-jsx-runtime.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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.1\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){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;this.removeEmptyString=g}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,!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,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback 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,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(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 jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(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 mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=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!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!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=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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();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=Xa(a.document)}return b}function Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction 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 Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction 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(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta: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||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&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}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(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 ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> 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 define(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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryTtl = void 0;\n/**\n * EntryTtl is an integer that represents number of hops an entry can propagate.\n *\n * For now, ONLY special values (0 and -1) are supported.\n */\nvar EntryTtl;\n(function (EntryTtl) {\n /**\n * NO_PROPAGATION is considered to have local context and is used within the\n * process it created.\n */\n EntryTtl[EntryTtl[\"NO_PROPAGATION\"] = 0] = \"NO_PROPAGATION\";\n /** UNLIMITED_PROPAGATION can propagate unlimited hops. */\n EntryTtl[EntryTtl[\"UNLIMITED_PROPAGATION\"] = -1] = \"UNLIMITED_PROPAGATION\";\n})(EntryTtl = exports.EntryTtl || (exports.EntryTtl = {}));\n//# sourceMappingURL=EntryValue.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueType = void 0;\n/** The Type of value. It describes how the data is reported. */\nvar ValueType;\n(function (ValueType) {\n ValueType[ValueType[\"INT\"] = 0] = \"INT\";\n ValueType[ValueType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n})(ValueType = exports.ValueType || (exports.ValueType = {}));\n//# sourceMappingURL=Metric.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SamplingDecision = void 0;\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nvar SamplingDecision;\n(function (SamplingDecision) {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n SamplingDecision[SamplingDecision[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD\"] = 1] = \"RECORD\";\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n})(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {}));\n//# sourceMappingURL=SamplingResult.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanKind = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar SpanKind;\n(function (SpanKind) {\n /** Default value. Indicates that the span is used internally. */\n SpanKind[SpanKind[\"INTERNAL\"] = 0] = \"INTERNAL\";\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SpanKind[SpanKind[\"SERVER\"] = 1] = \"SERVER\";\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n SpanKind[SpanKind[\"CLIENT\"] = 2] = \"CLIENT\";\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"PRODUCER\"] = 3] = \"PRODUCER\";\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"CONSUMER\"] = 4] = \"CONSUMER\";\n})(SpanKind = exports.SpanKind || (exports.SpanKind = {}));\n//# sourceMappingURL=span_kind.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanonicalCode = void 0;\n/**\n * An enumeration of canonical status codes.\n */\nvar CanonicalCode;\n(function (CanonicalCode) {\n /**\n * Not an error; returned on success\n */\n CanonicalCode[CanonicalCode[\"OK\"] = 0] = \"OK\";\n /**\n * The operation was cancelled (typically by the caller).\n */\n CanonicalCode[CanonicalCode[\"CANCELLED\"] = 1] = \"CANCELLED\";\n /**\n * Unknown error. An example of where this error may be returned is\n * if a status value received from another address space belongs to\n * an error-space that is not known in this address space. Also\n * errors raised by APIs that do not return enough error information\n * may be converted to this error.\n */\n CanonicalCode[CanonicalCode[\"UNKNOWN\"] = 2] = \"UNKNOWN\";\n /**\n * Client specified an invalid argument. Note that this differs\n * from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments\n * that are problematic regardless of the state of the system\n * (e.g., a malformed file name).\n */\n CanonicalCode[CanonicalCode[\"INVALID_ARGUMENT\"] = 3] = \"INVALID_ARGUMENT\";\n /**\n * Deadline expired before operation could complete. For operations\n * that change the state of the system, this error may be returned\n * even if the operation has completed successfully. For example, a\n * successful response from a server could have been delayed long\n * enough for the deadline to expire.\n */\n CanonicalCode[CanonicalCode[\"DEADLINE_EXCEEDED\"] = 4] = \"DEADLINE_EXCEEDED\";\n /**\n * Some requested entity (e.g., file or directory) was not found.\n */\n CanonicalCode[CanonicalCode[\"NOT_FOUND\"] = 5] = \"NOT_FOUND\";\n /**\n * Some entity that we attempted to create (e.g., file or directory)\n * already exists.\n */\n CanonicalCode[CanonicalCode[\"ALREADY_EXISTS\"] = 6] = \"ALREADY_EXISTS\";\n /**\n * The caller does not have permission to execute the specified\n * operation. PERMISSION_DENIED must not be used for rejections\n * caused by exhausting some resource (use RESOURCE_EXHAUSTED\n * instead for those errors). PERMISSION_DENIED must not be\n * used if the caller can not be identified (use UNAUTHENTICATED\n * instead for those errors).\n */\n CanonicalCode[CanonicalCode[\"PERMISSION_DENIED\"] = 7] = \"PERMISSION_DENIED\";\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or\n * perhaps the entire file system is out of space.\n */\n CanonicalCode[CanonicalCode[\"RESOURCE_EXHAUSTED\"] = 8] = \"RESOURCE_EXHAUSTED\";\n /**\n * Operation was rejected because the system is not in a state\n * required for the operation's execution. For example, directory\n * to be deleted may be non-empty, an rmdir operation is applied to\n * a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n *\n * - Use UNAVAILABLE if the client can retry just the failing call.\n * - Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * - Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * - Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n CanonicalCode[CanonicalCode[\"FAILED_PRECONDITION\"] = 9] = \"FAILED_PRECONDITION\";\n /**\n * The operation was aborted, typically due to a concurrency issue\n * like sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION,\n * ABORTED, and UNAVAILABLE.\n */\n CanonicalCode[CanonicalCode[\"ABORTED\"] = 10] = \"ABORTED\";\n /**\n * Operation was attempted past the valid range. E.g., seeking or\n * reading past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may\n * be fixed if the system state changes. For example, a 32-bit file\n * system will generate INVALID_ARGUMENT if asked to read at an\n * offset that is not in the range [0,2^32-1], but it will generate\n * OUT_OF_RANGE if asked to read from an offset past the current\n * file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific\n * error) when it applies so that callers who are iterating through\n * a space can easily look for an OUT_OF_RANGE error to detect when\n * they are done.\n */\n CanonicalCode[CanonicalCode[\"OUT_OF_RANGE\"] = 11] = \"OUT_OF_RANGE\";\n /**\n * Operation is not implemented or not supported/enabled in this service.\n */\n CanonicalCode[CanonicalCode[\"UNIMPLEMENTED\"] = 12] = \"UNIMPLEMENTED\";\n /**\n * Internal errors. Means some invariants expected by underlying\n * system has been broken. If you see one of these errors,\n * something is very broken.\n */\n CanonicalCode[CanonicalCode[\"INTERNAL\"] = 13] = \"INTERNAL\";\n /**\n * The service is currently unavailable. This is a most likely a\n * transient condition and may be corrected by retrying with\n * a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION,\n * ABORTED, and UNAVAILABLE.\n */\n CanonicalCode[CanonicalCode[\"UNAVAILABLE\"] = 14] = \"UNAVAILABLE\";\n /**\n * Unrecoverable data loss or corruption.\n */\n CanonicalCode[CanonicalCode[\"DATA_LOSS\"] = 15] = \"DATA_LOSS\";\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n CanonicalCode[CanonicalCode[\"UNAUTHENTICATED\"] = 16] = \"UNAUTHENTICATED\";\n})(CanonicalCode = exports.CanonicalCode || (exports.CanonicalCode = {}));\n//# sourceMappingURL=status.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoopContextManager = void 0;\nvar context_1 = require(\"./context\");\nvar NoopContextManager = /** @class */ (function () {\n function NoopContextManager() {\n }\n NoopContextManager.prototype.active = function () {\n return context_1.Context.ROOT_CONTEXT;\n };\n NoopContextManager.prototype.with = function (context, fn) {\n return fn();\n };\n NoopContextManager.prototype.bind = function (target, context) {\n return target;\n };\n NoopContextManager.prototype.enable = function () {\n return this;\n };\n NoopContextManager.prototype.disable = function () {\n return this;\n };\n return NoopContextManager;\n}());\nexports.NoopContextManager = NoopContextManager;\n//# sourceMappingURL=NoopContextManager.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./globalThis\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexports._globalThis = typeof globalThis === 'object' ? globalThis : window;\n//# sourceMappingURL=globalThis.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceAPI = void 0;\nvar NoopTracerProvider_1 = require(\"../trace/NoopTracerProvider\");\nvar global_utils_1 = require(\"./global-utils\");\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nvar TraceAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function TraceAPI() {\n }\n /** Get the singleton instance of the Trace API */\n TraceAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global tracer. Returns the initialized global tracer provider\n */\n TraceAPI.prototype.setGlobalTracerProvider = function (provider) {\n if (global_utils_1._global[global_utils_1.GLOBAL_TRACE_API_KEY]) {\n // global tracer provider has already been set\n return this.getTracerProvider();\n }\n global_utils_1._global[global_utils_1.GLOBAL_TRACE_API_KEY] = global_utils_1.makeGetter(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopTracerProvider_1.NOOP_TRACER_PROVIDER);\n return this.getTracerProvider();\n };\n /**\n * Returns the global tracer provider.\n */\n TraceAPI.prototype.getTracerProvider = function () {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_TRACE_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : NoopTracerProvider_1.NOOP_TRACER_PROVIDER);\n };\n /**\n * Returns a tracer from the global tracer provider.\n */\n TraceAPI.prototype.getTracer = function (name, version) {\n return this.getTracerProvider().getTracer(name, version);\n };\n /** Remove the global tracer provider */\n TraceAPI.prototype.disable = function () {\n delete global_utils_1._global[global_utils_1.GLOBAL_TRACE_API_KEY];\n };\n return TraceAPI;\n}());\nexports.TraceAPI = TraceAPI;\n//# sourceMappingURL=trace.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetricsAPI = void 0;\nvar NoopMeterProvider_1 = require(\"../metrics/NoopMeterProvider\");\nvar global_utils_1 = require(\"./global-utils\");\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nvar MetricsAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function MetricsAPI() {\n }\n /** Get the singleton instance of the Metrics API */\n MetricsAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global meter. Returns the initialized global meter provider.\n */\n MetricsAPI.prototype.setGlobalMeterProvider = function (provider) {\n if (global_utils_1._global[global_utils_1.GLOBAL_METRICS_API_KEY]) {\n // global meter provider has already been set\n return this.getMeterProvider();\n }\n global_utils_1._global[global_utils_1.GLOBAL_METRICS_API_KEY] = global_utils_1.makeGetter(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopMeterProvider_1.NOOP_METER_PROVIDER);\n return provider;\n };\n /**\n * Returns the global meter provider.\n */\n MetricsAPI.prototype.getMeterProvider = function () {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_METRICS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : NoopMeterProvider_1.NOOP_METER_PROVIDER);\n };\n /**\n * Returns a meter from the global meter provider.\n */\n MetricsAPI.prototype.getMeter = function (name, version) {\n return this.getMeterProvider().getMeter(name, version);\n };\n /** Remove the global meter provider */\n MetricsAPI.prototype.disable = function () {\n delete global_utils_1._global[global_utils_1.GLOBAL_METRICS_API_KEY];\n };\n return MetricsAPI;\n}());\nexports.MetricsAPI = MetricsAPI;\n//# sourceMappingURL=metrics.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PropagationAPI = void 0;\nvar getter_1 = require(\"../context/propagation/getter\");\nvar NoopHttpTextPropagator_1 = require(\"../context/propagation/NoopHttpTextPropagator\");\nvar setter_1 = require(\"../context/propagation/setter\");\nvar context_1 = require(\"./context\");\nvar global_utils_1 = require(\"./global-utils\");\nvar contextApi = context_1.ContextAPI.getInstance();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nvar PropagationAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function PropagationAPI() {\n }\n /** Get the singleton instance of the Propagator API */\n PropagationAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n return this._instance;\n };\n /**\n * Set the current propagator. Returns the initialized propagator\n */\n PropagationAPI.prototype.setGlobalPropagator = function (propagator) {\n if (global_utils_1._global[global_utils_1.GLOBAL_PROPAGATION_API_KEY]) {\n // global propagator has already been set\n return this._getGlobalPropagator();\n }\n global_utils_1._global[global_utils_1.GLOBAL_PROPAGATION_API_KEY] = global_utils_1.makeGetter(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, propagator, NoopHttpTextPropagator_1.NOOP_HTTP_TEXT_PROPAGATOR);\n return propagator;\n };\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n * @param context Context carrying tracing data to inject. Defaults to the currently active context.\n */\n PropagationAPI.prototype.inject = function (carrier, setter, context) {\n if (setter === void 0) { setter = setter_1.defaultSetter; }\n if (context === void 0) { context = contextApi.active(); }\n return this._getGlobalPropagator().inject(context, carrier, setter);\n };\n /**\n * Extract context from a carrier\n *\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n * @param context Context which the newly created context will inherit from. Defaults to the currently active context.\n */\n PropagationAPI.prototype.extract = function (carrier, getter, context) {\n if (getter === void 0) { getter = getter_1.defaultGetter; }\n if (context === void 0) { context = contextApi.active(); }\n return this._getGlobalPropagator().extract(context, carrier, getter);\n };\n /** Remove the global propagator */\n PropagationAPI.prototype.disable = function () {\n delete global_utils_1._global[global_utils_1.GLOBAL_PROPAGATION_API_KEY];\n };\n PropagationAPI.prototype._getGlobalPropagator = function () {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_PROPAGATION_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : NoopHttpTextPropagator_1.NOOP_HTTP_TEXT_PROPAGATOR);\n };\n return PropagationAPI;\n}());\nexports.PropagationAPI = PropagationAPI;\n//# sourceMappingURL=propagation.js.map","\"use strict\";\nif (typeof Symbol === undefined || !Symbol.asyncIterator) {\n Symbol.asyncIterator = Symbol.for(\"Symbol.asyncIterator\");\n}\n//# sourceMappingURL=index.js.map","'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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a