@azure/storage-file-share 12.23.0-alpha.20240112.1 → 12.23.0-alpha.20240116.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +270 -471
- package/dist/index.js.map +1 -1
- package/dist-esm/storage-blob/src/BlobBatchClient.js +1 -3
- package/dist-esm/storage-blob/src/BlobBatchClient.js.map +1 -1
- package/dist-esm/storage-blob/src/BlobLeaseClient.js +30 -35
- package/dist-esm/storage-blob/src/BlobLeaseClient.js.map +1 -1
- package/dist-esm/storage-blob/src/BlobServiceClient.js +81 -80
- package/dist-esm/storage-blob/src/BlobServiceClient.js.map +1 -1
- package/dist-esm/storage-blob/src/Clients.js +193 -302
- package/dist-esm/storage-blob/src/Clients.js.map +1 -1
- package/dist-esm/storage-blob/src/ContainerClient.js +132 -165
- package/dist-esm/storage-blob/src/ContainerClient.js.map +1 -1
- package/dist-esm/storage-blob/src/PageBlobRangeResponse.js +3 -10
- package/dist-esm/storage-blob/src/PageBlobRangeResponse.js.map +1 -1
- package/dist-esm/storage-blob/src/Pipeline.js +10 -19
- package/dist-esm/storage-blob/src/Pipeline.js.map +1 -1
- package/dist-esm/storage-blob/src/StorageContextClient.js +1 -1
- package/dist-esm/storage-blob/src/StorageContextClient.js.map +1 -1
- package/dist-esm/storage-blob/src/generated/src/storageClient.js +3 -7
- package/dist-esm/storage-blob/src/generated/src/storageClient.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js +12 -10
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js.map +1 -1
- package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js +3 -6
- package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/utils.common.js +11 -24
- package/dist-esm/storage-blob/src/utils/utils.common.js.map +1 -1
- package/dist-esm/storage-file-share/src/Clients.js +194 -366
- package/dist-esm/storage-file-share/src/Clients.js.map +1 -1
- package/dist-esm/storage-file-share/src/ShareServiceClient.js +43 -42
- package/dist-esm/storage-file-share/src/ShareServiceClient.js.map +1 -1
- package/dist-esm/storage-file-share/src/StorageContextClient.js +1 -1
- package/dist-esm/storage-file-share/src/StorageContextClient.js.map +1 -1
- package/dist-esm/storage-file-share/src/generated/src/storageClient.js +3 -7
- package/dist-esm/storage-file-share/src/generated/src/storageClient.js.map +1 -1
- package/dist-esm/storage-file-share/src/utils/utils.common.js +10 -26
- package/dist-esm/storage-file-share/src/utils/utils.common.js.map +1 -1
- package/package.json +1 -1
| @@ -118,9 +118,7 @@ export class BlobBatchClient { | |
| 118 118 | 
             
                    return tracingClient.withSpan("BlobBatchClient-submitBatch", options, async (updatedOptions) => {
         | 
| 119 119 | 
             
                        const batchRequestBody = batchRequest.getHttpRequestBody();
         | 
| 120 120 | 
             
                        // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.
         | 
| 121 | 
            -
                        const rawBatchResponse = assertResponse(await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, {
         | 
| 122 | 
            -
                            ...updatedOptions,
         | 
| 123 | 
            -
                        }));
         | 
| 121 | 
            +
                        const rawBatchResponse = assertResponse(await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, Object.assign({}, updatedOptions)));
         | 
| 124 122 | 
             
                        // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).
         | 
| 125 123 | 
             
                        const batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests());
         | 
| 126 124 | 
             
                        const responseSummary = await batchResponseParser.parseBatchResponse();
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"BlobBatchClient.js","sourceRoot":"","sources":["../../../../storage-blob/src/BlobBatchClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n  AccessTier,\n  ServiceSubmitBatchHeaders,\n  ServiceSubmitBatchOptionalParamsModel,\n  ServiceSubmitBatchResponseModel,\n} from \"./generatedModels\";\nimport { ParsedBatchResponse } from \"./BatchResponse\";\nimport { BatchResponseParser } from \"./BatchResponseParser\";\nimport { utf8ByteLength } from \"./BatchUtils\";\nimport { BlobBatch } from \"./BlobBatch\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { Service, Container } from \"./generated/src/operationsInterfaces\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { BlobDeleteOptions, BlobClient, BlobSetTierOptions } from \"./Clients\";\nimport { StorageContextClient } from \"./StorageContextClient\";\nimport {\n  PipelineLike,\n  StoragePipelineOptions,\n  newPipeline,\n  isPipelineLike,\n  getCoreClientOptions,\n} from \"./Pipeline\";\nimport { assertResponse, getURLPath, WithResponse } from \"./utils/utils.common\";\n\n/**\n * Options to configure the Service - Submit Batch Optional Params.\n */\nexport interface BlobBatchSubmitBatchOptionalParams extends ServiceSubmitBatchOptionalParamsModel {}\n\n/**\n * Contains response data for blob batch operations.\n */\nexport declare type BlobBatchSubmitBatchResponse = WithResponse<\n  ParsedBatchResponse & ServiceSubmitBatchHeaders,\n  ServiceSubmitBatchHeaders\n>;\n\n/**\n * Contains response data for the {@link deleteBlobs} operation.\n */\nexport declare type BlobBatchDeleteBlobsResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * Contains response data for the {@link setBlobsAccessTier} operation.\n */\nexport declare type BlobBatchSetBlobsAccessTierResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch\n */\nexport class BlobBatchClient {\n  private serviceOrContainerContext: Service | Container;\n\n  /**\n   * Creates an instance of BlobBatchClient.\n   *\n   * @param url - A url pointing to Azure Storage blob service, such as\n   *                     \"https://myaccount.blob.core.windows.net\". You can append a SAS\n   *                     if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param options - Options to configure the HTTP pipeline.\n   */\n  constructor(\n    url: string,\n    credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: StoragePipelineOptions,\n  );\n\n  /**\n   * Creates an instance of BlobBatchClient.\n   *\n   * @param url - A url pointing to Azure Storage blob service, such as\n   *                     \"https://myaccount.blob.core.windows.net\". You can append a SAS\n   *                     if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n   * @param pipeline - Call newPipeline() to create a default\n   *                            pipeline, or provide a customized pipeline.\n   */\n  constructor(url: string, pipeline: PipelineLike);\n  constructor(\n    url: string,\n    credentialOrPipeline?:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | PipelineLike,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: StoragePipelineOptions,\n  ) {\n    let pipeline: PipelineLike;\n    if (isPipelineLike(credentialOrPipeline)) {\n      pipeline = credentialOrPipeline;\n    } else if (!credentialOrPipeline) {\n      // no credential provided\n      pipeline = newPipeline(new AnonymousCredential(), options);\n    } else {\n      pipeline = newPipeline(credentialOrPipeline, options);\n    }\n\n    const storageClientContext = new StorageContextClient(url, getCoreClientOptions(pipeline));\n\n    const path = getURLPath(url);\n    if (path && path !== \"/\") {\n      // Container scoped.\n      this.serviceOrContainerContext = storageClientContext.container;\n    } else {\n      this.serviceOrContainerContext = storageClientContext.service;\n    }\n  }\n\n  /**\n   * Creates a {@link BlobBatch}.\n   * A BlobBatch represents an aggregated set of operations on blobs.\n   */\n  public createBatch(): BlobBatch {\n    return new BlobBatch();\n  }\n\n  /**\n   * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n   * Note that in order to delete a blob, you must delete all of its snapshots.\n   * You can delete both at the same time. See [delete operation details](https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob).\n   * The operations will be authenticated and authorized with specified credential.\n   * See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param urls - The urls of the blob resources to delete.\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param options -\n   */\n  public async deleteBlobs(\n    urls: string[],\n    credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse>;\n\n  /**\n   * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n   * Note that in order to delete a blob, you must delete all of its snapshots.\n   * You can delete both at the same time. See [delete operation details](https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob).\n   * The operation(subrequest) will be authenticated and authorized with specified credential.\n   * See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param blobClients - The BlobClients for the blobs to delete.\n   * @param options -\n   */\n  public async deleteBlobs(\n    blobClients: BlobClient[],\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse>;\n\n  public async deleteBlobs(\n    urlsOrBlobClients: string[] | BlobClient[],\n    credentialOrOptions:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | BlobDeleteOptions\n      | undefined,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse> {\n    const batch = new BlobBatch();\n    for (const urlOrBlobClient of urlsOrBlobClients) {\n      if (typeof urlOrBlobClient === \"string\") {\n        await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as TokenCredential, options);\n      } else {\n        await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as BlobDeleteOptions);\n      }\n    }\n    return this.submitBatch(batch);\n  }\n\n  /**\n   * Create multiple set tier operations to set the tier on a blob.\n   * The operation is allowed on a page blob in a premium\n   * storage account and on a block blob in a blob storage account (locally redundant\n   * storage only). A premium page blob's tier determines the allowed size, IOPS,\n   * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n   * storage type. This operation does not update the blob's ETag.\n   * See [set blob tier details](https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier).\n   * The operation(subrequest) will be authenticated and authorized\n   * with specified credential.See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param urls - The urls of the blob resource to delete.\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param tier -\n   * @param options -\n   */\n  public async setBlobsAccessTier(\n    urls: string[],\n    credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    tier: AccessTier,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n  /**\n   * Create multiple set tier operations to set the tier on a blob.\n   * The operation is allowed on a page blob in a premium\n   * storage account and on a block blob in a blob storage account (locally redundant\n   * storage only). A premium page blob's tier determines the allowed size, IOPS,\n   * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n   * storage type. This operation does not update the blob's ETag.\n   * See [set blob tier details](https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier).\n   * The operation(subrequest) will be authenticated and authorized\n   * with specified credential.See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param blobClients - The BlobClients for the blobs which should have a new tier set.\n   * @param tier -\n   * @param options -\n   */\n  public async setBlobsAccessTier(\n    blobClients: BlobClient[],\n    tier: AccessTier,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n  public async setBlobsAccessTier(\n    urlsOrBlobClients: string[] | BlobClient[],\n    credentialOrTier:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | AccessTier,\n    tierOrOptions?: AccessTier | BlobSetTierOptions,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse> {\n    const batch = new BlobBatch();\n    for (const urlOrBlobClient of urlsOrBlobClients) {\n      if (typeof urlOrBlobClient === \"string\") {\n        await batch.setBlobAccessTier(\n          urlOrBlobClient,\n          credentialOrTier as TokenCredential,\n          tierOrOptions as AccessTier,\n          options,\n        );\n      } else {\n        await batch.setBlobAccessTier(\n          urlOrBlobClient,\n          credentialOrTier as AccessTier,\n          tierOrOptions as BlobSetTierOptions,\n        );\n      }\n    }\n    return this.submitBatch(batch);\n  }\n\n  /**\n   * Submit batch request which consists of multiple subrequests.\n   *\n   * Get `blobBatchClient` and other details before running the snippets.\n   * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`\n   *\n   * Example usage:\n   *\n   * ```js\n   * let batchRequest = new BlobBatch();\n   * await batchRequest.deleteBlob(urlInString0, credential0);\n   * await batchRequest.deleteBlob(urlInString1, credential1, {\n   *  deleteSnapshots: \"include\"\n   * });\n   * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n   * console.log(batchResp.subResponsesSucceededCount);\n   * ```\n   *\n   * Example using a lease:\n   *\n   * ```js\n   * let batchRequest = new BlobBatch();\n   * await batchRequest.setBlobAccessTier(blockBlobClient0, \"Cool\");\n   * await batchRequest.setBlobAccessTier(blockBlobClient1, \"Cool\", {\n   *  conditions: { leaseId: leaseId }\n   * });\n   * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n   * console.log(batchResp.subResponsesSucceededCount);\n   * ```\n   *\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch\n   *\n   * @param batchRequest - A set of Delete or SetTier operations.\n   * @param options -\n   */\n  public async submitBatch(\n    batchRequest: BlobBatch,\n    options: BlobBatchSubmitBatchOptionalParams = {},\n  ): Promise<BlobBatchSubmitBatchResponse> {\n    if (!batchRequest || batchRequest.getSubRequests().size === 0) {\n      throw new RangeError(\"Batch request should contain one or more sub requests.\");\n    }\n\n    return tracingClient.withSpan(\n      \"BlobBatchClient-submitBatch\",\n      options,\n      async (updatedOptions) => {\n        const batchRequestBody = batchRequest.getHttpRequestBody();\n\n        // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.\n        const rawBatchResponse: ServiceSubmitBatchResponseModel = assertResponse(\n          await this.serviceOrContainerContext.submitBatch(\n            utf8ByteLength(batchRequestBody),\n            batchRequest.getMultiPartContentType(),\n            batchRequestBody,\n            {\n              ...updatedOptions,\n            },\n          ),\n        );\n\n        // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).\n        const batchResponseParser = new BatchResponseParser(\n          rawBatchResponse,\n          batchRequest.getSubRequests(),\n        );\n        const responseSummary = await batchResponseParser.parseBatchResponse();\n\n        const res: BlobBatchSubmitBatchResponse = {\n          _response: rawBatchResponse._response,\n          contentType: rawBatchResponse.contentType,\n          errorCode: rawBatchResponse.errorCode,\n          requestId: rawBatchResponse.requestId,\n          clientRequestId: rawBatchResponse.clientRequestId,\n          version: rawBatchResponse.version,\n          subResponses: responseSummary.subResponses,\n          subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,\n          subResponsesFailedCount: responseSummary.subResponsesFailedCount,\n        };\n\n        return res;\n      },\n    );\n  }\n}\n"]}
         | 
| 1 | 
            +
            {"version":3,"file":"BlobBatchClient.js","sourceRoot":"","sources":["../../../../storage-blob/src/BlobBatchClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n  AccessTier,\n  ServiceSubmitBatchHeaders,\n  ServiceSubmitBatchOptionalParamsModel,\n  ServiceSubmitBatchResponseModel,\n} from \"./generatedModels\";\nimport { ParsedBatchResponse } from \"./BatchResponse\";\nimport { BatchResponseParser } from \"./BatchResponseParser\";\nimport { utf8ByteLength } from \"./BatchUtils\";\nimport { BlobBatch } from \"./BlobBatch\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { Service, Container } from \"./generated/src/operationsInterfaces\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { BlobDeleteOptions, BlobClient, BlobSetTierOptions } from \"./Clients\";\nimport { StorageContextClient } from \"./StorageContextClient\";\nimport {\n  PipelineLike,\n  StoragePipelineOptions,\n  newPipeline,\n  isPipelineLike,\n  getCoreClientOptions,\n} from \"./Pipeline\";\nimport { assertResponse, getURLPath, WithResponse } from \"./utils/utils.common\";\n\n/**\n * Options to configure the Service - Submit Batch Optional Params.\n */\nexport interface BlobBatchSubmitBatchOptionalParams extends ServiceSubmitBatchOptionalParamsModel {}\n\n/**\n * Contains response data for blob batch operations.\n */\nexport declare type BlobBatchSubmitBatchResponse = WithResponse<\n  ParsedBatchResponse & ServiceSubmitBatchHeaders,\n  ServiceSubmitBatchHeaders\n>;\n\n/**\n * Contains response data for the {@link deleteBlobs} operation.\n */\nexport declare type BlobBatchDeleteBlobsResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * Contains response data for the {@link setBlobsAccessTier} operation.\n */\nexport declare type BlobBatchSetBlobsAccessTierResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch\n */\nexport class BlobBatchClient {\n  private serviceOrContainerContext: Service | Container;\n\n  /**\n   * Creates an instance of BlobBatchClient.\n   *\n   * @param url - A url pointing to Azure Storage blob service, such as\n   *                     \"https://myaccount.blob.core.windows.net\". You can append a SAS\n   *                     if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param options - Options to configure the HTTP pipeline.\n   */\n  constructor(\n    url: string,\n    credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: StoragePipelineOptions,\n  );\n\n  /**\n   * Creates an instance of BlobBatchClient.\n   *\n   * @param url - A url pointing to Azure Storage blob service, such as\n   *                     \"https://myaccount.blob.core.windows.net\". You can append a SAS\n   *                     if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n   * @param pipeline - Call newPipeline() to create a default\n   *                            pipeline, or provide a customized pipeline.\n   */\n  constructor(url: string, pipeline: PipelineLike);\n  constructor(\n    url: string,\n    credentialOrPipeline?:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | PipelineLike,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: StoragePipelineOptions,\n  ) {\n    let pipeline: PipelineLike;\n    if (isPipelineLike(credentialOrPipeline)) {\n      pipeline = credentialOrPipeline;\n    } else if (!credentialOrPipeline) {\n      // no credential provided\n      pipeline = newPipeline(new AnonymousCredential(), options);\n    } else {\n      pipeline = newPipeline(credentialOrPipeline, options);\n    }\n\n    const storageClientContext = new StorageContextClient(url, getCoreClientOptions(pipeline));\n\n    const path = getURLPath(url);\n    if (path && path !== \"/\") {\n      // Container scoped.\n      this.serviceOrContainerContext = storageClientContext.container;\n    } else {\n      this.serviceOrContainerContext = storageClientContext.service;\n    }\n  }\n\n  /**\n   * Creates a {@link BlobBatch}.\n   * A BlobBatch represents an aggregated set of operations on blobs.\n   */\n  public createBatch(): BlobBatch {\n    return new BlobBatch();\n  }\n\n  /**\n   * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n   * Note that in order to delete a blob, you must delete all of its snapshots.\n   * You can delete both at the same time. See [delete operation details](https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob).\n   * The operations will be authenticated and authorized with specified credential.\n   * See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param urls - The urls of the blob resources to delete.\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param options -\n   */\n  public async deleteBlobs(\n    urls: string[],\n    credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse>;\n\n  /**\n   * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n   * Note that in order to delete a blob, you must delete all of its snapshots.\n   * You can delete both at the same time. See [delete operation details](https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob).\n   * The operation(subrequest) will be authenticated and authorized with specified credential.\n   * See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param blobClients - The BlobClients for the blobs to delete.\n   * @param options -\n   */\n  public async deleteBlobs(\n    blobClients: BlobClient[],\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse>;\n\n  public async deleteBlobs(\n    urlsOrBlobClients: string[] | BlobClient[],\n    credentialOrOptions:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | BlobDeleteOptions\n      | undefined,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobDeleteOptions,\n  ): Promise<BlobBatchDeleteBlobsResponse> {\n    const batch = new BlobBatch();\n    for (const urlOrBlobClient of urlsOrBlobClients) {\n      if (typeof urlOrBlobClient === \"string\") {\n        await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as TokenCredential, options);\n      } else {\n        await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as BlobDeleteOptions);\n      }\n    }\n    return this.submitBatch(batch);\n  }\n\n  /**\n   * Create multiple set tier operations to set the tier on a blob.\n   * The operation is allowed on a page blob in a premium\n   * storage account and on a block blob in a blob storage account (locally redundant\n   * storage only). A premium page blob's tier determines the allowed size, IOPS,\n   * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n   * storage type. This operation does not update the blob's ETag.\n   * See [set blob tier details](https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier).\n   * The operation(subrequest) will be authenticated and authorized\n   * with specified credential.See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param urls - The urls of the blob resource to delete.\n   * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n   * @param tier -\n   * @param options -\n   */\n  public async setBlobsAccessTier(\n    urls: string[],\n    credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n    tier: AccessTier,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n  /**\n   * Create multiple set tier operations to set the tier on a blob.\n   * The operation is allowed on a page blob in a premium\n   * storage account and on a block blob in a blob storage account (locally redundant\n   * storage only). A premium page blob's tier determines the allowed size, IOPS,\n   * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n   * storage type. This operation does not update the blob's ETag.\n   * See [set blob tier details](https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier).\n   * The operation(subrequest) will be authenticated and authorized\n   * with specified credential.See [blob batch authorization details](https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch#authorization).\n   *\n   * @param blobClients - The BlobClients for the blobs which should have a new tier set.\n   * @param tier -\n   * @param options -\n   */\n  public async setBlobsAccessTier(\n    blobClients: BlobClient[],\n    tier: AccessTier,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n  public async setBlobsAccessTier(\n    urlsOrBlobClients: string[] | BlobClient[],\n    credentialOrTier:\n      | StorageSharedKeyCredential\n      | AnonymousCredential\n      | TokenCredential\n      | AccessTier,\n    tierOrOptions?: AccessTier | BlobSetTierOptions,\n    // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n    /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n    options?: BlobSetTierOptions,\n  ): Promise<BlobBatchSetBlobsAccessTierResponse> {\n    const batch = new BlobBatch();\n    for (const urlOrBlobClient of urlsOrBlobClients) {\n      if (typeof urlOrBlobClient === \"string\") {\n        await batch.setBlobAccessTier(\n          urlOrBlobClient,\n          credentialOrTier as TokenCredential,\n          tierOrOptions as AccessTier,\n          options,\n        );\n      } else {\n        await batch.setBlobAccessTier(\n          urlOrBlobClient,\n          credentialOrTier as AccessTier,\n          tierOrOptions as BlobSetTierOptions,\n        );\n      }\n    }\n    return this.submitBatch(batch);\n  }\n\n  /**\n   * Submit batch request which consists of multiple subrequests.\n   *\n   * Get `blobBatchClient` and other details before running the snippets.\n   * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`\n   *\n   * Example usage:\n   *\n   * ```js\n   * let batchRequest = new BlobBatch();\n   * await batchRequest.deleteBlob(urlInString0, credential0);\n   * await batchRequest.deleteBlob(urlInString1, credential1, {\n   *  deleteSnapshots: \"include\"\n   * });\n   * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n   * console.log(batchResp.subResponsesSucceededCount);\n   * ```\n   *\n   * Example using a lease:\n   *\n   * ```js\n   * let batchRequest = new BlobBatch();\n   * await batchRequest.setBlobAccessTier(blockBlobClient0, \"Cool\");\n   * await batchRequest.setBlobAccessTier(blockBlobClient1, \"Cool\", {\n   *  conditions: { leaseId: leaseId }\n   * });\n   * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n   * console.log(batchResp.subResponsesSucceededCount);\n   * ```\n   *\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch\n   *\n   * @param batchRequest - A set of Delete or SetTier operations.\n   * @param options -\n   */\n  public async submitBatch(\n    batchRequest: BlobBatch,\n    options: BlobBatchSubmitBatchOptionalParams = {},\n  ): Promise<BlobBatchSubmitBatchResponse> {\n    if (!batchRequest || batchRequest.getSubRequests().size === 0) {\n      throw new RangeError(\"Batch request should contain one or more sub requests.\");\n    }\n\n    return tracingClient.withSpan(\n      \"BlobBatchClient-submitBatch\",\n      options,\n      async (updatedOptions) => {\n        const batchRequestBody = batchRequest.getHttpRequestBody();\n\n        // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.\n        const rawBatchResponse: ServiceSubmitBatchResponseModel = assertResponse(\n          await this.serviceOrContainerContext.submitBatch(\n            utf8ByteLength(batchRequestBody),\n            batchRequest.getMultiPartContentType(),\n            batchRequestBody,\n            {\n              ...updatedOptions,\n            },\n          ),\n        );\n\n        // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).\n        const batchResponseParser = new BatchResponseParser(\n          rawBatchResponse,\n          batchRequest.getSubRequests(),\n        );\n        const responseSummary = await batchResponseParser.parseBatchResponse();\n\n        const res: BlobBatchSubmitBatchResponse = {\n          _response: rawBatchResponse._response,\n          contentType: rawBatchResponse.contentType,\n          errorCode: rawBatchResponse.errorCode,\n          requestId: rawBatchResponse.requestId,\n          clientRequestId: rawBatchResponse.clientRequestId,\n          version: rawBatchResponse.version,\n          subResponses: responseSummary.subResponses,\n          subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,\n          subResponsesFailedCount: responseSummary.subResponsesFailedCount,\n        };\n\n        return res;\n      },\n    );\n  }\n}\n"]}
         | 
| @@ -58,20 +58,19 @@ export class BlobLeaseClient { | |
| 58 58 | 
             
                 * @returns Response data for acquire lease operation.
         | 
| 59 59 | 
             
                 */
         | 
| 60 60 | 
             
                async acquireLease(duration, options = {}) {
         | 
| 61 | 
            +
                    var _a, _b, _c, _d, _e;
         | 
| 61 62 | 
             
                    if (this._isContainer &&
         | 
| 62 | 
            -
                        ((options.conditions | 
| 63 | 
            -
                            (options.conditions | 
| 64 | 
            -
                            options.conditions | 
| 63 | 
            +
                        ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) ||
         | 
| 64 | 
            +
                            (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) ||
         | 
| 65 | 
            +
                            ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) {
         | 
| 65 66 | 
             
                        throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");
         | 
| 66 67 | 
             
                    }
         | 
| 67 68 | 
             
                    return tracingClient.withSpan("BlobLeaseClient-acquireLease", options, async (updatedOptions) => {
         | 
| 69 | 
            +
                        var _a;
         | 
| 68 70 | 
             
                        return assertResponse(await this._containerOrBlobOperation.acquireLease({
         | 
| 69 71 | 
             
                            abortSignal: options.abortSignal,
         | 
| 70 72 | 
             
                            duration,
         | 
| 71 | 
            -
                            modifiedAccessConditions: {
         | 
| 72 | 
            -
                                ...options.conditions,
         | 
| 73 | 
            -
                                ifTags: options.conditions?.tagConditions,
         | 
| 74 | 
            -
                            },
         | 
| 73 | 
            +
                            modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
         | 
| 75 74 | 
             
                            proposedLeaseId: this._leaseId,
         | 
| 76 75 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 77 76 | 
             
                        }));
         | 
| @@ -88,19 +87,18 @@ export class BlobLeaseClient { | |
| 88 87 | 
             
                 * @returns Response data for change lease operation.
         | 
| 89 88 | 
             
                 */
         | 
| 90 89 | 
             
                async changeLease(proposedLeaseId, options = {}) {
         | 
| 90 | 
            +
                    var _a, _b, _c, _d, _e;
         | 
| 91 91 | 
             
                    if (this._isContainer &&
         | 
| 92 | 
            -
                        ((options.conditions | 
| 93 | 
            -
                            (options.conditions | 
| 94 | 
            -
                            options.conditions | 
| 92 | 
            +
                        ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) ||
         | 
| 93 | 
            +
                            (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) ||
         | 
| 94 | 
            +
                            ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) {
         | 
| 95 95 | 
             
                        throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");
         | 
| 96 96 | 
             
                    }
         | 
| 97 97 | 
             
                    return tracingClient.withSpan("BlobLeaseClient-changeLease", options, async (updatedOptions) => {
         | 
| 98 | 
            +
                        var _a;
         | 
| 98 99 | 
             
                        const response = assertResponse(await this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, {
         | 
| 99 100 | 
             
                            abortSignal: options.abortSignal,
         | 
| 100 | 
            -
                            modifiedAccessConditions: {
         | 
| 101 | 
            -
                                ...options.conditions,
         | 
| 102 | 
            -
                                ifTags: options.conditions?.tagConditions,
         | 
| 103 | 
            -
                            },
         | 
| 101 | 
            +
                            modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
         | 
| 104 102 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 105 103 | 
             
                        }));
         | 
| 106 104 | 
             
                        this._leaseId = proposedLeaseId;
         | 
| @@ -118,19 +116,18 @@ export class BlobLeaseClient { | |
| 118 116 | 
             
                 * @returns Response data for release lease operation.
         | 
| 119 117 | 
             
                 */
         | 
| 120 118 | 
             
                async releaseLease(options = {}) {
         | 
| 119 | 
            +
                    var _a, _b, _c, _d, _e;
         | 
| 121 120 | 
             
                    if (this._isContainer &&
         | 
| 122 | 
            -
                        ((options.conditions | 
| 123 | 
            -
                            (options.conditions | 
| 124 | 
            -
                            options.conditions | 
| 121 | 
            +
                        ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) ||
         | 
| 122 | 
            +
                            (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) ||
         | 
| 123 | 
            +
                            ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) {
         | 
| 125 124 | 
             
                        throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");
         | 
| 126 125 | 
             
                    }
         | 
| 127 126 | 
             
                    return tracingClient.withSpan("BlobLeaseClient-releaseLease", options, async (updatedOptions) => {
         | 
| 127 | 
            +
                        var _a;
         | 
| 128 128 | 
             
                        return assertResponse(await this._containerOrBlobOperation.releaseLease(this._leaseId, {
         | 
| 129 129 | 
             
                            abortSignal: options.abortSignal,
         | 
| 130 | 
            -
                            modifiedAccessConditions: {
         | 
| 131 | 
            -
                                ...options.conditions,
         | 
| 132 | 
            -
                                ifTags: options.conditions?.tagConditions,
         | 
| 133 | 
            -
                            },
         | 
| 130 | 
            +
                            modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
         | 
| 134 131 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 135 132 | 
             
                        }));
         | 
| 136 133 | 
             
                    });
         | 
| @@ -145,19 +142,18 @@ export class BlobLeaseClient { | |
| 145 142 | 
             
                 * @returns Response data for renew lease operation.
         | 
| 146 143 | 
             
                 */
         | 
| 147 144 | 
             
                async renewLease(options = {}) {
         | 
| 145 | 
            +
                    var _a, _b, _c, _d, _e;
         | 
| 148 146 | 
             
                    if (this._isContainer &&
         | 
| 149 | 
            -
                        ((options.conditions | 
| 150 | 
            -
                            (options.conditions | 
| 151 | 
            -
                            options.conditions | 
| 147 | 
            +
                        ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) ||
         | 
| 148 | 
            +
                            (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) ||
         | 
| 149 | 
            +
                            ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) {
         | 
| 152 150 | 
             
                        throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");
         | 
| 153 151 | 
             
                    }
         | 
| 154 152 | 
             
                    return tracingClient.withSpan("BlobLeaseClient-renewLease", options, async (updatedOptions) => {
         | 
| 153 | 
            +
                        var _a;
         | 
| 155 154 | 
             
                        return this._containerOrBlobOperation.renewLease(this._leaseId, {
         | 
| 156 155 | 
             
                            abortSignal: options.abortSignal,
         | 
| 157 | 
            -
                            modifiedAccessConditions: {
         | 
| 158 | 
            -
                                ...options.conditions,
         | 
| 159 | 
            -
                                ifTags: options.conditions?.tagConditions,
         | 
| 160 | 
            -
                            },
         | 
| 156 | 
            +
                            modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
         | 
| 161 157 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 162 158 | 
             
                        });
         | 
| 163 159 | 
             
                    });
         | 
| @@ -174,20 +170,19 @@ export class BlobLeaseClient { | |
| 174 170 | 
             
                 * @returns Response data for break lease operation.
         | 
| 175 171 | 
             
                 */
         | 
| 176 172 | 
             
                async breakLease(breakPeriod, options = {}) {
         | 
| 173 | 
            +
                    var _a, _b, _c, _d, _e;
         | 
| 177 174 | 
             
                    if (this._isContainer &&
         | 
| 178 | 
            -
                        ((options.conditions | 
| 179 | 
            -
                            (options.conditions | 
| 180 | 
            -
                            options.conditions | 
| 175 | 
            +
                        ((((_a = options.conditions) === null || _a === void 0 ? void 0 : _a.ifMatch) && ((_b = options.conditions) === null || _b === void 0 ? void 0 : _b.ifMatch) !== ETagNone) ||
         | 
| 176 | 
            +
                            (((_c = options.conditions) === null || _c === void 0 ? void 0 : _c.ifNoneMatch) && ((_d = options.conditions) === null || _d === void 0 ? void 0 : _d.ifNoneMatch) !== ETagNone) ||
         | 
| 177 | 
            +
                            ((_e = options.conditions) === null || _e === void 0 ? void 0 : _e.tagConditions))) {
         | 
| 181 178 | 
             
                        throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");
         | 
| 182 179 | 
             
                    }
         | 
| 183 180 | 
             
                    return tracingClient.withSpan("BlobLeaseClient-breakLease", options, async (updatedOptions) => {
         | 
| 181 | 
            +
                        var _a;
         | 
| 184 182 | 
             
                        const operationOptions = {
         | 
| 185 183 | 
             
                            abortSignal: options.abortSignal,
         | 
| 186 184 | 
             
                            breakPeriod,
         | 
| 187 | 
            -
                            modifiedAccessConditions: {
         | 
| 188 | 
            -
                                ...options.conditions,
         | 
| 189 | 
            -
                                ifTags: options.conditions?.tagConditions,
         | 
| 190 | 
            -
                            },
         | 
| 185 | 
            +
                            modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
         | 
| 191 186 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 192 187 | 
             
                        };
         | 
| 193 188 | 
             
                        return assertResponse(await this._containerOrBlobOperation.breakLease(operationOptions));
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"BlobLeaseClient.js","sourceRoot":"","sources":["../../../../storage-blob/src/BlobLeaseClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { randomUUID } from \"@azure/core-util\";\nimport { ContainerBreakLeaseOptionalParams } from \"./generatedModels\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { Blob as StorageBlob, Container } from \"./generated/src/operationsInterfaces\";\nimport { ModifiedAccessConditions } from \"./models\";\nimport { CommonOptions } from \"./StorageClient\";\nimport { ETagNone } from \"./utils/constants\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { BlobClient } from \"./Clients\";\nimport { ContainerClient } from \"./ContainerClient\";\nimport { assertResponse, WithResponse } from \"./utils/utils.common\";\nimport {\n  ContainerAcquireLeaseHeaders,\n  ContainerBreakLeaseHeaders,\n  ContainerReleaseLeaseHeaders,\n} from \"./generated/src\";\n\n/**\n * The details for a specific lease.\n */\nexport interface Lease {\n  /**\n   * The ETag contains a value that you can use to\n   * perform operations conditionally. If the request version is 2011-08-18 or\n   * newer, the ETag value will be in quotes.\n   */\n  etag?: string;\n  /**\n   * Returns the date and time the container was\n   * last modified. Any operation that modifies the blob, including an update\n   * of the blob's metadata or properties, changes the last-modified time of\n   * the blob.\n   */\n  lastModified?: Date;\n  /**\n   * Uniquely identifies a container's lease\n   */\n  leaseId?: string;\n  /**\n   * Approximate time remaining in the lease\n   * period, in seconds.\n   */\n  leaseTime?: number;\n  /**\n   * This header uniquely identifies the request\n   * that was made and can be used for troubleshooting the request.\n   */\n  requestId?: string;\n  /**\n   * Indicates the version of the Blob service used\n   * to execute the request. This header is returned for requests made against\n   * version 2009-09-19 and above.\n   */\n  version?: string;\n  /**\n   * UTC date/time value generated by the service that\n   * indicates the time at which the response was initiated\n   */\n  date?: Date;\n  /**\n   * Error code if any associated with the response that returned\n   * the Lease information.\n   */\n  errorCode?: string;\n}\n\n/**\n * Contains the response data for operations that create, modify, or delete a lease.\n *\n * See {@link BlobLeaseClient}.\n */\nexport type LeaseOperationResponse = WithResponse<Lease, Lease>;\n\n/**\n * Configures lease operations.\n */\nexport interface LeaseOperationOptions extends CommonOptions {\n  /**\n   * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n   * For example, use the @azure/abort-controller to create an `AbortSignal`.\n   */\n  abortSignal?: AbortSignalLike;\n  /**\n   * Conditions to meet when changing the lease.\n   */\n  conditions?: ModifiedAccessConditions;\n}\n\n/**\n * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}.\n */\nexport class BlobLeaseClient {\n  private _leaseId: string;\n  private _url: string;\n  private _containerOrBlobOperation: Container | StorageBlob;\n  private _isContainer: boolean;\n\n  /**\n   * Gets the lease Id.\n   *\n   * @readonly\n   */\n  public get leaseId(): string {\n    return this._leaseId;\n  }\n\n  /**\n   * Gets the url.\n   *\n   * @readonly\n   */\n  public get url(): string {\n    return this._url;\n  }\n\n  /**\n   * Creates an instance of BlobLeaseClient.\n   * @param client - The client to make the lease operation requests.\n   * @param leaseId - Initial proposed lease id.\n   */\n  constructor(client: ContainerClient | BlobClient, leaseId?: string) {\n    const clientContext = (client as any).storageClientContext;\n    this._url = client.url;\n\n    if ((client as BlobClient).name === undefined) {\n      this._isContainer = true;\n      this._containerOrBlobOperation = clientContext.container;\n    } else {\n      this._isContainer = false;\n      this._containerOrBlobOperation = clientContext.blob;\n    }\n\n    if (!leaseId) {\n      leaseId = randomUUID();\n    }\n    this._leaseId = leaseId;\n  }\n\n  /**\n   * Establishes and manages a lock on a container for delete operations, or on a blob\n   * for write and delete operations.\n   * The lock duration can be 15 to 60 seconds, or can be infinite.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param duration - Must be between 15 to 60 seconds, or infinite (-1)\n   * @param options - option to configure lease management operations.\n   * @returns Response data for acquire lease operation.\n   */\n  public async acquireLease(\n    duration: number,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-acquireLease\",\n      options,\n      async (updatedOptions) => {\n        return assertResponse<ContainerAcquireLeaseHeaders, ContainerAcquireLeaseHeaders>(\n          await this._containerOrBlobOperation.acquireLease({\n            abortSignal: options.abortSignal,\n            duration,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            proposedLeaseId: this._leaseId,\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n      },\n    );\n  }\n\n  /**\n   * To change the ID of the lease.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param proposedLeaseId - the proposed new lease Id.\n   * @param options - option to configure lease management operations.\n   * @returns Response data for change lease operation.\n   */\n  public async changeLease(\n    proposedLeaseId: string,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-changeLease\",\n      options,\n      async (updatedOptions) => {\n        const response = assertResponse<Lease, Lease>(\n          await this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, {\n            abortSignal: options.abortSignal,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n        this._leaseId = proposedLeaseId;\n        return response;\n      },\n    );\n  }\n\n  /**\n   * To free the lease if it is no longer needed so that another client may\n   * immediately acquire a lease against the container or the blob.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param options - option to configure lease management operations.\n   * @returns Response data for release lease operation.\n   */\n  public async releaseLease(options: LeaseOperationOptions = {}): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-releaseLease\",\n      options,\n      async (updatedOptions) => {\n        return assertResponse<ContainerReleaseLeaseHeaders, ContainerReleaseLeaseHeaders>(\n          await this._containerOrBlobOperation.releaseLease(this._leaseId, {\n            abortSignal: options.abortSignal,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n      },\n    );\n  }\n\n  /**\n   * To renew the lease.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param options - Optional option to configure lease management operations.\n   * @returns Response data for renew lease operation.\n   */\n  public async renewLease(options: LeaseOperationOptions = {}): Promise<Lease> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\"BlobLeaseClient-renewLease\", options, async (updatedOptions) => {\n      return this._containerOrBlobOperation.renewLease(this._leaseId, {\n        abortSignal: options.abortSignal,\n        modifiedAccessConditions: {\n          ...options.conditions,\n          ifTags: options.conditions?.tagConditions,\n        },\n        tracingOptions: updatedOptions.tracingOptions,\n      });\n    });\n  }\n\n  /**\n   * To end the lease but ensure that another client cannot acquire a new lease\n   * until the current lease period has expired.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param breakPeriod - Break period\n   * @param options - Optional options to configure lease management operations.\n   * @returns Response data for break lease operation.\n   */\n  public async breakLease(\n    breakPeriod: number,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n\n    return tracingClient.withSpan(\"BlobLeaseClient-breakLease\", options, async (updatedOptions) => {\n      const operationOptions: ContainerBreakLeaseOptionalParams = {\n        abortSignal: options.abortSignal,\n        breakPeriod,\n        modifiedAccessConditions: {\n          ...options.conditions,\n          ifTags: options.conditions?.tagConditions,\n        },\n        tracingOptions: updatedOptions.tracingOptions,\n      };\n      return assertResponse<ContainerBreakLeaseHeaders, ContainerBreakLeaseHeaders>(\n        await this._containerOrBlobOperation.breakLease(operationOptions),\n      );\n    });\n  }\n}\n"]}
         | 
| 1 | 
            +
            {"version":3,"file":"BlobLeaseClient.js","sourceRoot":"","sources":["../../../../storage-blob/src/BlobLeaseClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { randomUUID } from \"@azure/core-util\";\nimport { ContainerBreakLeaseOptionalParams } from \"./generatedModels\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { Blob as StorageBlob, Container } from \"./generated/src/operationsInterfaces\";\nimport { ModifiedAccessConditions } from \"./models\";\nimport { CommonOptions } from \"./StorageClient\";\nimport { ETagNone } from \"./utils/constants\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { BlobClient } from \"./Clients\";\nimport { ContainerClient } from \"./ContainerClient\";\nimport { assertResponse, WithResponse } from \"./utils/utils.common\";\nimport {\n  ContainerAcquireLeaseHeaders,\n  ContainerBreakLeaseHeaders,\n  ContainerReleaseLeaseHeaders,\n} from \"./generated/src\";\n\n/**\n * The details for a specific lease.\n */\nexport interface Lease {\n  /**\n   * The ETag contains a value that you can use to\n   * perform operations conditionally. If the request version is 2011-08-18 or\n   * newer, the ETag value will be in quotes.\n   */\n  etag?: string;\n  /**\n   * Returns the date and time the container was\n   * last modified. Any operation that modifies the blob, including an update\n   * of the blob's metadata or properties, changes the last-modified time of\n   * the blob.\n   */\n  lastModified?: Date;\n  /**\n   * Uniquely identifies a container's lease\n   */\n  leaseId?: string;\n  /**\n   * Approximate time remaining in the lease\n   * period, in seconds.\n   */\n  leaseTime?: number;\n  /**\n   * This header uniquely identifies the request\n   * that was made and can be used for troubleshooting the request.\n   */\n  requestId?: string;\n  /**\n   * Indicates the version of the Blob service used\n   * to execute the request. This header is returned for requests made against\n   * version 2009-09-19 and above.\n   */\n  version?: string;\n  /**\n   * UTC date/time value generated by the service that\n   * indicates the time at which the response was initiated\n   */\n  date?: Date;\n  /**\n   * Error code if any associated with the response that returned\n   * the Lease information.\n   */\n  errorCode?: string;\n}\n\n/**\n * Contains the response data for operations that create, modify, or delete a lease.\n *\n * See {@link BlobLeaseClient}.\n */\nexport type LeaseOperationResponse = WithResponse<Lease, Lease>;\n\n/**\n * Configures lease operations.\n */\nexport interface LeaseOperationOptions extends CommonOptions {\n  /**\n   * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n   * For example, use the @azure/abort-controller to create an `AbortSignal`.\n   */\n  abortSignal?: AbortSignalLike;\n  /**\n   * Conditions to meet when changing the lease.\n   */\n  conditions?: ModifiedAccessConditions;\n}\n\n/**\n * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}.\n */\nexport class BlobLeaseClient {\n  private _leaseId: string;\n  private _url: string;\n  private _containerOrBlobOperation: Container | StorageBlob;\n  private _isContainer: boolean;\n\n  /**\n   * Gets the lease Id.\n   *\n   * @readonly\n   */\n  public get leaseId(): string {\n    return this._leaseId;\n  }\n\n  /**\n   * Gets the url.\n   *\n   * @readonly\n   */\n  public get url(): string {\n    return this._url;\n  }\n\n  /**\n   * Creates an instance of BlobLeaseClient.\n   * @param client - The client to make the lease operation requests.\n   * @param leaseId - Initial proposed lease id.\n   */\n  constructor(client: ContainerClient | BlobClient, leaseId?: string) {\n    const clientContext = (client as any).storageClientContext;\n    this._url = client.url;\n\n    if ((client as BlobClient).name === undefined) {\n      this._isContainer = true;\n      this._containerOrBlobOperation = clientContext.container;\n    } else {\n      this._isContainer = false;\n      this._containerOrBlobOperation = clientContext.blob;\n    }\n\n    if (!leaseId) {\n      leaseId = randomUUID();\n    }\n    this._leaseId = leaseId;\n  }\n\n  /**\n   * Establishes and manages a lock on a container for delete operations, or on a blob\n   * for write and delete operations.\n   * The lock duration can be 15 to 60 seconds, or can be infinite.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param duration - Must be between 15 to 60 seconds, or infinite (-1)\n   * @param options - option to configure lease management operations.\n   * @returns Response data for acquire lease operation.\n   */\n  public async acquireLease(\n    duration: number,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-acquireLease\",\n      options,\n      async (updatedOptions) => {\n        return assertResponse<ContainerAcquireLeaseHeaders, ContainerAcquireLeaseHeaders>(\n          await this._containerOrBlobOperation.acquireLease({\n            abortSignal: options.abortSignal,\n            duration,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            proposedLeaseId: this._leaseId,\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n      },\n    );\n  }\n\n  /**\n   * To change the ID of the lease.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param proposedLeaseId - the proposed new lease Id.\n   * @param options - option to configure lease management operations.\n   * @returns Response data for change lease operation.\n   */\n  public async changeLease(\n    proposedLeaseId: string,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-changeLease\",\n      options,\n      async (updatedOptions) => {\n        const response = assertResponse<Lease, Lease>(\n          await this._containerOrBlobOperation.changeLease(this._leaseId, proposedLeaseId, {\n            abortSignal: options.abortSignal,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n        this._leaseId = proposedLeaseId;\n        return response;\n      },\n    );\n  }\n\n  /**\n   * To free the lease if it is no longer needed so that another client may\n   * immediately acquire a lease against the container or the blob.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param options - option to configure lease management operations.\n   * @returns Response data for release lease operation.\n   */\n  public async releaseLease(options: LeaseOperationOptions = {}): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\n      \"BlobLeaseClient-releaseLease\",\n      options,\n      async (updatedOptions) => {\n        return assertResponse<ContainerReleaseLeaseHeaders, ContainerReleaseLeaseHeaders>(\n          await this._containerOrBlobOperation.releaseLease(this._leaseId, {\n            abortSignal: options.abortSignal,\n            modifiedAccessConditions: {\n              ...options.conditions,\n              ifTags: options.conditions?.tagConditions,\n            },\n            tracingOptions: updatedOptions.tracingOptions,\n          }),\n        );\n      },\n    );\n  }\n\n  /**\n   * To renew the lease.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param options - Optional option to configure lease management operations.\n   * @returns Response data for renew lease operation.\n   */\n  public async renewLease(options: LeaseOperationOptions = {}): Promise<Lease> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n    return tracingClient.withSpan(\"BlobLeaseClient-renewLease\", options, async (updatedOptions) => {\n      return this._containerOrBlobOperation.renewLease(this._leaseId, {\n        abortSignal: options.abortSignal,\n        modifiedAccessConditions: {\n          ...options.conditions,\n          ifTags: options.conditions?.tagConditions,\n        },\n        tracingOptions: updatedOptions.tracingOptions,\n      });\n    });\n  }\n\n  /**\n   * To end the lease but ensure that another client cannot acquire a new lease\n   * until the current lease period has expired.\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n   * and\n   * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n   *\n   * @param breakPeriod - Break period\n   * @param options - Optional options to configure lease management operations.\n   * @returns Response data for break lease operation.\n   */\n  public async breakLease(\n    breakPeriod: number,\n    options: LeaseOperationOptions = {},\n  ): Promise<LeaseOperationResponse> {\n    if (\n      this._isContainer &&\n      ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n        (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n        options.conditions?.tagConditions)\n    ) {\n      throw new RangeError(\n        \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\",\n      );\n    }\n\n    return tracingClient.withSpan(\"BlobLeaseClient-breakLease\", options, async (updatedOptions) => {\n      const operationOptions: ContainerBreakLeaseOptionalParams = {\n        abortSignal: options.abortSignal,\n        breakPeriod,\n        modifiedAccessConditions: {\n          ...options.conditions,\n          ifTags: options.conditions?.tagConditions,\n        },\n        tracingOptions: updatedOptions.tracingOptions,\n      };\n      return assertResponse<ContainerBreakLeaseHeaders, ContainerBreakLeaseHeaders>(\n        await this._containerOrBlobOperation.breakLease(operationOptions),\n      );\n    });\n  }\n}\n"]}
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
         | 
| 1 2 | 
             
            // Copyright (c) Microsoft Corporation.
         | 
| 2 3 | 
             
            // Licensed under the MIT license.
         | 
| 3 4 | 
             
            import { isTokenCredential } from "@azure/core-auth";
         | 
| @@ -157,13 +158,11 @@ export class BlobServiceClient extends StorageClient { | |
| 157 158 | 
             
                // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready.
         | 
| 158 159 | 
             
                async renameContainer(sourceContainerName, destinationContainerName, options = {}) {
         | 
| 159 160 | 
             
                    return tracingClient.withSpan("BlobServiceClient-renameContainer", options, async (updatedOptions) => {
         | 
| 161 | 
            +
                        var _a;
         | 
| 160 162 | 
             
                        const containerClient = this.getContainerClient(destinationContainerName);
         | 
| 161 163 | 
             
                        // Hack to access a protected member.
         | 
| 162 164 | 
             
                        const containerContext = containerClient["storageClientContext"].container;
         | 
| 163 | 
            -
                        const containerRenameResponse = assertResponse(await containerContext.rename(sourceContainerName, {
         | 
| 164 | 
            -
                            ...updatedOptions,
         | 
| 165 | 
            -
                            sourceLeaseId: options.sourceCondition?.leaseId,
         | 
| 166 | 
            -
                        }));
         | 
| 165 | 
            +
                        const containerRenameResponse = assertResponse(await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId })));
         | 
| 167 166 | 
             
                        return { containerClient, containerRenameResponse };
         | 
| 168 167 | 
             
                    });
         | 
| 169 168 | 
             
                }
         | 
| @@ -251,13 +250,7 @@ export class BlobServiceClient extends StorageClient { | |
| 251 250 | 
             
                 */
         | 
| 252 251 | 
             
                async listContainersSegment(marker, options = {}) {
         | 
| 253 252 | 
             
                    return tracingClient.withSpan("BlobServiceClient-listContainersSegment", options, async (updatedOptions) => {
         | 
| 254 | 
            -
                        return assertResponse(await this.serviceContext.listContainersSegment({
         | 
| 255 | 
            -
                            abortSignal: options.abortSignal,
         | 
| 256 | 
            -
                            marker,
         | 
| 257 | 
            -
                            ...options,
         | 
| 258 | 
            -
                            include: typeof options.include === "string" ? [options.include] : options.include,
         | 
| 259 | 
            -
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 260 | 
            -
                        }));
         | 
| 253 | 
            +
                        return assertResponse(await this.serviceContext.listContainersSegment(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, tracingOptions: updatedOptions.tracingOptions })));
         | 
| 261 254 | 
             
                    });
         | 
| 262 255 | 
             
                }
         | 
| 263 256 | 
             
                /**
         | 
| @@ -287,17 +280,14 @@ export class BlobServiceClient extends StorageClient { | |
| 287 280 | 
             
                            maxPageSize: options.maxPageSize,
         | 
| 288 281 | 
             
                            tracingOptions: updatedOptions.tracingOptions,
         | 
| 289 282 | 
             
                        }));
         | 
| 290 | 
            -
                        const wrappedResponse = {
         | 
| 291 | 
            -
             | 
| 292 | 
            -
                            _response: response._response,
         | 
| 293 | 
            -
                            blobs: response.blobs.map((blob) => {
         | 
| 283 | 
            +
                        const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => {
         | 
| 284 | 
            +
                                var _a;
         | 
| 294 285 | 
             
                                let tagValue = "";
         | 
| 295 | 
            -
                                if (blob.tags | 
| 286 | 
            +
                                if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) {
         | 
| 296 287 | 
             
                                    tagValue = blob.tags.blobTagSet[0].value;
         | 
| 297 288 | 
             
                                }
         | 
| 298 | 
            -
                                return {  | 
| 299 | 
            -
                            }) | 
| 300 | 
            -
                        };
         | 
| 289 | 
            +
                                return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue });
         | 
| 290 | 
            +
                            }) });
         | 
| 301 291 | 
             
                        return wrappedResponse;
         | 
| 302 292 | 
             
                    });
         | 
| 303 293 | 
             
                }
         | 
| @@ -317,16 +307,18 @@ export class BlobServiceClient extends StorageClient { | |
| 317 307 | 
             
                 *                          items. The marker value is opaque to the client.
         | 
| 318 308 | 
             
                 * @param options - Options to find blobs by tags.
         | 
| 319 309 | 
             
                 */
         | 
| 320 | 
            -
                 | 
| 321 | 
            -
                     | 
| 322 | 
            -
             | 
| 323 | 
            -
                         | 
| 324 | 
            -
                             | 
| 325 | 
            -
             | 
| 326 | 
            -
             | 
| 327 | 
            -
             | 
| 328 | 
            -
             | 
| 329 | 
            -
             | 
| 310 | 
            +
                findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) {
         | 
| 311 | 
            +
                    return __asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1() {
         | 
| 312 | 
            +
                        let response;
         | 
| 313 | 
            +
                        if (!!marker || marker === undefined) {
         | 
| 314 | 
            +
                            do {
         | 
| 315 | 
            +
                                response = yield __await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options));
         | 
| 316 | 
            +
                                response.blobs = response.blobs || [];
         | 
| 317 | 
            +
                                marker = response.continuationToken;
         | 
| 318 | 
            +
                                yield yield __await(response);
         | 
| 319 | 
            +
                            } while (marker);
         | 
| 320 | 
            +
                        }
         | 
| 321 | 
            +
                    });
         | 
| 330 322 | 
             
                }
         | 
| 331 323 | 
             
                /**
         | 
| 332 324 | 
             
                 * Returns an AsyncIterableIterator for blobs.
         | 
| @@ -337,11 +329,26 @@ export class BlobServiceClient extends StorageClient { | |
| 337 329 | 
             
                 *                                         however, only a subset of the OData filter syntax is supported in the Blob service.
         | 
| 338 330 | 
             
                 * @param options - Options to findBlobsByTagsItems.
         | 
| 339 331 | 
             
                 */
         | 
| 340 | 
            -
                 | 
| 341 | 
            -
                     | 
| 342 | 
            -
             | 
| 343 | 
            -
                         | 
| 344 | 
            -
             | 
| 332 | 
            +
                findBlobsByTagsItems(tagFilterSqlExpression, options = {}) {
         | 
| 333 | 
            +
                    return __asyncGenerator(this, arguments, function* findBlobsByTagsItems_1() {
         | 
| 334 | 
            +
                        var _a, e_1, _b, _c;
         | 
| 335 | 
            +
                        let marker;
         | 
| 336 | 
            +
                        try {
         | 
| 337 | 
            +
                            for (var _d = true, _e = __asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
         | 
| 338 | 
            +
                                _c = _f.value;
         | 
| 339 | 
            +
                                _d = false;
         | 
| 340 | 
            +
                                const segment = _c;
         | 
| 341 | 
            +
                                yield __await(yield* __asyncDelegator(__asyncValues(segment.blobs)));
         | 
| 342 | 
            +
                            }
         | 
| 343 | 
            +
                        }
         | 
| 344 | 
            +
                        catch (e_1_1) { e_1 = { error: e_1_1 }; }
         | 
| 345 | 
            +
                        finally {
         | 
| 346 | 
            +
                            try {
         | 
| 347 | 
            +
                                if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
         | 
| 348 | 
            +
                            }
         | 
| 349 | 
            +
                            finally { if (e_1) throw e_1.error; }
         | 
| 350 | 
            +
                        }
         | 
| 351 | 
            +
                    });
         | 
| 345 352 | 
             
                }
         | 
| 346 353 | 
             
                /**
         | 
| 347 354 | 
             
                 * Returns an async iterable iterator to find all blobs with specified tag
         | 
| @@ -424,9 +431,7 @@ export class BlobServiceClient extends StorageClient { | |
| 424 431 | 
             
                 */
         | 
| 425 432 | 
             
                findBlobsByTags(tagFilterSqlExpression, options = {}) {
         | 
| 426 433 | 
             
                    // AsyncIterableIterator to iterate over blobs
         | 
| 427 | 
            -
                    const listSegmentOptions = {
         | 
| 428 | 
            -
                        ...options,
         | 
| 429 | 
            -
                    };
         | 
| 434 | 
            +
                    const listSegmentOptions = Object.assign({}, options);
         | 
| 430 435 | 
             
                    const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);
         | 
| 431 436 | 
             
                    return {
         | 
| 432 437 | 
             
                        /**
         | 
| @@ -445,10 +450,7 @@ export class BlobServiceClient extends StorageClient { | |
| 445 450 | 
             
                         * Return an AsyncIterableIterator that works a page at a time
         | 
| 446 451 | 
             
                         */
         | 
| 447 452 | 
             
                        byPage: (settings = {}) => {
         | 
| 448 | 
            -
                            return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, {
         | 
| 449 | 
            -
                                maxPageSize: settings.maxPageSize,
         | 
| 450 | 
            -
                                ...listSegmentOptions,
         | 
| 451 | 
            -
                            });
         | 
| 453 | 
            +
                            return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
         | 
| 452 454 | 
             
                        },
         | 
| 453 455 | 
             
                    };
         | 
| 454 456 | 
             
                }
         | 
| @@ -464,28 +466,45 @@ export class BlobServiceClient extends StorageClient { | |
| 464 466 | 
             
                 *                        items. The marker value is opaque to the client.
         | 
| 465 467 | 
             
                 * @param options - Options to list containers operation.
         | 
| 466 468 | 
             
                 */
         | 
| 467 | 
            -
                 | 
| 468 | 
            -
                     | 
| 469 | 
            -
             | 
| 470 | 
            -
                         | 
| 471 | 
            -
                             | 
| 472 | 
            -
             | 
| 473 | 
            -
                                listContainersSegmentResponse.containerItems  | 
| 474 | 
            -
             | 
| 475 | 
            -
             | 
| 476 | 
            -
             | 
| 477 | 
            -
             | 
| 469 | 
            +
                listSegments(marker, options = {}) {
         | 
| 470 | 
            +
                    return __asyncGenerator(this, arguments, function* listSegments_1() {
         | 
| 471 | 
            +
                        let listContainersSegmentResponse;
         | 
| 472 | 
            +
                        if (!!marker || marker === undefined) {
         | 
| 473 | 
            +
                            do {
         | 
| 474 | 
            +
                                listContainersSegmentResponse = yield __await(this.listContainersSegment(marker, options));
         | 
| 475 | 
            +
                                listContainersSegmentResponse.containerItems =
         | 
| 476 | 
            +
                                    listContainersSegmentResponse.containerItems || [];
         | 
| 477 | 
            +
                                marker = listContainersSegmentResponse.continuationToken;
         | 
| 478 | 
            +
                                yield yield __await(yield __await(listContainersSegmentResponse));
         | 
| 479 | 
            +
                            } while (marker);
         | 
| 480 | 
            +
                        }
         | 
| 481 | 
            +
                    });
         | 
| 478 482 | 
             
                }
         | 
| 479 483 | 
             
                /**
         | 
| 480 484 | 
             
                 * Returns an AsyncIterableIterator for Container Items
         | 
| 481 485 | 
             
                 *
         | 
| 482 486 | 
             
                 * @param options - Options to list containers operation.
         | 
| 483 487 | 
             
                 */
         | 
| 484 | 
            -
                 | 
| 485 | 
            -
                     | 
| 486 | 
            -
             | 
| 487 | 
            -
                         | 
| 488 | 
            -
             | 
| 488 | 
            +
                listItems(options = {}) {
         | 
| 489 | 
            +
                    return __asyncGenerator(this, arguments, function* listItems_1() {
         | 
| 490 | 
            +
                        var _a, e_2, _b, _c;
         | 
| 491 | 
            +
                        let marker;
         | 
| 492 | 
            +
                        try {
         | 
| 493 | 
            +
                            for (var _d = true, _e = __asyncValues(this.listSegments(marker, options)), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
         | 
| 494 | 
            +
                                _c = _f.value;
         | 
| 495 | 
            +
                                _d = false;
         | 
| 496 | 
            +
                                const segment = _c;
         | 
| 497 | 
            +
                                yield __await(yield* __asyncDelegator(__asyncValues(segment.containerItems)));
         | 
| 498 | 
            +
                            }
         | 
| 499 | 
            +
                        }
         | 
| 500 | 
            +
                        catch (e_2_1) { e_2 = { error: e_2_1 }; }
         | 
| 501 | 
            +
                        finally {
         | 
| 502 | 
            +
                            try {
         | 
| 503 | 
            +
                                if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
         | 
| 504 | 
            +
                            }
         | 
| 505 | 
            +
                            finally { if (e_2) throw e_2.error; }
         | 
| 506 | 
            +
                        }
         | 
| 507 | 
            +
                    });
         | 
| 489 508 | 
             
                }
         | 
| 490 509 | 
             
                /**
         | 
| 491 510 | 
             
                 * Returns an async iterable iterator to list all the containers
         | 
| @@ -576,10 +595,7 @@ export class BlobServiceClient extends StorageClient { | |
| 576 595 | 
             
                        include.push("system");
         | 
| 577 596 | 
             
                    }
         | 
| 578 597 | 
             
                    // AsyncIterableIterator to iterate over containers
         | 
| 579 | 
            -
                    const listSegmentOptions = {
         | 
| 580 | 
            -
                        ...options,
         | 
| 581 | 
            -
                        ...(include.length > 0 ? { include } : {}),
         | 
| 582 | 
            -
                    };
         | 
| 598 | 
            +
                    const listSegmentOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include } : {}));
         | 
| 583 599 | 
             
                    const iter = this.listItems(listSegmentOptions);
         | 
| 584 600 | 
             
                    return {
         | 
| 585 601 | 
             
                        /**
         | 
| @@ -598,10 +614,7 @@ export class BlobServiceClient extends StorageClient { | |
| 598 614 | 
             
                         * Return an AsyncIterableIterator that works a page at a time
         | 
| 599 615 | 
             
                         */
         | 
| 600 616 | 
             
                        byPage: (settings = {}) => {
         | 
| 601 | 
            -
                            return this.listSegments(settings.continuationToken, {
         | 
| 602 | 
            -
                                maxPageSize: settings.maxPageSize,
         | 
| 603 | 
            -
                                ...listSegmentOptions,
         | 
| 604 | 
            -
                            });
         | 
| 617 | 
            +
                            return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
         | 
| 605 618 | 
             
                        },
         | 
| 606 619 | 
             
                    };
         | 
| 607 620 | 
             
                }
         | 
| @@ -634,15 +647,7 @@ export class BlobServiceClient extends StorageClient { | |
| 634 647 | 
             
                            signedVersion: response.signedVersion,
         | 
| 635 648 | 
             
                            value: response.value,
         | 
| 636 649 | 
             
                        };
         | 
| 637 | 
            -
                        const res = {
         | 
| 638 | 
            -
                            _response: response._response,
         | 
| 639 | 
            -
                            requestId: response.requestId,
         | 
| 640 | 
            -
                            clientRequestId: response.clientRequestId,
         | 
| 641 | 
            -
                            version: response.version,
         | 
| 642 | 
            -
                            date: response.date,
         | 
| 643 | 
            -
                            errorCode: response.errorCode,
         | 
| 644 | 
            -
                            ...userDelegationKey,
         | 
| 645 | 
            -
                        };
         | 
| 650 | 
            +
                        const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey);
         | 
| 646 651 | 
             
                        return res;
         | 
| 647 652 | 
             
                    });
         | 
| 648 653 | 
             
                }
         | 
| @@ -678,13 +683,9 @@ export class BlobServiceClient extends StorageClient { | |
| 678 683 | 
             
                        const now = new Date();
         | 
| 679 684 | 
             
                        expiresOn = new Date(now.getTime() + 3600 * 1000);
         | 
| 680 685 | 
             
                    }
         | 
| 681 | 
            -
                    const sas = generateAccountSASQueryParameters({
         | 
| 682 | 
            -
                        permissions,
         | 
| 686 | 
            +
                    const sas = generateAccountSASQueryParameters(Object.assign({ permissions,
         | 
| 683 687 | 
             
                        expiresOn,
         | 
| 684 | 
            -
                        resourceTypes,
         | 
| 685 | 
            -
                        services: AccountSASServices.parse("b").toString(),
         | 
| 686 | 
            -
                        ...options,
         | 
| 687 | 
            -
                    }, this.credential).toString();
         | 
| 688 | 
            +
                        resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString();
         | 
| 688 689 | 
             
                    return appendToURLQuery(this.url, sas);
         | 
| 689 690 | 
             
                }
         | 
| 690 691 | 
             
            }
         |