{"version":3,"file":"static/js/7613_1356f5d08ee133bc6b7c.js","mappings":"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BACnBC,cAAe,gBACfC,oBAAqB,sBACrBC,mBAAoB,QACpBC,MAAO,QACPC,WAAY,aACZC,uBAAwB,yBACxBC,iBAAkB,mBAClBC,UAAW,YACXC,gBAAiB,kBACjBC,aAAc,gBAELC,EAAW,GACXC,EAAU,IAEVC,EAAoB,IAEpBC,EAAmB,OACnBC,EAAmB,WACnBC,EAA2B,SAC3BC,EAA8B,uNAC9BC,EAAuC,CAChD,8BACA,gBACA,iBACA,eACA,OACA,aACA,cACA,oBACA,aACA,yBACA,YACA,kBACA,kBACA,gCACA,eACA,gBACA,sBACA,mBACA,mBACA,cACA,gBACA,OACA,gBACA,SACA,OACA,qBACA,mBACA,4BACA,eACA,qBACA,mBACA,+BACA,sBACA,mBACA,oBACA,aACA,gCACA,wBACA,gBACA,oBACA,WACA,oBACA,gBACA,sBACA,mBACA,+BACA,4BACA,oBACA,sBACA,0BACA,0BACA,kCACA,gCACA,8BACA,gCACA,6BACA,6BACA,2BACA,wBACA,yBACA,0BACA,4BACA,iBACA,iCACA,qBACA,gCACA,wBACA,6BACA,sCACA,4BACA,6BACA,6BACA,6BACA,wBACA,oBACA,0BACA,sBACA,gBACA,kBACA,kBACA,yBACA,6BACA,0BACA,8BACA,gBACA,0BACA,uBACA,gCACA,4BACA,kCACA,iBACA,6BACA,eACA,uBAESC,EAA2C,CACpD,OACA,aACA,OACA,OACA,OACA,OACA,OACA,KACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,KACA,KACA,UACA,SACA,SACA,SACA,UACA,UACA,gBACA,YACA,eACA,MACA,QACA,MACA,MACA,QACA,MACA,YAESC,EAAyC,sCACzCC,EAA4C,4CAG5CC,EAAiB,CAC1B,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,Q,wDCrNG,MAAMC,GAAa,E,SAAA,GAAmB,CACzCC,cAAe,qBACfC,UAAW,sBASR,SAASC,EAAmCtW,GAC/C,IAAI2B,EAAI4U,E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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/CredentialPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/policies/TelemetryPolicy.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/AccountSASPermissions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/AccountSASServices.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/AccountSASResourceTypes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/AccountSASSignatureValues.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/BlobSASPermissions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/ContainerSASPermissions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/BlobSASSignatureValues.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/SASQueryParameters.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/sas/SasIPRange.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/Batch.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/Mutex.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/cache.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/constants.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/tracing.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/utils.browser.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-blob/src/utils/utils.common.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+storage-blob@12.15.0/node_modules/@azure/storage-blob/dist-esm/storage-common/src/BufferScheduler.browser.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/interopRequireDefault.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/typeof.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/createClass.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/createSuper.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/defineProperty.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/extends.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/inherits.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/typeof.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { CredentialPolicy } from \"./CredentialPolicy\";\n/**\n * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources\n * or for use with Shared Access Signatures (SAS).\n */\nexport class AnonymousCredentialPolicy extends CredentialPolicy {\n /**\n * Creates an instance of AnonymousCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy, options) {\n super(nextPolicy, options);\n }\n}\n//# sourceMappingURL=AnonymousCredentialPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { BaseRequestPolicy } from \"@azure/core-http\";\n/**\n * Credential policy used to sign HTTP(S) requests before sending. This is an\n * abstract class.\n */\nexport class CredentialPolicy extends BaseRequestPolicy {\n /**\n * Sends out request.\n *\n * @param request -\n */\n sendRequest(request) {\n return this._nextPolicy.sendRequest(this.signRequest(request));\n }\n /**\n * Child classes must implement this method with request signing. This method\n * will be executed in {@link sendRequest}.\n *\n * @param request -\n */\n signRequest(request) {\n // Child classes must override this method with request signing. This method\n // will be executed in sendRequest().\n return request;\n }\n}\n//# sourceMappingURL=CredentialPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { URLBuilder } from \"@azure/core-http\";\nimport { BaseRequestPolicy, } from \"@azure/core-http\";\nimport { delay } from \"@azure/core-http\";\n/**\n * A set of constants used internally when processing requests.\n */\nconst Constants = {\n DefaultScope: \"/.default\",\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n */\n AUTHORIZATION: \"authorization\",\n },\n};\n// Default options for the cycler if none are provided\nconst DEFAULT_CYCLER_OPTIONS = {\n forcedRefreshWindowInMs: 1000,\n retryIntervalInMs: 3000,\n refreshWindowInMs: 1000 * 60 * 2, // Start refreshing 2m before expiry\n};\n/**\n * Converts an an unreliable access token getter (which may resolve with null)\n * into an AccessTokenGetter by retrying the unreliable getter in a regular\n * interval.\n *\n * @param getAccessToken - a function that produces a promise of an access\n * token that may fail by returning null\n * @param retryIntervalInMs - the time (in milliseconds) to wait between retry\n * attempts\n * @param timeoutInMs - the timestamp after which the refresh attempt will fail,\n * throwing an exception\n * @returns - a promise that, if it resolves, will resolve with an access token\n */\nasync function beginRefresh(getAccessToken, retryIntervalInMs, timeoutInMs) {\n // This wrapper handles exceptions gracefully as long as we haven't exceeded\n // the timeout.\n async function tryGetAccessToken() {\n if (Date.now() < timeoutInMs) {\n try {\n return await getAccessToken();\n }\n catch (_a) {\n return null;\n }\n }\n else {\n const finalToken = await getAccessToken();\n // Timeout is up, so throw if it's still null\n if (finalToken === null) {\n throw new Error(\"Failed to refresh access token.\");\n }\n return finalToken;\n }\n }\n let token = await tryGetAccessToken();\n while (token === null) {\n await delay(retryIntervalInMs);\n token = await tryGetAccessToken();\n }\n return token;\n}\n/**\n * Creates a token cycler from a credential, scopes, and optional settings.\n *\n * A token cycler represents a way to reliably retrieve a valid access token\n * from a TokenCredential. It will handle initializing the token, refreshing it\n * when it nears expiration, and synchronizes refresh attempts to avoid\n * concurrency hazards.\n *\n * @param credential - the underlying TokenCredential that provides the access\n * token\n * @param scopes - the scopes to request authorization for\n * @param tokenCyclerOptions - optionally override default settings for the cycler\n *\n * @returns - a function that reliably produces a valid access token\n */\nfunction createTokenCycler(credential, scopes, tokenCyclerOptions) {\n let refreshWorker = null;\n let token = null;\n const options = Object.assign(Object.assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions);\n /**\n * This little holder defines several predicates that we use to construct\n * the rules of refreshing the token.\n */\n const cycler = {\n /**\n * Produces true if a refresh job is currently in progress.\n */\n get isRefreshing() {\n return refreshWorker !== null;\n },\n /**\n * Produces true if the cycler SHOULD refresh (we are within the refresh\n * window and not already refreshing)\n */\n get shouldRefresh() {\n var _a;\n return (!cycler.isRefreshing &&\n ((_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : 0) - options.refreshWindowInMs < Date.now());\n },\n /**\n * Produces true if the cycler MUST refresh (null or nearly-expired\n * token).\n */\n get mustRefresh() {\n return (token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now());\n },\n };\n /**\n * Starts a refresh job or returns the existing job if one is already\n * running.\n */\n function refresh(getTokenOptions) {\n var _a;\n if (!cycler.isRefreshing) {\n // We bind `scopes` here to avoid passing it around a lot\n const tryGetAccessToken = () => credential.getToken(scopes, getTokenOptions);\n // Take advantage of promise chaining to insert an assignment to `token`\n // before the refresh can be considered done.\n refreshWorker = beginRefresh(tryGetAccessToken, options.retryIntervalInMs, \n // If we don't have a token, then we should timeout immediately\n (_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : Date.now())\n .then((_token) => {\n refreshWorker = null;\n token = _token;\n return token;\n })\n .catch((reason) => {\n // We also should reset the refresher if we enter a failed state. All\n // existing awaiters will throw, but subsequent requests will start a\n // new retry chain.\n refreshWorker = null;\n token = null;\n throw reason;\n });\n }\n return refreshWorker;\n }\n return async (tokenOptions) => {\n //\n // Simple rules:\n // - If we MUST refresh, then return the refresh task, blocking\n // the pipeline until a token is available.\n // - If we SHOULD refresh, then run refresh but don't return it\n // (we can still use the cached token).\n // - Return the token, since it's fine if we didn't return in\n // step 1.\n //\n if (cycler.mustRefresh)\n return refresh(tokenOptions);\n if (cycler.shouldRefresh) {\n refresh(tokenOptions);\n }\n return token;\n };\n}\n/**\n * We will retrieve the challenge only if the response status code was 401,\n * and if the response contained the header \"WWW-Authenticate\" with a non-empty value.\n */\nfunction getChallenge(response) {\n const challenge = response.headers.get(\"WWW-Authenticate\");\n if (response.status === 401 && challenge) {\n return challenge;\n }\n return;\n}\n/**\n * Converts: `Bearer a=\"b\" c=\"d\"`.\n * Into: `[ { a: 'b', c: 'd' }]`.\n *\n * @internal\n */\nfunction parseChallenge(challenge) {\n const bearerChallenge = challenge.slice(\"Bearer \".length);\n const challengeParts = `${bearerChallenge.trim()} `.split(\" \").filter((x) => x);\n const keyValuePairs = challengeParts.map((keyValue) => (([key, value]) => ({ [key]: value }))(keyValue.trim().split(\"=\")));\n // Key-value pairs to plain object:\n return keyValuePairs.reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});\n}\n// #endregion\n/**\n * Creates a new factory for a RequestPolicy that applies a bearer token to\n * the requests' `Authorization` headers.\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 storageBearerTokenChallengeAuthenticationPolicy(credential, scopes) {\n // This simple function encapsulates the entire process of reliably retrieving the token\n let getToken = createTokenCycler(credential, scopes);\n class StorageBearerTokenChallengeAuthenticationPolicy extends BaseRequestPolicy {\n constructor(nextPolicy, options) {\n super(nextPolicy, options);\n }\n async sendRequest(webResource) {\n if (!webResource.url.toLowerCase().startsWith(\"https://\")) {\n throw new Error(\"Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.\");\n }\n const getTokenInternal = getToken;\n const token = (await getTokenInternal({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n tracingContext: webResource.tracingContext,\n },\n })).token;\n webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`);\n const response = await this._nextPolicy.sendRequest(webResource);\n if ((response === null || response === void 0 ? void 0 : response.status) === 401) {\n const challenge = getChallenge(response);\n if (challenge) {\n const challengeInfo = parseChallenge(challenge);\n const challengeScopes = challengeInfo.resource_id + Constants.DefaultScope;\n const parsedAuthUri = URLBuilder.parse(challengeInfo.authorization_uri);\n const pathSegments = parsedAuthUri.getPath().split(\"/\");\n const tenantId = pathSegments[1];\n const getTokenForChallenge = createTokenCycler(credential, challengeScopes);\n const tokenForChallenge = (await getTokenForChallenge({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n tracingContext: webResource.tracingContext,\n },\n tenantId: tenantId,\n })).token;\n getToken = getTokenForChallenge;\n webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${tokenForChallenge}`);\n return this._nextPolicy.sendRequest(webResource);\n }\n }\n return response;\n }\n }\n return {\n create: (nextPolicy, options) => {\n return new StorageBearerTokenChallengeAuthenticationPolicy(nextPolicy, options);\n },\n };\n}\n//# sourceMappingURL=StorageBearerTokenChallengeAuthenticationPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { BaseRequestPolicy, isNode, } from \"@azure/core-http\";\nimport { HeaderConstants, URLConstants } from \"../utils/constants\";\nimport { setURLParameter } from \"../utils/utils.common\";\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 */\nexport class StorageBrowserPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of StorageBrowserPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy, options) {\n super(nextPolicy, options);\n }\n /**\n * Sends out request.\n *\n * @param request -\n */\n async sendRequest(request) {\n if (isNode) {\n return this._nextPolicy.sendRequest(request);\n }\n if (request.method.toUpperCase() === \"GET\" || request.method.toUpperCase() === \"HEAD\") {\n request.url = setURLParameter(request.url, URLConstants.Parameters.FORCE_BROWSER_NO_CACHE, new Date().getTime().toString());\n }\n request.headers.remove(HeaderConstants.COOKIE);\n // According to XHR standards, content-length should be fully controlled by browsers\n request.headers.remove(HeaderConstants.CONTENT_LENGTH);\n return this._nextPolicy.sendRequest(request);\n }\n}\n//# sourceMappingURL=StorageBrowserPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { AbortError } from \"@azure/abort-controller\";\nimport { BaseRequestPolicy, } from \"@azure/core-http\";\nimport { URLConstants } from \"../utils/constants\";\nimport { delay, setURLHost, setURLParameter } from \"../utils/utils.common\";\nimport { logger } from \"../log\";\n/**\n * A factory method used to generated a RetryPolicy factory.\n *\n * @param retryOptions -\n */\nexport function NewRetryPolicyFactory(retryOptions) {\n return {\n create: (nextPolicy, options) => {\n return new StorageRetryPolicy(nextPolicy, options, retryOptions);\n },\n };\n}\n/**\n * RetryPolicy types.\n */\nexport var StorageRetryPolicyType;\n(function (StorageRetryPolicyType) {\n /**\n * Exponential retry. Retry time delay grows exponentially.\n */\n StorageRetryPolicyType[StorageRetryPolicyType[\"EXPONENTIAL\"] = 0] = \"EXPONENTIAL\";\n /**\n * Linear retry. Retry time delay grows linearly.\n */\n StorageRetryPolicyType[StorageRetryPolicyType[\"FIXED\"] = 1] = \"FIXED\";\n})(StorageRetryPolicyType || (StorageRetryPolicyType = {}));\n// Default values of StorageRetryOptions\nconst DEFAULT_RETRY_OPTIONS = {\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};\nconst RETRY_ABORT_ERROR = new AbortError(\"The operation was aborted.\");\n/**\n * Retry policy with exponential retry and linear retry implemented.\n */\nexport class StorageRetryPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of RetryPolicy.\n *\n * @param nextPolicy -\n * @param options -\n * @param retryOptions -\n */\n constructor(nextPolicy, options, retryOptions = DEFAULT_RETRY_OPTIONS) {\n super(nextPolicy, options);\n // Initialize retry options\n this.retryOptions = {\n retryPolicyType: retryOptions.retryPolicyType\n ? retryOptions.retryPolicyType\n : DEFAULT_RETRY_OPTIONS.retryPolicyType,\n maxTries: retryOptions.maxTries && retryOptions.maxTries >= 1\n ? Math.floor(retryOptions.maxTries)\n : DEFAULT_RETRY_OPTIONS.maxTries,\n tryTimeoutInMs: retryOptions.tryTimeoutInMs && retryOptions.tryTimeoutInMs >= 0\n ? retryOptions.tryTimeoutInMs\n : DEFAULT_RETRY_OPTIONS.tryTimeoutInMs,\n retryDelayInMs: retryOptions.retryDelayInMs && retryOptions.retryDelayInMs >= 0\n ? Math.min(retryOptions.retryDelayInMs, retryOptions.maxRetryDelayInMs\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs)\n : DEFAULT_RETRY_OPTIONS.retryDelayInMs,\n maxRetryDelayInMs: retryOptions.maxRetryDelayInMs && retryOptions.maxRetryDelayInMs >= 0\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs,\n secondaryHost: retryOptions.secondaryHost\n ? retryOptions.secondaryHost\n : DEFAULT_RETRY_OPTIONS.secondaryHost,\n };\n }\n /**\n * Sends request.\n *\n * @param request -\n */\n async sendRequest(request) {\n return this.attemptSendRequest(request, false, 1);\n }\n /**\n * Decide and perform next retry. Won't mutate request parameter.\n *\n * @param request -\n * @param 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 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 */\n async attemptSendRequest(request, secondaryHas404, attempt) {\n const newRequest = request.clone();\n const isPrimaryRetry = secondaryHas404 ||\n !this.retryOptions.secondaryHost ||\n !(request.method === \"GET\" || request.method === \"HEAD\" || request.method === \"OPTIONS\") ||\n attempt % 2 === 1;\n if (!isPrimaryRetry) {\n newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost);\n }\n // Set the server-side timeout query parameter \"timeout=[seconds]\"\n if (this.retryOptions.tryTimeoutInMs) {\n newRequest.url = setURLParameter(newRequest.url, URLConstants.Parameters.TIMEOUT, Math.floor(this.retryOptions.tryTimeoutInMs / 1000).toString());\n }\n let response;\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 secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404);\n }\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 await this.delay(isPrimaryRetry, attempt, request.abortSignal);\n return this.attemptSendRequest(request, secondaryHas404, ++attempt);\n }\n /**\n * Decide whether to retry according to last HTTP response and retry counters.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param response -\n * @param err -\n */\n shouldRetry(isPrimaryRetry, attempt, response, err) {\n if (attempt >= this.retryOptions.maxTries) {\n logger.info(`RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions\n .maxTries}, no further try.`);\n return false;\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 (err.name.toUpperCase().includes(retriableError) ||\n err.message.toUpperCase().includes(retriableError) ||\n (err.code && err.code.toString().toUpperCase() === retriableError)) {\n logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`);\n return true;\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 // 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 if ((err === null || err === void 0 ? void 0 : err.code) === \"PARSE_ERROR\" && (err === null || err === void 0 ? void 0 : err.message.startsWith(`Error \"Error: Unclosed root tag`))) {\n logger.info(\"RetryPolicy: Incomplete XML response likely due to service timeout, will retry.\");\n return true;\n }\n return false;\n }\n /**\n * Delay a calculated time between retries.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param abortSignal -\n */\n async delay(isPrimaryRetry, attempt, abortSignal) {\n let delayTimeInMs = 0;\n if (isPrimaryRetry) {\n switch (this.retryOptions.retryPolicyType) {\n case StorageRetryPolicyType.EXPONENTIAL:\n delayTimeInMs = Math.min((Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs, this.retryOptions.maxRetryDelayInMs);\n break;\n case StorageRetryPolicyType.FIXED:\n delayTimeInMs = this.retryOptions.retryDelayInMs;\n break;\n }\n }\n else {\n delayTimeInMs = Math.random() * 1000;\n }\n logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`);\n return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR);\n }\n}\n//# sourceMappingURL=StorageRetryPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { BaseRequestPolicy, HttpHeaders, isNode, } from \"@azure/core-http\";\nimport { HeaderConstants } from \"../utils/constants\";\n/**\n * TelemetryPolicy is a policy used to tag user-agent header for every requests.\n */\nexport class TelemetryPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of TelemetryPolicy.\n * @param nextPolicy -\n * @param options -\n * @param telemetry -\n */\n constructor(nextPolicy, options, telemetry) {\n super(nextPolicy, options);\n this.telemetry = telemetry;\n }\n /**\n * Sends out request.\n *\n * @param request -\n */\n async sendRequest(request) {\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 return this._nextPolicy.sendRequest(request);\n }\n}\n//# sourceMappingURL=TelemetryPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { delay } from \"@azure/core-http\";\nimport { Poller } from \"@azure/core-lro\";\n/**\n * This is the poller returned by {@link BlobClient.beginCopyFromURL}.\n * This can not be instantiated directly outside of this package.\n *\n * @hidden\n */\nexport class BlobBeginCopyFromUrlPoller extends Poller {\n constructor(options) {\n const { blobClient, copySource, intervalInMs = 15000, onProgress, resumeFrom, startCopyFromURLOptions, } = options;\n let state;\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n const operation = makeBlobBeginCopyFromURLPollOperation(Object.assign(Object.assign({}, state), { blobClient,\n copySource,\n startCopyFromURLOptions }));\n super(operation);\n if (typeof onProgress === \"function\") {\n this.onProgress(onProgress);\n }\n this.intervalInMs = intervalInMs;\n }\n delay() {\n return delay(this.intervalInMs);\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 * @hidden\n */\nconst cancel = async function cancel(options = {}) {\n const state = this.state;\n const { copyId } = state;\n if (state.isCompleted) {\n return makeBlobBeginCopyFromURLPollOperation(state);\n }\n if (!copyId) {\n state.isCancelled = true;\n return makeBlobBeginCopyFromURLPollOperation(state);\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 return makeBlobBeginCopyFromURLPollOperation(state);\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 * @hidden\n */\nconst update = async function update(options = {}) {\n const state = this.state;\n const { blobClient, copySource, startCopyFromURLOptions } = state;\n if (!state.isStarted) {\n state.isStarted = true;\n const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions);\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 }\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 (copyStatus === \"pending\" &&\n copyProgress !== prevCopyProgress &&\n typeof options.fireProgress === \"function\") {\n // trigger in setTimeout, or swallow error?\n options.fireProgress(state);\n }\n else if (copyStatus === \"success\") {\n state.result = result;\n state.isCompleted = true;\n }\n else if (copyStatus === \"failed\") {\n state.error = new Error(`Blob copy failed with reason: \"${result.copyStatusDescription || \"unknown\"}\"`);\n state.isCompleted = true;\n }\n }\n catch (err) {\n state.error = err;\n state.isCompleted = true;\n }\n }\n return makeBlobBeginCopyFromURLPollOperation(state);\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 * @hidden\n */\nconst toString = function toString() {\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 * Creates a poll operation given the provided state.\n * @hidden\n */\nfunction makeBlobBeginCopyFromURLPollOperation(state) {\n return {\n state: Object.assign({}, state),\n cancel,\n toString,\n update,\n };\n}\n//# sourceMappingURL=BlobStartCopyFromUrlPoller.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant permissions for that operation. Once all the\n * values are set, this should be serialized with toString and set as the permissions field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class AccountSASPermissions {\n constructor() {\n /**\n * Permission to read resources and list queues and tables granted.\n */\n this.read = false;\n /**\n * Permission to write resources granted.\n */\n this.write = false;\n /**\n * Permission to create blobs and files granted.\n */\n this.delete = false;\n /**\n * Permission to delete versions granted.\n */\n this.deleteVersion = false;\n /**\n * Permission to list blob containers, blobs, shares, directories, and files granted.\n */\n this.list = false;\n /**\n * Permission to add messages, table entities, and append to blobs granted.\n */\n this.add = false;\n /**\n * Permission to create blobs and files granted.\n */\n this.create = false;\n /**\n * Permissions to update messages and table entities granted.\n */\n this.update = false;\n /**\n * Permission to get and delete messages granted.\n */\n this.process = false;\n /**\n * Specfies Tag access granted.\n */\n this.tag = false;\n /**\n * Permission to filter blobs.\n */\n this.filter = false;\n /**\n * Permission to set immutability policy.\n */\n this.setImmutabilityPolicy = false;\n /**\n * Specifies that Permanent Delete is permitted.\n */\n this.permanentDelete = false;\n }\n /**\n * Parse initializes the AccountSASPermissions fields from a string.\n *\n * @param permissions -\n */\n static parse(permissions) {\n const accountSASPermissions = new AccountSASPermissions();\n for (const c of permissions) {\n switch (c) {\n case \"r\":\n accountSASPermissions.read = true;\n break;\n case \"w\":\n accountSASPermissions.write = true;\n break;\n case \"d\":\n accountSASPermissions.delete = true;\n break;\n case \"x\":\n accountSASPermissions.deleteVersion = true;\n break;\n case \"l\":\n accountSASPermissions.list = true;\n break;\n case \"a\":\n accountSASPermissions.add = true;\n break;\n case \"c\":\n accountSASPermissions.create = true;\n break;\n case \"u\":\n accountSASPermissions.update = true;\n break;\n case \"p\":\n accountSASPermissions.process = true;\n break;\n case \"t\":\n accountSASPermissions.tag = true;\n break;\n case \"f\":\n accountSASPermissions.filter = true;\n break;\n case \"i\":\n accountSASPermissions.setImmutabilityPolicy = true;\n break;\n case \"y\":\n accountSASPermissions.permanentDelete = true;\n break;\n default:\n throw new RangeError(`Invalid permission character: ${c}`);\n }\n }\n return accountSASPermissions;\n }\n /**\n * Creates a {@link AccountSASPermissions} from a raw object which contains same keys as it\n * and boolean values for them.\n *\n * @param permissionLike -\n */\n static from(permissionLike) {\n const accountSASPermissions = new AccountSASPermissions();\n if (permissionLike.read) {\n accountSASPermissions.read = true;\n }\n if (permissionLike.write) {\n accountSASPermissions.write = true;\n }\n if (permissionLike.delete) {\n accountSASPermissions.delete = true;\n }\n if (permissionLike.deleteVersion) {\n accountSASPermissions.deleteVersion = true;\n }\n if (permissionLike.filter) {\n accountSASPermissions.filter = true;\n }\n if (permissionLike.tag) {\n accountSASPermissions.tag = true;\n }\n if (permissionLike.list) {\n accountSASPermissions.list = true;\n }\n if (permissionLike.add) {\n accountSASPermissions.add = true;\n }\n if (permissionLike.create) {\n accountSASPermissions.create = true;\n }\n if (permissionLike.update) {\n accountSASPermissions.update = true;\n }\n if (permissionLike.process) {\n accountSASPermissions.process = true;\n }\n if (permissionLike.setImmutabilityPolicy) {\n accountSASPermissions.setImmutabilityPolicy = true;\n }\n if (permissionLike.permanentDelete) {\n accountSASPermissions.permanentDelete = true;\n }\n return accountSASPermissions;\n }\n /**\n * Produces the SAS permissions string for an Azure Storage account.\n * Call this method to set AccountSASSignatureValues Permissions field.\n *\n * Using this method will guarantee the resource types are in\n * an order accepted by the service.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n toString() {\n // The order of the characters should be as specified here to ensure correctness:\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n // Use a string array instead of string concatenating += operator for performance\n const permissions = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.deleteVersion) {\n permissions.push(\"x\");\n }\n if (this.filter) {\n permissions.push(\"f\");\n }\n if (this.tag) {\n permissions.push(\"t\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.update) {\n permissions.push(\"u\");\n }\n if (this.process) {\n permissions.push(\"p\");\n }\n if (this.setImmutabilityPolicy) {\n permissions.push(\"i\");\n }\n if (this.permanentDelete) {\n permissions.push(\"y\");\n }\n return permissions.join(\"\");\n }\n}\n//# sourceMappingURL=AccountSASPermissions.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the services accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that service. Once all the\n * values are set, this should be serialized with toString and set as the services field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but\n * the order of the services is particular and this class guarantees correctness.\n */\nexport class AccountSASServices {\n constructor() {\n /**\n * Permission to access blob resources granted.\n */\n this.blob = false;\n /**\n * Permission to access file resources granted.\n */\n this.file = false;\n /**\n * Permission to access queue resources granted.\n */\n this.queue = false;\n /**\n * Permission to access table resources granted.\n */\n this.table = false;\n }\n /**\n * Creates an {@link AccountSASServices} from the specified services string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid service.\n *\n * @param services -\n */\n static parse(services) {\n const accountSASServices = new AccountSASServices();\n for (const c of services) {\n switch (c) {\n case \"b\":\n accountSASServices.blob = true;\n break;\n case \"f\":\n accountSASServices.file = true;\n break;\n case \"q\":\n accountSASServices.queue = true;\n break;\n case \"t\":\n accountSASServices.table = true;\n break;\n default:\n throw new RangeError(`Invalid service character: ${c}`);\n }\n }\n return accountSASServices;\n }\n /**\n * Converts the given services to a string.\n *\n */\n toString() {\n const services = [];\n if (this.blob) {\n services.push(\"b\");\n }\n if (this.table) {\n services.push(\"t\");\n }\n if (this.queue) {\n services.push(\"q\");\n }\n if (this.file) {\n services.push(\"f\");\n }\n return services.join(\"\");\n }\n}\n//# sourceMappingURL=AccountSASServices.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the resources accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that resource type. Once all the\n * values are set, this should be serialized with toString and set as the resources field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but\n * the order of the resources is particular and this class guarantees correctness.\n */\nexport class AccountSASResourceTypes {\n constructor() {\n /**\n * Permission to access service level APIs granted.\n */\n this.service = false;\n /**\n * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares) granted.\n */\n this.container = false;\n /**\n * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files) granted.\n */\n this.object = false;\n }\n /**\n * Creates an {@link AccountSASResourceTypes} from the specified resource types string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid resource type.\n *\n * @param resourceTypes -\n */\n static parse(resourceTypes) {\n const accountSASResourceTypes = new AccountSASResourceTypes();\n for (const c of resourceTypes) {\n switch (c) {\n case \"s\":\n accountSASResourceTypes.service = true;\n break;\n case \"c\":\n accountSASResourceTypes.container = true;\n break;\n case \"o\":\n accountSASResourceTypes.object = true;\n break;\n default:\n throw new RangeError(`Invalid resource type: ${c}`);\n }\n }\n return accountSASResourceTypes;\n }\n /**\n * Converts the given resource types to a string.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n toString() {\n const resourceTypes = [];\n if (this.service) {\n resourceTypes.push(\"s\");\n }\n if (this.container) {\n resourceTypes.push(\"c\");\n }\n if (this.object) {\n resourceTypes.push(\"o\");\n }\n return resourceTypes.join(\"\");\n }\n}\n//# sourceMappingURL=AccountSASResourceTypes.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { AccountSASPermissions } from \"./AccountSASPermissions\";\nimport { AccountSASResourceTypes } from \"./AccountSASResourceTypes\";\nimport { AccountSASServices } from \"./AccountSASServices\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateAccountSASQueryParameters(accountSASSignatureValues, sharedKeyCredential) {\n const version = accountSASSignatureValues.version\n ? accountSASSignatureValues.version\n : SERVICE_VERSION;\n if (accountSASSignatureValues.permissions &&\n accountSASSignatureValues.permissions.setImmutabilityPolicy &&\n version < \"2020-08-04\") {\n throw RangeError(\"'version' must be >= '2020-08-04' when provided 'i' permission.\");\n }\n if (accountSASSignatureValues.permissions &&\n accountSASSignatureValues.permissions.deleteVersion &&\n version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when provided 'x' permission.\");\n }\n if (accountSASSignatureValues.permissions &&\n accountSASSignatureValues.permissions.permanentDelete &&\n version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when provided 'y' permission.\");\n }\n if (accountSASSignatureValues.permissions &&\n accountSASSignatureValues.permissions.tag &&\n version < \"2019-12-12\") {\n throw RangeError(\"'version' must be >= '2019-12-12' when provided 't' permission.\");\n }\n if (accountSASSignatureValues.permissions &&\n accountSASSignatureValues.permissions.filter &&\n version < \"2019-12-12\") {\n throw RangeError(\"'version' must be >= '2019-12-12' when provided 'f' permission.\");\n }\n if (accountSASSignatureValues.encryptionScope && version < \"2020-12-06\") {\n throw RangeError(\"'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.\");\n }\n const parsedPermissions = AccountSASPermissions.parse(accountSASSignatureValues.permissions.toString());\n const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();\n const parsedResourceTypes = AccountSASResourceTypes.parse(accountSASSignatureValues.resourceTypes).toString();\n let stringToSign;\n if (version >= \"2020-12-06\") {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n accountSASSignatureValues.encryptionScope ? accountSASSignatureValues.encryptionScope : \"\",\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n else {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(version, signature, parsedPermissions.toString(), parsedServices, parsedResourceTypes, accountSASSignatureValues.protocol, accountSASSignatureValues.startsOn, accountSASSignatureValues.expiresOn, accountSASSignatureValues.ipRange, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, accountSASSignatureValues.encryptionScope);\n}\n//# sourceMappingURL=AccountSASSignatureValues.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a blob. Setting\n * a value to true means that any SAS which uses these permissions will grant permissions for that operation. Once all\n * the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class BlobSASPermissions {\n constructor() {\n /**\n * Specifies Read access granted.\n */\n this.read = false;\n /**\n * Specifies Add access granted.\n */\n this.add = false;\n /**\n * Specifies Create access granted.\n */\n this.create = false;\n /**\n * Specifies Write access granted.\n */\n this.write = false;\n /**\n * Specifies Delete access granted.\n */\n this.delete = false;\n /**\n * Specifies Delete version access granted.\n */\n this.deleteVersion = false;\n /**\n * Specfies Tag access granted.\n */\n this.tag = false;\n /**\n * Specifies Move access granted.\n */\n this.move = false;\n /**\n * Specifies Execute access granted.\n */\n this.execute = false;\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n this.setImmutabilityPolicy = false;\n /**\n * Specifies that Permanent Delete is permitted.\n */\n this.permanentDelete = false;\n }\n /**\n * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n static parse(permissions) {\n const blobSASPermissions = new BlobSASPermissions();\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n blobSASPermissions.read = true;\n break;\n case \"a\":\n blobSASPermissions.add = true;\n break;\n case \"c\":\n blobSASPermissions.create = true;\n break;\n case \"w\":\n blobSASPermissions.write = true;\n break;\n case \"d\":\n blobSASPermissions.delete = true;\n break;\n case \"x\":\n blobSASPermissions.deleteVersion = true;\n break;\n case \"t\":\n blobSASPermissions.tag = true;\n break;\n case \"m\":\n blobSASPermissions.move = true;\n break;\n case \"e\":\n blobSASPermissions.execute = true;\n break;\n case \"i\":\n blobSASPermissions.setImmutabilityPolicy = true;\n break;\n case \"y\":\n blobSASPermissions.permanentDelete = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n return blobSASPermissions;\n }\n /**\n * Creates a {@link BlobSASPermissions} from a raw object which contains same keys as it\n * and boolean values for them.\n *\n * @param permissionLike -\n */\n static from(permissionLike) {\n const blobSASPermissions = new BlobSASPermissions();\n if (permissionLike.read) {\n blobSASPermissions.read = true;\n }\n if (permissionLike.add) {\n blobSASPermissions.add = true;\n }\n if (permissionLike.create) {\n blobSASPermissions.create = true;\n }\n if (permissionLike.write) {\n blobSASPermissions.write = true;\n }\n if (permissionLike.delete) {\n blobSASPermissions.delete = true;\n }\n if (permissionLike.deleteVersion) {\n blobSASPermissions.deleteVersion = true;\n }\n if (permissionLike.tag) {\n blobSASPermissions.tag = true;\n }\n if (permissionLike.move) {\n blobSASPermissions.move = true;\n }\n if (permissionLike.execute) {\n blobSASPermissions.execute = true;\n }\n if (permissionLike.setImmutabilityPolicy) {\n blobSASPermissions.setImmutabilityPolicy = true;\n }\n if (permissionLike.permanentDelete) {\n blobSASPermissions.permanentDelete = true;\n }\n return blobSASPermissions;\n }\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the BlobSASPermissions\n */\n toString() {\n const permissions = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.deleteVersion) {\n permissions.push(\"x\");\n }\n if (this.tag) {\n permissions.push(\"t\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.setImmutabilityPolicy) {\n permissions.push(\"i\");\n }\n if (this.permanentDelete) {\n permissions.push(\"y\");\n }\n return permissions.join(\"\");\n }\n}\n//# sourceMappingURL=BlobSASPermissions.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a container.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class ContainerSASPermissions {\n constructor() {\n /**\n * Specifies Read access granted.\n */\n this.read = false;\n /**\n * Specifies Add access granted.\n */\n this.add = false;\n /**\n * Specifies Create access granted.\n */\n this.create = false;\n /**\n * Specifies Write access granted.\n */\n this.write = false;\n /**\n * Specifies Delete access granted.\n */\n this.delete = false;\n /**\n * Specifies Delete version access granted.\n */\n this.deleteVersion = false;\n /**\n * Specifies List access granted.\n */\n this.list = false;\n /**\n * Specfies Tag access granted.\n */\n this.tag = false;\n /**\n * Specifies Move access granted.\n */\n this.move = false;\n /**\n * Specifies Execute access granted.\n */\n this.execute = false;\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n this.setImmutabilityPolicy = false;\n /**\n * Specifies that Permanent Delete is permitted.\n */\n this.permanentDelete = false;\n /**\n * Specifies that Filter Blobs by Tags is permitted.\n */\n this.filterByTags = false;\n }\n /**\n * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n static parse(permissions) {\n const containerSASPermissions = new ContainerSASPermissions();\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n containerSASPermissions.read = true;\n break;\n case \"a\":\n containerSASPermissions.add = true;\n break;\n case \"c\":\n containerSASPermissions.create = true;\n break;\n case \"w\":\n containerSASPermissions.write = true;\n break;\n case \"d\":\n containerSASPermissions.delete = true;\n break;\n case \"l\":\n containerSASPermissions.list = true;\n break;\n case \"t\":\n containerSASPermissions.tag = true;\n break;\n case \"x\":\n containerSASPermissions.deleteVersion = true;\n break;\n case \"m\":\n containerSASPermissions.move = true;\n break;\n case \"e\":\n containerSASPermissions.execute = true;\n break;\n case \"i\":\n containerSASPermissions.setImmutabilityPolicy = true;\n break;\n case \"y\":\n containerSASPermissions.permanentDelete = true;\n break;\n case \"f\":\n containerSASPermissions.filterByTags = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n return containerSASPermissions;\n }\n /**\n * Creates a {@link ContainerSASPermissions} from a raw object which contains same keys as it\n * and boolean values for them.\n *\n * @param permissionLike -\n */\n static from(permissionLike) {\n const containerSASPermissions = new ContainerSASPermissions();\n if (permissionLike.read) {\n containerSASPermissions.read = true;\n }\n if (permissionLike.add) {\n containerSASPermissions.add = true;\n }\n if (permissionLike.create) {\n containerSASPermissions.create = true;\n }\n if (permissionLike.write) {\n containerSASPermissions.write = true;\n }\n if (permissionLike.delete) {\n containerSASPermissions.delete = true;\n }\n if (permissionLike.list) {\n containerSASPermissions.list = true;\n }\n if (permissionLike.deleteVersion) {\n containerSASPermissions.deleteVersion = true;\n }\n if (permissionLike.tag) {\n containerSASPermissions.tag = true;\n }\n if (permissionLike.move) {\n containerSASPermissions.move = true;\n }\n if (permissionLike.execute) {\n containerSASPermissions.execute = true;\n }\n if (permissionLike.setImmutabilityPolicy) {\n containerSASPermissions.setImmutabilityPolicy = true;\n }\n if (permissionLike.permanentDelete) {\n containerSASPermissions.permanentDelete = true;\n }\n if (permissionLike.filterByTags) {\n containerSASPermissions.filterByTags = true;\n }\n return containerSASPermissions;\n }\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n */\n toString() {\n const permissions = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.deleteVersion) {\n permissions.push(\"x\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.tag) {\n permissions.push(\"t\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.setImmutabilityPolicy) {\n permissions.push(\"i\");\n }\n if (this.permanentDelete) {\n permissions.push(\"y\");\n }\n if (this.filterByTags) {\n permissions.push(\"f\");\n }\n return permissions.join(\"\");\n }\n}\n//# sourceMappingURL=ContainerSASPermissions.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { BlobSASPermissions } from \"./BlobSASPermissions\";\nimport { ContainerSASPermissions } from \"./ContainerSASPermissions\";\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { UserDelegationKeyCredential } from \"../credentials/UserDelegationKeyCredential\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\nexport function generateBlobSASQueryParameters(blobSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) {\n const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;\n const sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential\n ? sharedKeyCredentialOrUserDelegationKey\n : undefined;\n let userDelegationKeyCredential;\n if (sharedKeyCredential === undefined && accountName !== undefined) {\n userDelegationKeyCredential = new UserDelegationKeyCredential(accountName, sharedKeyCredentialOrUserDelegationKey);\n }\n if (sharedKeyCredential === undefined && userDelegationKeyCredential === undefined) {\n throw TypeError(\"Invalid sharedKeyCredential, userDelegationKey or accountName.\");\n }\n // Version 2020-12-06 adds support for encryptionscope in SAS.\n if (version >= \"2020-12-06\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20201206(blobSASSignatureValues, sharedKeyCredential);\n }\n else {\n return generateBlobSASQueryParametersUDK20201206(blobSASSignatureValues, userDelegationKeyCredential);\n }\n }\n // Version 2019-12-12 adds support for the blob tags permission.\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string\n if (version >= \"2018-11-09\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);\n }\n else {\n // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.\n if (version >= \"2020-02-10\") {\n return generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential);\n }\n else {\n return generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential);\n }\n }\n }\n if (version >= \"2015-04-05\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential);\n }\n else {\n throw new RangeError(\"'version' must be >= '2018-11-09' when generating user delegation SAS using user delegation key.\");\n }\n }\n throw new RangeError(\"'version' must be >= '2015-04-05'.\");\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2015-04-05 AND BEFORE 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n if (!blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\");\n }\n let resource = \"c\";\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(sharedKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType);\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n if (!blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\");\n }\n let resource = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(sharedKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType);\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20201206(blobSASSignatureValues, sharedKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n if (!blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\");\n }\n let resource = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(sharedKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.encryptionScope,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, undefined, undefined, undefined, blobSASSignatureValues.encryptionScope);\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20181109(blobSASSignatureValues, userDelegationKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\");\n }\n let resource = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(userDelegationKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey);\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userDelegationKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\");\n }\n let resource = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(userDelegationKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n undefined,\n blobSASSignatureValues.correlationId,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId);\n}\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20201206(blobSASSignatureValues, userDelegationKeyCredential) {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\");\n }\n let resource = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n else {\n verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();\n }\n }\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(userDelegationKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n undefined,\n blobSASSignatureValues.correlationId,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.encryptionScope,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope);\n}\nfunction getCanonicalName(accountName, containerName, blobName) {\n // Container: \"/blob/account/containerName\"\n // Blob: \"/blob/account/containerName/blobName\"\n const elements = [`/blob/${accountName}/${containerName}`];\n if (blobName) {\n elements.push(`/${blobName}`);\n }\n return elements.join(\"\");\n}\nfunction SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) {\n const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;\n if (blobSASSignatureValues.snapshotTime && version < \"2018-11-09\") {\n throw RangeError(\"'version' must be >= '2018-11-09' when providing 'snapshotTime'.\");\n }\n if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {\n throw RangeError(\"Must provide 'blobName' when providing 'snapshotTime'.\");\n }\n if (blobSASSignatureValues.versionId && version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'versionId'.\");\n }\n if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {\n throw RangeError(\"Must provide 'blobName' when providing 'versionId'.\");\n }\n if (blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.setImmutabilityPolicy &&\n version < \"2020-08-04\") {\n throw RangeError(\"'version' must be >= '2020-08-04' when provided 'i' permission.\");\n }\n if (blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.deleteVersion &&\n version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'x' permission.\");\n }\n if (blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.permanentDelete &&\n version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'y' permission.\");\n }\n if (blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.tag &&\n version < \"2019-12-12\") {\n throw RangeError(\"'version' must be >= '2019-12-12' when providing 't' permission.\");\n }\n if (version < \"2020-02-10\" &&\n blobSASSignatureValues.permissions &&\n (blobSASSignatureValues.permissions.move || blobSASSignatureValues.permissions.execute)) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.\");\n }\n if (version < \"2021-04-10\" &&\n blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.filterByTags) {\n throw RangeError(\"'version' must be >= '2021-04-10' when providing the 'f' permission.\");\n }\n if (version < \"2020-02-10\" &&\n (blobSASSignatureValues.preauthorizedAgentObjectId || blobSASSignatureValues.correlationId)) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.\");\n }\n if (blobSASSignatureValues.encryptionScope && version < \"2020-12-06\") {\n throw RangeError(\"'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.\");\n }\n blobSASSignatureValues.version = version;\n return blobSASSignatureValues;\n}\n//# sourceMappingURL=BlobSASSignatureValues.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\n/**\n * Protocols for generated SAS.\n */\nexport var SASProtocol;\n(function (SASProtocol) {\n /**\n * Protocol that allows HTTPS only\n */\n SASProtocol[\"Https\"] = \"https\";\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n SASProtocol[\"HttpsAndHttp\"] = \"https,http\";\n})(SASProtocol || (SASProtocol = {}));\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n constructor(version, signature, permissionsOrOptions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, preauthorizedAgentObjectId, correlationId, encryptionScope) {\n this.version = version;\n this.signature = signature;\n if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== \"string\") {\n // SASQueryParametersOptions\n this.permissions = permissionsOrOptions.permissions;\n this.services = permissionsOrOptions.services;\n this.resourceTypes = permissionsOrOptions.resourceTypes;\n this.protocol = permissionsOrOptions.protocol;\n this.startsOn = permissionsOrOptions.startsOn;\n this.expiresOn = permissionsOrOptions.expiresOn;\n this.ipRangeInner = permissionsOrOptions.ipRange;\n this.identifier = permissionsOrOptions.identifier;\n this.encryptionScope = permissionsOrOptions.encryptionScope;\n this.resource = permissionsOrOptions.resource;\n this.cacheControl = permissionsOrOptions.cacheControl;\n this.contentDisposition = permissionsOrOptions.contentDisposition;\n this.contentEncoding = permissionsOrOptions.contentEncoding;\n this.contentLanguage = permissionsOrOptions.contentLanguage;\n this.contentType = permissionsOrOptions.contentType;\n if (permissionsOrOptions.userDelegationKey) {\n this.signedOid = permissionsOrOptions.userDelegationKey.signedObjectId;\n this.signedTenantId = permissionsOrOptions.userDelegationKey.signedTenantId;\n this.signedStartsOn = permissionsOrOptions.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = permissionsOrOptions.userDelegationKey.signedExpiresOn;\n this.signedService = permissionsOrOptions.userDelegationKey.signedService;\n this.signedVersion = permissionsOrOptions.userDelegationKey.signedVersion;\n this.preauthorizedAgentObjectId = permissionsOrOptions.preauthorizedAgentObjectId;\n this.correlationId = permissionsOrOptions.correlationId;\n }\n }\n else {\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissionsOrOptions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.encryptionScope = encryptionScope;\n this.identifier = identifier;\n this.resource = resource;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n if (userDelegationKey) {\n this.signedOid = userDelegationKey.signedObjectId;\n this.signedTenantId = userDelegationKey.signedTenantId;\n this.signedStartsOn = userDelegationKey.signedStartsOn;\n this.signedExpiresOn = userDelegationKey.signedExpiresOn;\n this.signedService = userDelegationKey.signedService;\n this.signedVersion = userDelegationKey.signedVersion;\n this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;\n this.correlationId = correlationId;\n }\n }\n }\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n get ipRange() {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n toString() {\n const params = [\n \"sv\",\n \"ss\",\n \"srt\",\n \"spr\",\n \"st\",\n \"se\",\n \"sip\",\n \"si\",\n \"ses\",\n \"skoid\",\n \"sktid\",\n \"skt\",\n \"ske\",\n \"sks\",\n \"skv\",\n \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"saoid\",\n \"scid\",\n ];\n const queries = [];\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(queries, param, this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined);\n break;\n case \"se\":\n this.tryAppendQueryParameter(queries, param, this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined);\n break;\n case \"sip\":\n this.tryAppendQueryParameter(queries, param, this.ipRange ? ipRangeToString(this.ipRange) : undefined);\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"ses\":\n this.tryAppendQueryParameter(queries, param, this.encryptionScope);\n break;\n case \"skoid\": // Signed object ID\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(queries, param, this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined);\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(queries, param, this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined);\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"rscc\":\n this.tryAppendQueryParameter(queries, param, this.cacheControl);\n break;\n case \"rscd\":\n this.tryAppendQueryParameter(queries, param, this.contentDisposition);\n break;\n case \"rsce\":\n this.tryAppendQueryParameter(queries, param, this.contentEncoding);\n break;\n case \"rscl\":\n this.tryAppendQueryParameter(queries, param, this.contentLanguage);\n break;\n case \"rsct\":\n this.tryAppendQueryParameter(queries, param, this.contentType);\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\n break;\n }\n }\n return queries.join(\"&\");\n }\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n tryAppendQueryParameter(queries, key, value) {\n if (!value) {\n return;\n }\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n//# sourceMappingURL=SASQueryParameters.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange) {\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n//# sourceMappingURL=SasIPRange.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\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 * States for Batch.\n */\nvar BatchStates;\n(function (BatchStates) {\n BatchStates[BatchStates[\"Good\"] = 0] = \"Good\";\n BatchStates[BatchStates[\"Error\"] = 1] = \"Error\";\n})(BatchStates || (BatchStates = {}));\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 */\nexport class Batch {\n /**\n * Creates an instance of Batch.\n * @param concurrency -\n */\n constructor(concurrency = 5) {\n /**\n * Number of active operations under execution.\n */\n this.actives = 0;\n /**\n * Number of completed operations under execution.\n */\n this.completed = 0;\n /**\n * Offset of next operation to be executed.\n */\n this.offset = 0;\n /**\n * Operation array to be executed.\n */\n this.operations = [];\n /**\n * States of Batch. When an error happens, state will turn into error.\n * Batch will stop execute left operations.\n */\n this.state = BatchStates.Good;\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 * Add a operation into queue.\n *\n * @param operation -\n */\n addOperation(operation) {\n this.operations.push(async () => {\n try {\n this.actives++;\n await operation();\n this.actives--;\n this.completed++;\n this.parallelExecute();\n }\n catch (error) {\n this.emitter.emit(\"error\", error);\n }\n });\n }\n /**\n * Start execute operations in the queue.\n *\n */\n async do() {\n if (this.operations.length === 0) {\n return Promise.resolve();\n }\n this.parallelExecute();\n return new Promise((resolve, reject) => {\n this.emitter.on(\"finish\", resolve);\n this.emitter.on(\"error\", (error) => {\n this.state = BatchStates.Error;\n reject(error);\n });\n });\n }\n /**\n * Get next operation to be executed. Return null when reaching ends.\n *\n */\n nextOperation() {\n if (this.offset < this.operations.length) {\n return this.operations[this.offset++];\n }\n return null;\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 */\n parallelExecute() {\n if (this.state === BatchStates.Error) {\n return;\n }\n if (this.completed >= this.operations.length) {\n this.emitter.emit(\"finish\");\n return;\n }\n while (this.actives < this.concurrency) {\n const operation = this.nextOperation();\n if (operation) {\n operation();\n }\n else {\n return;\n }\n }\n }\n}\n//# sourceMappingURL=Batch.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nvar MutexLockStatus;\n(function (MutexLockStatus) {\n MutexLockStatus[MutexLockStatus[\"LOCKED\"] = 0] = \"LOCKED\";\n MutexLockStatus[MutexLockStatus[\"UNLOCKED\"] = 1] = \"UNLOCKED\";\n})(MutexLockStatus || (MutexLockStatus = {}));\n/**\n * An async mutex lock.\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 * @param key - lock key\n */\n static async lock(key) {\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 }\n else {\n this.onUnlockEvent(key, () => {\n this.keys[key] = MutexLockStatus.LOCKED;\n resolve();\n });\n }\n });\n }\n /**\n * Unlock a key.\n *\n * @param key -\n */\n static async unlock(key) {\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 static onUnlockEvent(key, handler) {\n if (this.listeners[key] === undefined) {\n this.listeners[key] = [handler];\n }\n else {\n this.listeners[key].push(handler);\n }\n }\n static emitUnlockEvent(key) {\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}\nMutex.keys = {};\nMutex.listeners = {};\n//# sourceMappingURL=Mutex.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { DefaultHttpClient } from \"@azure/core-http\";\nconst _defaultHttpClient = new DefaultHttpClient();\nexport function getCachedDefaultHttpClient() {\n return _defaultHttpClient;\n}\n//# sourceMappingURL=cache.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nexport const SDK_VERSION = \"12.15.0\";\nexport const SERVICE_VERSION = \"2023-01-03\";\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5;\nexport const REQUEST_TIMEOUT = 100 * 1000; // In ms\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes = \"https://storage.azure.com/.default\";\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\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};\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};\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\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\";\nexport const EncryptionAlgorithmAES25 = \"AES256\";\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\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];\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];\nexport const BlobUsesCustomerSpecifiedEncryptionMsg = \"BlobUsesCustomerSpecifiedEncryption\";\nexport const BlobDoesNotUseCustomerSpecifiedEncryption = \"BlobDoesNotUseCustomerSpecifiedEncryption\";\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n//# sourceMappingURL=constants.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { createSpanFunction } from \"@azure/core-tracing\";\n/**\n * Creates a span using the global tracer.\n * @internal\n */\nexport const createSpan = createSpanFunction({\n packagePrefix: \"Azure.Storage.Blob\",\n namespace: \"Microsoft.Storage\",\n});\n/**\n * @internal\n *\n * Adapt the tracing options from OperationOptions to what they need to be for\n * RequestOptionsBase (when we update to later OpenTelemetry versions this is now\n * two separate fields, not just one).\n */\nexport function convertTracingToRequestOptionsBase(options) {\n var _a, _b;\n return {\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n spanOptions: (_a = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _a === void 0 ? void 0 : _a.spanOptions,\n tracingContext: (_b = options === null || options === void 0 ? void 0 : options.tracingOptions) === null || _b === void 0 ? void 0 : _b.tracingContext,\n };\n}\n//# sourceMappingURL=tracing.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * Convert a Browser Blob object into ArrayBuffer.\n *\n * @param blob -\n */\nexport async function blobToArrayBuffer(blob) {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev) => {\n resolve(ev.target.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsArrayBuffer(blob);\n });\n}\n/**\n * Convert a Browser Blob object into string.\n *\n * @param blob -\n */\nexport async function blobToString(blob) {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev) => {\n resolve(ev.target.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsText(blob);\n });\n}\nexport function streamToBuffer() {\n /* empty */\n}\nexport function streamToBuffer2() {\n /* empty */\n}\nexport function readStreamToLocalFile() {\n /* empty */\n}\nexport const fsStat = function stat() {\n /* empty */\n};\nexport const fsCreateReadStream = function createReadStream() {\n /* empty */\n};\n//# sourceMappingURL=utils.browser.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { HttpHeaders, isNode, URLBuilder } from \"@azure/core-http\";\nimport { DevelopmentConnectionString, HeaderConstants, PathStylePorts, URLConstants, } from \"./constants\";\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 * @param url -\n */\nexport function escapeURLPath(url) {\n const urlParsed = URLBuilder.parse(url);\n let path = urlParsed.getPath();\n path = path || \"/\";\n path = escape(path);\n urlParsed.setPath(path);\n return urlParsed.toString();\n}\nfunction getProxyUriFromDevConnString(connectionString) {\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}\nexport function getValueInConnString(connectionString, argument) {\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 * Extracts the parts of an Azure Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString) {\n let proxyUri = \"\";\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\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 if (connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1) {\n // Account connection string\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n if (!blobEndpoint) {\n // BlobEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\");\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 if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n }\n else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n return {\n kind: \"AccountConnString\",\n url: blobEndpoint,\n accountName,\n accountKey,\n proxyUri,\n };\n }\n else {\n // SAS connection string\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n const accountName = getAccountNameFromUrl(blobEndpoint);\n if (!blobEndpoint) {\n throw new Error(\"Invalid BlobEndpoint in the provided SAS Connection String\");\n }\n else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n return { kind: \"SASConnString\", url: blobEndpoint, accountName, accountSas };\n }\n}\n/**\n * Internal escape method implemented Strategy Two mentioned in escapeURL() description.\n *\n * @param text -\n */\nfunction escape(text) {\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 * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @param url - Source URL string\n * @param name - String to be appended to URL\n * @returns An updated URL string\n */\nexport function appendToURLPath(url, name) {\n const urlParsed = URLBuilder.parse(url);\n let path = urlParsed.getPath();\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.setPath(path);\n const normalizedUrl = new URL(urlParsed.toString());\n return normalizedUrl.toString();\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 * @param url - Source URL string\n * @param name - Parameter name\n * @param value - Parameter value\n * @returns An updated URL string\n */\nexport function setURLParameter(url, name, value) {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setQueryParameter(name, value);\n return urlParsed.toString();\n}\n/**\n * Get URL parameter by name.\n *\n * @param url -\n * @param name -\n */\nexport function getURLParameter(url, name) {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getQueryParameterValue(name);\n}\n/**\n * Set URL host.\n *\n * @param url - Source URL string\n * @param host - New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url, host) {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setHost(host);\n return urlParsed.toString();\n}\n/**\n * Get URL path from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPath(url) {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getPath();\n}\n/**\n * Get URL scheme from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLScheme(url) {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getScheme();\n}\n/**\n * Get URL path and query from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPathAndQuery(url) {\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 let queryString = urlParsed.getQuery() || \"\";\n queryString = queryString.trim();\n if (queryString !== \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : `?${queryString}`; // Ensure query string start with '?'\n }\n return `${pathString}${queryString}`;\n}\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @param url -\n */\nexport function getURLQueries(url) {\n let queryString = URLBuilder.parse(url).getQuery();\n if (!queryString) {\n return {};\n }\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substr(1) : queryString;\n let querySubStrings = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1);\n });\n const queries = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key = splitResults[0];\n const value = splitResults[1];\n queries[key] = value;\n }\n return queries;\n}\n/**\n * Append a string to URL query.\n *\n * @param url - Source URL string.\n * @param queryParts - String to be appended to the URL query.\n * @returns An updated URL string.\n */\nexport function appendToURLQuery(url, queryParts) {\n const urlParsed = URLBuilder.parse(url);\n let query = urlParsed.getQuery();\n if (query) {\n query += \"&\" + queryParts;\n }\n else {\n query = queryParts;\n }\n urlParsed.setQuery(query);\n return urlParsed.toString();\n}\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date, withMilliseconds = true) {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n/**\n * Base64 encode.\n *\n * @param content -\n */\nexport function base64encode(content) {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n/**\n * Base64 decode.\n *\n * @param encodedString -\n */\nexport function base64decode(encodedString) {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @param blockIndex -\n */\nexport function generateBlockID(blockIDPrefix, blockIndex) {\n // To generate a 64 bytes base64 string, source string should be 48\n const maxSourceStringLength = 48;\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n const maxBlockIndexLength = 6;\n const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n const res = blockIDPrefix +\n padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n/**\n * Delay specified time interval.\n *\n * @param timeInMs -\n * @param aborter -\n * @param abortError -\n */\nexport async function delay(timeInMs, aborter, abortError) {\n return new Promise((resolve, reject) => {\n /* eslint-disable-next-line prefer-const */\n let timeout;\n const abortHandler = () => {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n const resolveHandler = () => {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n timeout = setTimeout(resolveHandler, timeInMs);\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n });\n}\n/**\n * String.prototype.padStart()\n *\n * @param currentString -\n * @param targetLength -\n * @param padString -\n */\nexport function padStart(currentString, targetLength, padString = \" \") {\n // @ts-expect-error: TS doesn't know this code needs to run downlevel sometimes\n if (String.prototype.padStart) {\n return currentString.padStart(targetLength, padString);\n }\n padString = padString || \" \";\n if (currentString.length > targetLength) {\n return currentString;\n }\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}\nexport function sanitizeURL(url) {\n let safeURL = url;\n if (getURLParameter(safeURL, URLConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, URLConstants.Parameters.SIGNATURE, \"*****\");\n }\n return safeURL;\n}\nexport function sanitizeHeaders(originalHeader) {\n const headers = new HttpHeaders();\n for (const header of originalHeader.headersArray()) {\n if (header.name.toLowerCase() === HeaderConstants.AUTHORIZATION.toLowerCase()) {\n headers.set(header.name, \"*****\");\n }\n else if (header.name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(header.name, sanitizeURL(header.value));\n }\n else {\n headers.set(header.name, header.value);\n }\n }\n return headers;\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @param str1 -\n * @param str2 -\n */\nexport function iEqual(str1, str2) {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n/**\n * Extracts account name from the url\n * @param url - url to extract the account name from\n * @returns with the account name\n */\nexport function getAccountNameFromUrl(url) {\n const parsedUrl = 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 }\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 }\n else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n }\n catch (error) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\nexport function isIpEndpointStyle(parsedUrl) {\n if (parsedUrl.getHost() === undefined) {\n return false;\n }\n const host = parsedUrl.getHost() + (parsedUrl.getPort() === undefined ? \"\" : \":\" + parsedUrl.getPort());\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(host) ||\n (parsedUrl.getPort() !== undefined && PathStylePorts.includes(parsedUrl.getPort())));\n}\n/**\n * Convert Tags to encoded string.\n *\n * @param tags -\n */\nexport function toBlobTagsString(tags) {\n if (tags === undefined) {\n return undefined;\n }\n const tagPairs = [];\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n }\n return tagPairs.join(\"&\");\n}\n/**\n * Convert Tags type to BlobTags.\n *\n * @param tags -\n */\nexport function toBlobTags(tags) {\n if (tags === undefined) {\n return undefined;\n }\n const res = {\n blobTagSet: [],\n };\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n res.blobTagSet.push({\n key,\n value,\n });\n }\n }\n return res;\n}\n/**\n * Covert BlobTags to Tags type.\n *\n * @param tags -\n */\nexport function toTags(tags) {\n if (tags === undefined) {\n return undefined;\n }\n const res = {};\n for (const blobTag of tags.blobTagSet) {\n res[blobTag.key] = blobTag.value;\n }\n return res;\n}\n/**\n * Convert BlobQueryTextConfiguration to QuerySerialization type.\n *\n * @param textConfiguration -\n */\nexport function toQuerySerialization(textConfiguration) {\n if (textConfiguration === undefined) {\n return undefined;\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 case \"parquet\":\n return {\n format: {\n type: \"parquet\",\n },\n };\n default:\n throw Error(\"Invalid BlobQueryTextConfiguration.\");\n }\n}\nexport function parseObjectReplicationRecord(objectReplicationRecord) {\n if (!objectReplicationRecord) {\n return undefined;\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 const orProperties = [];\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 = {\n ruleId: ids[1],\n replicationStatus: objectReplicationRecord[key],\n };\n const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]);\n if (policyIndex > -1) {\n orProperties[policyIndex].rules.push(rule);\n }\n else {\n orProperties.push({\n policyId: ids[0],\n rules: [rule],\n });\n }\n }\n return orProperties;\n}\n/**\n * Attach a TokenCredential to an object.\n *\n * @param thing -\n * @param credential -\n */\nexport function attachCredential(thing, credential) {\n thing.credential = credential;\n return thing;\n}\nexport function httpAuthorizationToString(httpAuthorization) {\n return httpAuthorization ? httpAuthorization.scheme + \" \" + httpAuthorization.value : undefined;\n}\nexport function BlobNameToString(name) {\n if (name.encoded) {\n return decodeURIComponent(name.content);\n }\n else {\n return name.content;\n }\n}\nexport function ConvertInternalResponseOfListBlobFlat(internalResponse) {\n return Object.assign(Object.assign({}, internalResponse), { segment: {\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem = Object.assign(Object.assign({}, blobItemInteral), { name: BlobNameToString(blobItemInteral.name) });\n return blobItem;\n }),\n } });\n}\nexport function ConvertInternalResponseOfListBlobHierarchy(internalResponse) {\n var _a;\n return Object.assign(Object.assign({}, internalResponse), { segment: {\n blobPrefixes: (_a = internalResponse.segment.blobPrefixes) === null || _a === void 0 ? void 0 : _a.map((blobPrefixInternal) => {\n const blobPrefix = Object.assign(Object.assign({}, blobPrefixInternal), { name: BlobNameToString(blobPrefixInternal.name) });\n return blobPrefix;\n }),\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem = Object.assign(Object.assign({}, blobItemInteral), { name: BlobNameToString(blobItemInteral.name) });\n return blobItem;\n }),\n } });\n}\nexport function* ExtractPageRangeInfoItems(getPageRangesSegment) {\n let pageRange = [];\n let clearRange = [];\n if (getPageRangesSegment.pageRange)\n pageRange = getPageRangesSegment.pageRange;\n if (getPageRangesSegment.clearRange)\n clearRange = getPageRangesSegment.clearRange;\n let pageRangeIndex = 0;\n let clearRangeIndex = 0;\n while (pageRangeIndex < pageRange.length && clearRangeIndex < clearRange.length) {\n if (pageRange[pageRangeIndex].start < clearRange[clearRangeIndex].start) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n ++pageRangeIndex;\n }\n else {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n ++clearRangeIndex;\n }\n }\n for (; pageRangeIndex < pageRange.length; ++pageRangeIndex) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n }\n for (; clearRangeIndex < clearRange.length; ++clearRangeIndex) {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n }\n}\n/**\n * Escape the blobName but keep path separator ('/').\n */\nexport function EscapePath(blobName) {\n const split = blobName.split(\"/\");\n for (let i = 0; i < split.length; i++) {\n split[i] = encodeURIComponent(split[i]);\n }\n return split.join(\"/\");\n}\n//# sourceMappingURL=utils.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n// This file is used as a shim of \"BufferScheduler\" for some browser bundlers\n// when trying to bundle \"BufferScheduler\"\n// \"BufferScheduler\" class is only available in Node.js runtime\nexport class BufferScheduler {\n}\n//# sourceMappingURL=BufferScheduler.browser.js.map","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\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}"],"names":["AnonymousCredentialPolicy","constructor","nextPolicy","options","super","CredentialPolicy","sendRequest","request","this","_nextPolicy","signRequest","Constants","DefaultScope","HeaderConstants","AUTHORIZATION","DEFAULT_CYCLER_OPTIONS","forcedRefreshWindowInMs","retryIntervalInMs","refreshWindowInMs","createTokenCycler","credential","scopes","tokenCyclerOptions","refreshWorker","token","Object","assign","cycler","isRefreshing","shouldRefresh","_a","expiresOnTimestamp","Date","now","mustRefresh","refresh","getTokenOptions","async","getAccessToken","timeoutInMs","tryGetAccessToken","finalToken","Error","beginRefresh","getToken","then","_token","catch","reason","tokenOptions","storageBearerTokenChallengeAuthenticationPolicy","StorageBearerTokenChallengeAuthenticationPolicy","webResource","url","toLowerCase","startsWith","getTokenInternal","abortSignal","tracingOptions","tracingContext","headers","set","response","status","challenge","get","getChallenge","challengeInfo","slice","trim","split","filter","x","map","keyValue","key","value","reduce","a","b","parseChallenge","challengeScopes","resource_id","tenantId","authorization_uri","getPath","getTokenForChallenge","tokenForChallenge","create","StorageBrowserPolicy","method","toUpperCase","getTime","toString","remove","StorageRetryPolicyType","DEFAULT_RETRY_OPTIONS","maxRetryDelayInMs","maxTries","retryDelayInMs","retryPolicyType","EXPONENTIAL","secondaryHost","tryTimeoutInMs","undefined","RETRY_ABORT_ERROR","StorageRetryPolicy","retryOptions","Math","floor","min","attemptSendRequest","secondaryHas404","attempt","newRequest","clone","isPrimaryRetry","shouldRetry","err","message","code","delay","retriableErrors","retriableError","name","includes","statusCode","delayTimeInMs","pow","FIXED","random","TelemetryPolicy","telemetry","BlobBeginCopyFromUrlPoller","blobClient","copySource","intervalInMs","onProgress","resumeFrom","startCopyFromURLOptions","state","JSON","parse","makeBlobBeginCopyFromURLPollOperation","cancel","copyId","isCompleted","abortCopyFromURL","isCancelled","update","isStarted","result","getProperties","copyStatus","copyProgress","prevCopyProgress","fireProgress","error","copyStatusDescription","startCopyFromURL","stringify","AccountSASPermissions","read","write","delete","deleteVersion","list","add","process","tag","setImmutabilityPolicy","permanentDelete","permissions","accountSASPermissions","c","RangeError","from","permissionLike","push","join","AccountSASServices","blob","file","queue","table","services","accountSASServices","AccountSASResourceTypes","service","container","object","resourceTypes","accountSASResourceTypes","generateAccountSASQueryParameters","accountSASSignatureValues","sharedKeyCredential","version","encryptionScope","parsedPermissions","parsedServices","parsedResourceTypes","stringToSign","accountName","startsOn","expiresOn","ipRange","protocol","signature","computeHMACSHA256","SASQueryParameters","BlobSASPermissions","move","execute","blobSASPermissions","char","ContainerSASPermissions","filterByTags","containerSASPermissions","generateBlobSASQueryParameters","blobSASSignatureValues","sharedKeyCredentialOrUserDelegationKey","userDelegationKeyCredential","TypeError","SASSignatureValuesSanityCheckAndAutofill","identifier","verifiedPermissions","resource","timestamp","snapshotTime","blobName","versionId","getCanonicalName","containerName","cacheControl","contentDisposition","contentEncoding","contentLanguage","contentType","generateBlobSASQueryParameters20201206","userDelegationKey","signedObjectId","signedTenantId","signedStartsOn","signedExpiresOn","signedService","signedVersion","preauthorizedAgentObjectId","correlationId","generateBlobSASQueryParametersUDK20201206","generateBlobSASQueryParameters20181109","generateBlobSASQueryParametersUDK20200210","generateBlobSASQueryParametersUDK20181109","generateBlobSASQueryParameters20150405","elements","SASProtocol","permissionsOrOptions","ipRangeInner","signedOid","end","start","params","queries","param","tryAppendQueryParameter","encodeURIComponent","length","ipRangeToString","BatchStates","Batch","concurrency","actives","completed","offset","operations","Good","emitter","EventEmitter","addOperation","operation","parallelExecute","emit","Promise","resolve","reject","on","nextOperation","MutexLockStatus","Mutex","lock","keys","UNLOCKED","LOCKED","onUnlockEvent","unlock","emitUnlockEvent","handler","listeners","shift","setImmediate","call","_defaultHttpClient","getCachedDefaultHttpClient","SDK_VERSION","SERVICE_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","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","BlobUsesCustomerSpecifiedEncryptionMsg","BlobDoesNotUseCustomerSpecifiedEncryption","PathStylePorts","createSpan","packagePrefix","namespace","convertTracingToRequestOptionsBase","_b","spanOptions","blobToString","fileReader","FileReader","onloadend","ev","target","onerror","readAsText","streamToBuffer","readStreamToLocalFile","fsStat","fsCreateReadStream","escapeURLPath","urlParsed","path","replace","setPath","getValueInConnString","connectionString","argument","element","match","extractConnectionStringParts","proxyUri","search","matchCredentials","getProxyUriFromDevConnString","blobEndpoint","endsWith","defaultEndpointsProtocol","accountKey","Buffer","endpointSuffix","kind","accountSas","getAccountNameFromUrl","appendToURLPath","URL","setURLParameter","setQueryParameter","getURLParameter","getQueryParameterValue","setURLHost","host","setHost","getURLPath","getURLScheme","getScheme","getURLPathAndQuery","pathString","queryString","getQuery","appendToURLQuery","queryParts","query","setQuery","truncatedISO8061Date","date","withMilliseconds","dateString","toISOString","substring","generateBlockID","blockIDPrefix","blockIndex","maxSourceStringLength","res","currentString","targetLength","padString","String","prototype","padStart","repeat","content","btoa","timeInMs","aborter","abortError","timeout","abortHandler","clearTimeout","setTimeout","removeEventListener","addEventListener","iEqual","str1","str2","toLocaleLowerCase","parsedUrl","getHost","isIpEndpointStyle","getPort","test","toBlobTagsString","tags","tagPairs","hasOwnProperty","toBlobTags","blobTagSet","toTags","blobTag","toQuerySerialization","textConfiguration","format","type","delimitedTextConfiguration","columnSeparator","fieldQuote","recordSeparator","escapeChar","escapeCharacter","headersPresent","hasHeaders","jsonTextConfiguration","arrowConfiguration","schema","parseObjectReplicationRecord","objectReplicationRecord","orProperties","ids","policyPrefix","rule","ruleId","replicationStatus","policyIndex","findIndex","policy","policyId","rules","attachCredential","thing","httpAuthorizationToString","httpAuthorization","scheme","BlobNameToString","encoded","decodeURIComponent","ConvertInternalResponseOfListBlobFlat","internalResponse","segment","blobItems","blobItemInteral","ConvertInternalResponseOfListBlobHierarchy","blobPrefixes","blobPrefixInternal","ExtractPageRangeInfoItems","getPageRangesSegment","pageRange","clearRange","pageRangeIndex","clearRangeIndex","isClear","EscapePath","i","BufferScheduler","module","exports","obj","__esModule","_typeof","o","Symbol","iterator","_arrayLikeToArray","arr","len","arr2","Array","_assertThisInitialized","self","ReferenceError","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","isArray","F","s","n","done","e","_e","f","normalCompletion","didErr","step","next","_e2","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_isNativeReflectConstruct","t","Boolean","valueOf","Reflect","construct","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","arguments","apply","assertThisInitialized","_defineProperty","_extends","source","_inherits","subClass","superClass","_inheritsLoose","ownKeys","r","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_setPrototypeOf","p","_toConsumableArray","arrayLikeToArray","iter","unsupportedIterableToArray","toPropertyKey","toPrimitive","Number","_unsupportedIterableToArray","minLen"],"sourceRoot":""}