@azure/storage-queue 12.26.0 → 12.27.0-alpha.20250520.6
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/README.md +92 -136
- package/dist/browser/AccountSASPermissions.d.ts +61 -0
- package/dist/browser/AccountSASPermissions.d.ts.map +1 -0
- package/dist/browser/AccountSASPermissions.js.map +1 -0
- package/dist/browser/AccountSASResourceTypes.d.ts +38 -0
- package/dist/browser/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/browser/AccountSASResourceTypes.js.map +1 -0
- package/dist/browser/AccountSASServices.d.ts +40 -0
- package/dist/browser/AccountSASServices.d.ts.map +1 -0
- package/dist/browser/AccountSASServices.js.map +1 -0
- package/dist/browser/AccountSASSignatureValues.d.ts +74 -0
- package/dist/browser/AccountSASSignatureValues.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/AccountSASSignatureValues.js +7 -7
- package/dist/browser/AccountSASSignatureValues.js.map +1 -0
- package/dist/browser/Pipeline.d.ts +136 -0
- package/dist/browser/Pipeline.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/Pipeline.js +11 -11
- package/dist/browser/Pipeline.js.map +1 -0
- package/dist/browser/QueueClient.d.ts +667 -0
- package/dist/browser/QueueClient.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/QueueClient.js +78 -22
- package/dist/browser/QueueClient.js.map +1 -0
- package/dist/browser/QueueSASPermissions.d.ts +42 -0
- package/dist/browser/QueueSASPermissions.d.ts.map +1 -0
- package/dist/browser/QueueSASPermissions.js.map +1 -0
- package/dist/browser/QueueSASSignatureValues.d.ts +70 -0
- package/dist/browser/QueueSASSignatureValues.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/QueueSASSignatureValues.js +5 -5
- package/dist/browser/QueueSASSignatureValues.js.map +1 -0
- package/dist/browser/QueueServiceClient.d.ts +411 -0
- package/dist/browser/QueueServiceClient.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/QueueServiceClient.js +88 -50
- package/dist/browser/QueueServiceClient.js.map +1 -0
- package/dist/browser/SASQueryParameters.d.ts +110 -0
- package/dist/browser/SASQueryParameters.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/SASQueryParameters.js +2 -2
- package/dist/browser/SASQueryParameters.js.map +1 -0
- package/dist/browser/SasIPRange.d.ts +24 -0
- package/dist/browser/SasIPRange.d.ts.map +1 -0
- package/dist/browser/SasIPRange.js.map +1 -0
- package/dist/browser/StorageClient.d.ts +60 -0
- package/dist/browser/StorageClient.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/StorageClient.js +3 -3
- package/dist/browser/StorageClient.js.map +1 -0
- package/dist/browser/StorageContextClient.d.ts +9 -0
- package/dist/browser/StorageContextClient.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/StorageContextClient.js +1 -1
- package/dist/browser/StorageContextClient.js.map +1 -0
- package/dist/browser/generated/src/index.d.ts +4 -0
- package/dist/browser/generated/src/index.d.ts.map +1 -0
- package/dist/browser/generated/src/index.js +11 -0
- package/dist/browser/generated/src/index.js.map +1 -0
- package/dist/browser/generated/src/models/index.d.ts +830 -0
- package/dist/browser/generated/src/models/index.d.ts.map +1 -0
- package/dist/browser/generated/src/models/index.js.map +1 -0
- package/dist/browser/generated/src/models/mappers.d.ts +50 -0
- package/dist/browser/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/browser/generated/src/models/mappers.js.map +1 -0
- package/dist/browser/generated/src/models/parameters.d.ts +30 -0
- package/dist/browser/generated/src/models/parameters.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/models/parameters.js +2 -2
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/models/parameters.js.map +1 -1
- package/dist/browser/generated/src/operations/index.d.ts +5 -0
- package/dist/browser/generated/src/operations/index.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src/generated/src → dist/browser/generated/src/operations}/index.js +4 -3
- package/dist/browser/generated/src/operations/index.js.map +1 -0
- package/dist/browser/generated/src/operations/messageId.d.ts +35 -0
- package/dist/browser/generated/src/operations/messageId.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operations/messageId.js +2 -2
- package/dist/browser/generated/src/operations/messageId.js.map +1 -0
- package/dist/browser/generated/src/operations/messages.d.ts +38 -0
- package/dist/browser/generated/src/operations/messages.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operations/messages.js +2 -2
- package/dist/browser/generated/src/operations/messages.js.map +1 -0
- package/dist/browser/generated/src/operations/queue.d.ts +46 -0
- package/dist/browser/generated/src/operations/queue.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operations/queue.js +2 -2
- package/dist/browser/generated/src/operations/queue.js.map +1 -0
- package/dist/browser/generated/src/operations/service.d.ts +38 -0
- package/dist/browser/generated/src/operations/service.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operations/service.js +2 -2
- package/dist/browser/generated/src/operations/service.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/index.d.ts +5 -0
- package/dist/browser/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src/generated/src/operations → dist/browser/generated/src/operationsInterfaces}/index.js +4 -4
- package/dist/browser/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/messageId.d.ts +27 -0
- package/dist/browser/generated/src/operationsInterfaces/messageId.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/messageId.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/messages.d.ts +30 -0
- package/dist/browser/generated/src/operationsInterfaces/messages.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/messages.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/queue.d.ts +38 -0
- package/dist/browser/generated/src/operationsInterfaces/queue.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/queue.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts +30 -0
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/browser/generated/src/storageClient.d.ts +19 -0
- package/dist/browser/generated/src/storageClient.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/generated/src/storageClient.js +3 -3
- package/dist/browser/generated/src/storageClient.js.map +1 -0
- package/dist/browser/generatedModels.d.ts +30 -0
- package/dist/browser/generatedModels.d.ts.map +1 -0
- package/dist/browser/generatedModels.js.map +1 -0
- package/dist/browser/index-browser.d.mts.map +1 -0
- package/dist/browser/index-browser.mjs.map +1 -0
- package/dist/browser/index.d.ts +20 -0
- package/dist/browser/index.js +18 -0
- package/dist/browser/log.d.ts +5 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/dist/browser/log.js.map +1 -0
- package/dist/browser/models.d.ts +23 -0
- package/dist/browser/models.d.ts.map +1 -0
- package/dist/browser/models.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/utils/constants.d.ts +47 -0
- package/dist/browser/utils/constants.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/utils/constants.js +2 -2
- package/dist/browser/utils/constants.js.map +1 -0
- package/dist/browser/utils/tracing.d.ts +6 -0
- package/dist/browser/utils/tracing.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/utils/tracing.js +1 -1
- package/dist/browser/utils/tracing.js.map +1 -0
- package/dist/browser/utils/utils.common.d.ts +198 -0
- package/dist/browser/utils/utils.common.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/browser}/utils/utils.common.js +1 -1
- package/dist/browser/utils/utils.common.js.map +1 -0
- package/dist/commonjs/AccountSASPermissions.d.ts +61 -0
- package/dist/commonjs/AccountSASPermissions.d.ts.map +1 -0
- package/dist/commonjs/AccountSASPermissions.js +132 -0
- package/dist/commonjs/AccountSASPermissions.js.map +1 -0
- package/dist/commonjs/AccountSASResourceTypes.d.ts +38 -0
- package/dist/commonjs/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/commonjs/AccountSASResourceTypes.js +76 -0
- package/dist/commonjs/AccountSASResourceTypes.js.map +1 -0
- package/dist/commonjs/AccountSASServices.d.ts +40 -0
- package/dist/commonjs/AccountSASServices.d.ts.map +1 -0
- package/dist/commonjs/AccountSASServices.js +84 -0
- package/dist/commonjs/AccountSASServices.js.map +1 -0
- package/dist/commonjs/AccountSASSignatureValues.d.ts +74 -0
- package/dist/commonjs/AccountSASSignatureValues.d.ts.map +1 -0
- package/dist/commonjs/AccountSASSignatureValues.js +76 -0
- package/dist/commonjs/AccountSASSignatureValues.js.map +1 -0
- package/dist/commonjs/Pipeline.d.ts +136 -0
- package/dist/commonjs/Pipeline.d.ts.map +1 -0
- package/dist/commonjs/Pipeline.js +267 -0
- package/dist/commonjs/Pipeline.js.map +1 -0
- package/dist/commonjs/QueueClient.d.ts +667 -0
- package/dist/commonjs/QueueClient.d.ts.map +1 -0
- package/dist/commonjs/QueueClient.js +626 -0
- package/dist/commonjs/QueueClient.js.map +1 -0
- package/dist/commonjs/QueueSASPermissions.d.ts +42 -0
- package/dist/commonjs/QueueSASPermissions.d.ts.map +1 -0
- package/dist/commonjs/QueueSASPermissions.js +86 -0
- package/dist/commonjs/QueueSASPermissions.js.map +1 -0
- package/dist/commonjs/QueueSASSignatureValues.d.ts +70 -0
- package/dist/commonjs/QueueSASSignatureValues.d.ts.map +1 -0
- package/dist/commonjs/QueueSASSignatureValues.js +69 -0
- package/dist/commonjs/QueueSASSignatureValues.js.map +1 -0
- package/dist/commonjs/QueueServiceClient.d.ts +411 -0
- package/dist/commonjs/QueueServiceClient.d.ts.map +1 -0
- package/dist/commonjs/QueueServiceClient.js +443 -0
- package/dist/commonjs/QueueServiceClient.js.map +1 -0
- package/dist/commonjs/SASQueryParameters.d.ts +110 -0
- package/dist/commonjs/SASQueryParameters.d.ts.map +1 -0
- package/dist/commonjs/SASQueryParameters.js +139 -0
- package/dist/commonjs/SASQueryParameters.js.map +1 -0
- package/dist/commonjs/SasIPRange.d.ts +24 -0
- package/dist/commonjs/SasIPRange.d.ts.map +1 -0
- package/dist/commonjs/SasIPRange.js +16 -0
- package/dist/commonjs/SasIPRange.js.map +1 -0
- package/dist/commonjs/StorageClient.d.ts +60 -0
- package/dist/commonjs/StorageClient.d.ts.map +1 -0
- package/dist/commonjs/StorageClient.js +46 -0
- package/dist/commonjs/StorageClient.js.map +1 -0
- package/dist/commonjs/StorageContextClient.d.ts +9 -0
- package/dist/commonjs/StorageContextClient.d.ts.map +1 -0
- package/dist/commonjs/StorageContextClient.js +22 -0
- package/dist/commonjs/StorageContextClient.js.map +1 -0
- package/dist/commonjs/generated/src/index.d.ts +4 -0
- package/dist/commonjs/generated/src/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/index.js +16 -0
- package/dist/commonjs/generated/src/index.js.map +1 -0
- package/dist/commonjs/generated/src/models/index.d.ts +830 -0
- package/dist/commonjs/generated/src/models/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/index.js +129 -0
- package/dist/commonjs/generated/src/models/index.js.map +1 -0
- package/dist/commonjs/generated/src/models/mappers.d.ts +50 -0
- package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/mappers.js +1721 -0
- package/dist/commonjs/generated/src/models/mappers.js.map +1 -0
- package/dist/commonjs/generated/src/models/parameters.d.ts +30 -0
- package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/parameters.js +328 -0
- package/dist/commonjs/generated/src/models/parameters.js.map +1 -0
- package/dist/commonjs/generated/src/operations/index.d.ts +5 -0
- package/dist/commonjs/generated/src/operations/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/index.js +15 -0
- package/dist/commonjs/generated/src/operations/index.js.map +1 -0
- package/dist/commonjs/generated/src/operations/messageId.d.ts +35 -0
- package/dist/commonjs/generated/src/operations/messageId.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/messageId.js +106 -0
- package/dist/commonjs/generated/src/operations/messageId.js.map +1 -0
- package/dist/commonjs/generated/src/operations/messages.d.ts +38 -0
- package/dist/commonjs/generated/src/operations/messages.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/messages.js +199 -0
- package/dist/commonjs/generated/src/operations/messages.js.map +1 -0
- package/dist/commonjs/generated/src/operations/queue.d.ts +46 -0
- package/dist/commonjs/generated/src/operations/queue.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/queue.js +226 -0
- package/dist/commonjs/generated/src/operations/queue.js.map +1 -0
- package/dist/commonjs/generated/src/operations/service.d.ts +38 -0
- package/dist/commonjs/generated/src/operations/service.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/service.js +175 -0
- package/dist/commonjs/generated/src/operations/service.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts +5 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.js +15 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messageId.d.ts +27 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messageId.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messageId.js +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messageId.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messages.d.ts +30 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messages.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messages.js +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/messages.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/queue.d.ts +38 -0
- package/dist/commonjs/generated/src/operationsInterfaces/queue.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src/operationsInterfaces/appendBlob.js → dist/commonjs/generated/src/operationsInterfaces/queue.js} +3 -2
- package/dist/commonjs/generated/src/operationsInterfaces/queue.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts +30 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.js +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/commonjs/generated/src/storageClient.d.ts +19 -0
- package/dist/commonjs/generated/src/storageClient.d.ts.map +1 -0
- package/dist/commonjs/generated/src/storageClient.js +52 -0
- package/dist/commonjs/generated/src/storageClient.js.map +1 -0
- package/dist/commonjs/generatedModels.d.ts +30 -0
- package/dist/commonjs/generatedModels.d.ts.map +1 -0
- package/dist/commonjs/generatedModels.js +5 -0
- package/dist/commonjs/generatedModels.js.map +1 -0
- package/dist/commonjs/index.d.ts +28 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +49 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/log.d.ts +5 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +11 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/models.d.ts +23 -0
- package/dist/commonjs/models.d.ts.map +1 -0
- package/dist/commonjs/models.js +23 -0
- package/dist/commonjs/models.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/utils/constants.d.ts +47 -0
- package/dist/commonjs/utils/constants.d.ts.map +1 -0
- package/dist/commonjs/utils/constants.js +122 -0
- package/dist/commonjs/utils/constants.js.map +1 -0
- package/dist/commonjs/utils/tracing.d.ts +6 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -0
- package/dist/commonjs/utils/tracing.js +17 -0
- package/dist/commonjs/utils/tracing.js.map +1 -0
- package/dist/commonjs/utils/utils.common.d.ts +198 -0
- package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.common.js +381 -0
- package/dist/commonjs/utils/utils.common.js.map +1 -0
- package/dist/esm/AccountSASPermissions.d.ts +61 -0
- package/dist/esm/AccountSASPermissions.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/sas → dist/esm}/AccountSASPermissions.js +4 -103
- package/dist/esm/AccountSASPermissions.js.map +1 -0
- package/dist/esm/AccountSASResourceTypes.d.ts +38 -0
- package/dist/esm/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/esm/AccountSASResourceTypes.js.map +1 -0
- package/dist/esm/AccountSASServices.d.ts +40 -0
- package/dist/esm/AccountSASServices.d.ts.map +1 -0
- package/dist/esm/AccountSASServices.js.map +1 -0
- package/dist/esm/AccountSASSignatureValues.d.ts +74 -0
- package/dist/esm/AccountSASSignatureValues.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/sas → dist/esm}/AccountSASSignatureValues.js +12 -40
- package/dist/esm/AccountSASSignatureValues.js.map +1 -0
- package/dist/esm/Pipeline.d.ts +136 -0
- package/dist/esm/Pipeline.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/Pipeline.js +13 -13
- package/dist/esm/Pipeline.js.map +1 -0
- package/dist/esm/QueueClient.d.ts +667 -0
- package/dist/esm/QueueClient.d.ts.map +1 -0
- package/dist/esm/QueueClient.js +622 -0
- package/dist/esm/QueueClient.js.map +1 -0
- package/dist/esm/QueueSASPermissions.d.ts +42 -0
- package/dist/esm/QueueSASPermissions.d.ts.map +1 -0
- package/dist/esm/QueueSASPermissions.js +82 -0
- package/dist/esm/QueueSASPermissions.js.map +1 -0
- package/dist/esm/QueueSASSignatureValues.d.ts +70 -0
- package/dist/esm/QueueSASSignatureValues.d.ts.map +1 -0
- package/dist/esm/QueueSASSignatureValues.js +65 -0
- package/dist/esm/QueueSASSignatureValues.js.map +1 -0
- package/dist/esm/QueueServiceClient.d.ts +411 -0
- package/dist/esm/QueueServiceClient.d.ts.map +1 -0
- package/dist/esm/QueueServiceClient.js +439 -0
- package/dist/esm/QueueServiceClient.js.map +1 -0
- package/dist/esm/SASQueryParameters.d.ts +110 -0
- package/dist/esm/SASQueryParameters.d.ts.map +1 -0
- package/dist/esm/SASQueryParameters.js +135 -0
- package/dist/esm/SASQueryParameters.js.map +1 -0
- package/dist/esm/SasIPRange.d.ts +24 -0
- package/dist/esm/SasIPRange.d.ts.map +1 -0
- package/dist/esm/SasIPRange.js.map +1 -0
- package/dist/esm/StorageClient.d.ts +60 -0
- package/dist/esm/StorageClient.d.ts.map +1 -0
- package/dist/esm/StorageClient.js +41 -0
- package/dist/esm/StorageClient.js.map +1 -0
- package/dist/esm/StorageContextClient.d.ts +9 -0
- package/dist/esm/StorageContextClient.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/StorageContextClient.js +4 -3
- package/dist/esm/StorageContextClient.js.map +1 -0
- package/dist/esm/generated/src/index.d.ts +4 -0
- package/dist/esm/generated/src/index.d.ts.map +1 -0
- package/dist/esm/generated/src/index.js +11 -0
- package/dist/esm/generated/src/index.js.map +1 -0
- package/dist/esm/generated/src/models/index.d.ts +830 -0
- package/dist/esm/generated/src/models/index.d.ts.map +1 -0
- package/dist/esm/generated/src/models/index.js +126 -0
- package/dist/esm/generated/src/models/index.js.map +1 -0
- package/dist/esm/generated/src/models/mappers.d.ts +50 -0
- package/dist/esm/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/esm/generated/src/models/mappers.js +1718 -0
- package/dist/esm/generated/src/models/mappers.js.map +1 -0
- package/dist/esm/generated/src/models/parameters.d.ts +30 -0
- package/dist/esm/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/esm/generated/src/models/parameters.js +325 -0
- package/dist/esm/generated/src/models/parameters.js.map +1 -0
- package/dist/esm/generated/src/operations/index.d.ts +5 -0
- package/dist/esm/generated/src/operations/index.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src → dist/esm/generated/src/operations}/index.js +4 -3
- package/dist/esm/generated/src/operations/index.js.map +1 -0
- package/dist/esm/generated/src/operations/messageId.d.ts +35 -0
- package/dist/esm/generated/src/operations/messageId.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/messageId.js +101 -0
- package/dist/esm/generated/src/operations/messageId.js.map +1 -0
- package/dist/esm/generated/src/operations/messages.d.ts +38 -0
- package/dist/esm/generated/src/operations/messages.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/messages.js +194 -0
- package/dist/esm/generated/src/operations/messages.js.map +1 -0
- package/dist/esm/generated/src/operations/queue.d.ts +46 -0
- package/dist/esm/generated/src/operations/queue.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/queue.js +221 -0
- package/dist/esm/generated/src/operations/queue.js.map +1 -0
- package/dist/esm/generated/src/operations/service.d.ts +38 -0
- package/dist/esm/generated/src/operations/service.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/service.js +170 -0
- package/dist/esm/generated/src/operations/service.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/index.d.ts +5 -0
- package/dist/esm/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/{dist-esm/storage-queue/src → dist/esm}/generated/src/operationsInterfaces/index.js +4 -4
- package/dist/esm/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/messageId.d.ts +27 -0
- package/dist/esm/generated/src/operationsInterfaces/messageId.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src/operationsInterfaces/container.js → dist/esm/generated/src/operationsInterfaces/messageId.js} +1 -1
- package/dist/esm/generated/src/operationsInterfaces/messageId.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/messages.d.ts +30 -0
- package/dist/esm/generated/src/operationsInterfaces/messages.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src/operationsInterfaces/pageBlob.js → dist/esm/generated/src/operationsInterfaces/messages.js} +1 -1
- package/dist/esm/generated/src/operationsInterfaces/messages.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/queue.d.ts +38 -0
- package/dist/esm/generated/src/operationsInterfaces/queue.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src/operationsInterfaces/blob.js → dist/esm/generated/src/operationsInterfaces/queue.js} +1 -1
- package/dist/esm/generated/src/operationsInterfaces/queue.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts +30 -0
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/esm/generated/src/storageClient.d.ts +19 -0
- package/dist/esm/generated/src/storageClient.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/generated/src/storageClient.js +9 -11
- package/dist/esm/generated/src/storageClient.js.map +1 -0
- package/dist/esm/generatedModels.d.ts +30 -0
- package/dist/esm/generatedModels.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/BatchResponse.js → dist/esm/generatedModels.js} +1 -1
- package/dist/esm/generatedModels.js.map +1 -0
- package/dist/esm/index.d.ts +28 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +27 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/log.d.ts +5 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/log.js +1 -1
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/models.d.ts +23 -0
- package/dist/esm/models.d.ts.map +1 -0
- package/dist/esm/models.js +19 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/utils/constants.d.ts +47 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +119 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/tracing.d.ts +6 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/utils/tracing.js +2 -2
- package/dist/esm/utils/tracing.js.map +1 -0
- package/dist/esm/utils/utils.common.d.ts +198 -0
- package/dist/esm/utils/utils.common.d.ts.map +1 -0
- package/dist/esm/utils/utils.common.js +363 -0
- package/dist/esm/utils/utils.common.js.map +1 -0
- package/dist/react-native/AccountSASPermissions.d.ts +61 -0
- package/dist/react-native/AccountSASPermissions.d.ts.map +1 -0
- package/dist/react-native/AccountSASPermissions.js +128 -0
- package/dist/react-native/AccountSASPermissions.js.map +1 -0
- package/dist/react-native/AccountSASResourceTypes.d.ts +38 -0
- package/dist/react-native/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/react-native/AccountSASResourceTypes.js +72 -0
- package/dist/react-native/AccountSASResourceTypes.js.map +1 -0
- package/dist/react-native/AccountSASServices.d.ts +40 -0
- package/dist/react-native/AccountSASServices.d.ts.map +1 -0
- package/dist/react-native/AccountSASServices.js +80 -0
- package/dist/react-native/AccountSASServices.js.map +1 -0
- package/dist/react-native/AccountSASSignatureValues.d.ts +74 -0
- package/dist/react-native/AccountSASSignatureValues.d.ts.map +1 -0
- package/dist/react-native/AccountSASSignatureValues.js +72 -0
- package/dist/react-native/AccountSASSignatureValues.js.map +1 -0
- package/dist/react-native/Pipeline.d.ts +136 -0
- package/dist/react-native/Pipeline.d.ts.map +1 -0
- package/dist/react-native/Pipeline.js +261 -0
- package/dist/react-native/Pipeline.js.map +1 -0
- package/dist/react-native/QueueClient.d.ts +667 -0
- package/dist/react-native/QueueClient.d.ts.map +1 -0
- package/dist/react-native/QueueClient.js +622 -0
- package/dist/react-native/QueueClient.js.map +1 -0
- package/dist/react-native/QueueSASPermissions.d.ts +42 -0
- package/dist/react-native/QueueSASPermissions.d.ts.map +1 -0
- package/dist/react-native/QueueSASPermissions.js +82 -0
- package/dist/react-native/QueueSASPermissions.js.map +1 -0
- package/dist/react-native/QueueSASSignatureValues.d.ts +70 -0
- package/dist/react-native/QueueSASSignatureValues.d.ts.map +1 -0
- package/dist/react-native/QueueSASSignatureValues.js +65 -0
- package/dist/react-native/QueueSASSignatureValues.js.map +1 -0
- package/dist/react-native/QueueServiceClient.d.ts +411 -0
- package/dist/react-native/QueueServiceClient.d.ts.map +1 -0
- package/dist/react-native/QueueServiceClient.js +439 -0
- package/dist/react-native/QueueServiceClient.js.map +1 -0
- package/dist/react-native/SASQueryParameters.d.ts +110 -0
- package/dist/react-native/SASQueryParameters.d.ts.map +1 -0
- package/dist/react-native/SASQueryParameters.js +135 -0
- package/dist/react-native/SASQueryParameters.js.map +1 -0
- package/dist/react-native/SasIPRange.d.ts +24 -0
- package/dist/react-native/SasIPRange.d.ts.map +1 -0
- package/dist/react-native/SasIPRange.js +13 -0
- package/dist/react-native/SasIPRange.js.map +1 -0
- package/dist/react-native/StorageClient.d.ts +60 -0
- package/dist/react-native/StorageClient.d.ts.map +1 -0
- package/dist/react-native/StorageClient.js +41 -0
- package/dist/react-native/StorageClient.js.map +1 -0
- package/dist/react-native/StorageContextClient.d.ts +9 -0
- package/dist/react-native/StorageContextClient.d.ts.map +1 -0
- package/dist/react-native/StorageContextClient.js +18 -0
- package/dist/react-native/StorageContextClient.js.map +1 -0
- package/dist/react-native/generated/src/index.d.ts +4 -0
- package/dist/react-native/generated/src/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/index.js +11 -0
- package/dist/react-native/generated/src/index.js.map +1 -0
- package/dist/react-native/generated/src/models/index.d.ts +830 -0
- package/dist/react-native/generated/src/models/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/index.js +126 -0
- package/dist/react-native/generated/src/models/index.js.map +1 -0
- package/dist/react-native/generated/src/models/mappers.d.ts +50 -0
- package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/mappers.js +1718 -0
- package/dist/react-native/generated/src/models/mappers.js.map +1 -0
- package/dist/react-native/generated/src/models/parameters.d.ts +30 -0
- package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/parameters.js +325 -0
- package/dist/react-native/generated/src/models/parameters.js.map +1 -0
- package/dist/react-native/generated/src/operations/index.d.ts +5 -0
- package/dist/react-native/generated/src/operations/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/index.js +12 -0
- package/dist/react-native/generated/src/operations/index.js.map +1 -0
- package/dist/react-native/generated/src/operations/messageId.d.ts +35 -0
- package/dist/react-native/generated/src/operations/messageId.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/messageId.js +101 -0
- package/dist/react-native/generated/src/operations/messageId.js.map +1 -0
- package/dist/react-native/generated/src/operations/messages.d.ts +38 -0
- package/dist/react-native/generated/src/operations/messages.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/messages.js +194 -0
- package/dist/react-native/generated/src/operations/messages.js.map +1 -0
- package/dist/react-native/generated/src/operations/queue.d.ts +46 -0
- package/dist/react-native/generated/src/operations/queue.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/queue.js +221 -0
- package/dist/react-native/generated/src/operations/queue.js.map +1 -0
- package/dist/react-native/generated/src/operations/service.d.ts +38 -0
- package/dist/react-native/generated/src/operations/service.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/service.js +170 -0
- package/dist/react-native/generated/src/operations/service.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.d.ts +5 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.js +12 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/messageId.d.ts +27 -0
- package/dist/react-native/generated/src/operationsInterfaces/messageId.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/generated/src/operationsInterfaces/blockBlob.js → dist/react-native/generated/src/operationsInterfaces/messageId.js} +1 -1
- package/dist/react-native/generated/src/operationsInterfaces/messageId.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/messages.d.ts +30 -0
- package/dist/react-native/generated/src/operationsInterfaces/messages.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/messages.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/messages.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/queue.d.ts +38 -0
- package/dist/react-native/generated/src/operationsInterfaces/queue.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/queue.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/queue.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts +30 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/react-native/generated/src/storageClient.d.ts +19 -0
- package/dist/react-native/generated/src/storageClient.d.ts.map +1 -0
- package/dist/react-native/generated/src/storageClient.js +47 -0
- package/dist/react-native/generated/src/storageClient.js.map +1 -0
- package/dist/react-native/generatedModels.d.ts +30 -0
- package/dist/react-native/generatedModels.d.ts.map +1 -0
- package/dist/react-native/generatedModels.js +4 -0
- package/dist/react-native/generatedModels.js.map +1 -0
- package/dist/react-native/index.d.ts +28 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +27 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/log.d.ts +5 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +8 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/models.d.ts +23 -0
- package/dist/react-native/models.d.ts.map +1 -0
- package/dist/react-native/models.js +19 -0
- package/dist/react-native/models.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/utils/constants.d.ts +47 -0
- package/dist/react-native/utils/constants.d.ts.map +1 -0
- package/dist/react-native/utils/constants.js +119 -0
- package/dist/react-native/utils/constants.js.map +1 -0
- package/dist/react-native/utils/tracing.d.ts +6 -0
- package/dist/react-native/utils/tracing.d.ts.map +1 -0
- package/dist/react-native/utils/tracing.js +14 -0
- package/dist/react-native/utils/tracing.js.map +1 -0
- package/dist/react-native/utils/utils.common.d.ts +198 -0
- package/dist/react-native/utils/utils.common.d.ts.map +1 -0
- package/dist/react-native/utils/utils.common.js +363 -0
- package/dist/react-native/utils/utils.common.js.map +1 -0
- package/package.json +71 -69
- package/dist/index.js +0 -6257
- package/dist/index.js.map +0 -1
- package/dist-esm/storage-blob/src/BatchResponse.js.map +0 -1
- package/dist-esm/storage-blob/src/BatchResponseParser.js +0 -137
- package/dist-esm/storage-blob/src/BatchResponseParser.js.map +0 -1
- package/dist-esm/storage-blob/src/BatchUtils.js +0 -15
- package/dist-esm/storage-blob/src/BatchUtils.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobBatch.js +0 -267
- package/dist-esm/storage-blob/src/BlobBatch.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobBatchClient.js +0 -140
- package/dist-esm/storage-blob/src/BlobBatchClient.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobDownloadResponse.js +0 -463
- package/dist-esm/storage-blob/src/BlobDownloadResponse.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobLeaseClient.js +0 -192
- package/dist-esm/storage-blob/src/BlobLeaseClient.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobQueryResponse.js +0 -367
- package/dist-esm/storage-blob/src/BlobQueryResponse.js.map +0 -1
- package/dist-esm/storage-blob/src/BlobServiceClient.js +0 -716
- package/dist-esm/storage-blob/src/BlobServiceClient.js.map +0 -1
- package/dist-esm/storage-blob/src/Clients.js +0 -2594
- package/dist-esm/storage-blob/src/Clients.js.map +0 -1
- package/dist-esm/storage-blob/src/ContainerClient.js +0 -1209
- package/dist-esm/storage-blob/src/ContainerClient.js.map +0 -1
- package/dist-esm/storage-blob/src/PageBlobRangeResponse.js +0 -24
- package/dist-esm/storage-blob/src/PageBlobRangeResponse.js.map +0 -1
- package/dist-esm/storage-blob/src/Pipeline.js.map +0 -1
- package/dist-esm/storage-blob/src/Range.js +0 -21
- package/dist-esm/storage-blob/src/Range.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js +0 -19
- package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageClient.js +0 -29
- package/dist-esm/storage-blob/src/StorageClient.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageContextClient.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js +0 -26
- package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/AnonymousCredential.js +0 -22
- package/dist-esm/storage-blob/src/credentials/AnonymousCredential.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/Credential.js +0 -18
- package/dist-esm/storage-blob/src/credentials/Credential.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.browser.js +0 -5
- package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.js +0 -40
- package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.browser.js +0 -5
- package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.js +0 -31
- package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/index.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/models/index.js +0 -258
- package/dist-esm/storage-blob/src/generated/src/models/index.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/models/mappers.js +0 -8225
- package/dist-esm/storage-blob/src/generated/src/models/mappers.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/models/parameters.js +0 -1610
- package/dist-esm/storage-blob/src/generated/src/models/parameters.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/appendBlob.js +0 -221
- package/dist-esm/storage-blob/src/generated/src/operations/appendBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/blob.js +0 -1020
- package/dist-esm/storage-blob/src/generated/src/operations/blob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/blockBlob.js +0 -365
- package/dist-esm/storage-blob/src/generated/src/operations/blockBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/container.js +0 -713
- package/dist-esm/storage-blob/src/generated/src/operations/container.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/index.js +0 -14
- package/dist-esm/storage-blob/src/generated/src/operations/index.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/pageBlob.js +0 -456
- package/dist-esm/storage-blob/src/generated/src/operations/pageBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operations/service.js +0 -323
- package/dist-esm/storage-blob/src/generated/src/operations/service.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/appendBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blockBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/container.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/index.js +0 -14
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/index.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/pageBlob.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/service.js.map +0 -1
- package/dist-esm/storage-blob/src/generated/src/storageClient.js.map +0 -1
- package/dist-esm/storage-blob/src/generatedModels.js +0 -8
- package/dist-esm/storage-blob/src/generatedModels.js.map +0 -1
- package/dist-esm/storage-blob/src/index.js +0 -33
- package/dist-esm/storage-blob/src/index.js.map +0 -1
- package/dist-esm/storage-blob/src/log.js.map +0 -1
- package/dist-esm/storage-blob/src/models.js +0 -115
- package/dist-esm/storage-blob/src/models.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js +0 -20
- package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/CredentialPolicy.js +0 -29
- package/dist-esm/storage-blob/src/policies/CredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/RequestPolicy.js +0 -40
- package/dist-esm/storage-blob/src/policies/RequestPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js +0 -47
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js +0 -31
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.browser.js +0 -18
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.js +0 -27
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js +0 -229
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js +0 -180
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js +0 -141
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js +0 -18
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js +0 -132
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js +0 -130
- package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/AccountSASPermissions.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/AccountSASResourceTypes.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/AccountSASServices.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/AccountSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/BlobSASPermissions.js +0 -195
- package/dist-esm/storage-blob/src/sas/BlobSASPermissions.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/BlobSASSignatureValues.js +0 -576
- package/dist-esm/storage-blob/src/sas/BlobSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/ContainerSASPermissions.js +0 -221
- package/dist-esm/storage-blob/src/sas/ContainerSASPermissions.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/SASQueryParameters.js +0 -234
- package/dist-esm/storage-blob/src/sas/SASQueryParameters.js.map +0 -1
- package/dist-esm/storage-blob/src/sas/SasIPRange.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/Batch.js +0 -122
- package/dist-esm/storage-blob/src/utils/Batch.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js +0 -111
- package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/Mutex.js +0 -65
- package/dist-esm/storage-blob/src/utils/Mutex.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js +0 -119
- package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/SharedKeyComparator.js +0 -73
- package/dist-esm/storage-blob/src/utils/SharedKeyComparator.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/cache.js +0 -11
- package/dist-esm/storage-blob/src/utils/cache.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/constants.js +0 -226
- package/dist-esm/storage-blob/src/utils/constants.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/tracing.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/utils.common.js +0 -756
- package/dist-esm/storage-blob/src/utils/utils.common.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/utils.node.js +0 -132
- package/dist-esm/storage-blob/src/utils/utils.node.js.map +0 -1
- package/dist-esm/storage-queue/src/AccountSASPermissions.js.map +0 -1
- package/dist-esm/storage-queue/src/AccountSASResourceTypes.js.map +0 -1
- package/dist-esm/storage-queue/src/AccountSASServices.js.map +0 -1
- package/dist-esm/storage-queue/src/AccountSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-queue/src/Pipeline.js.map +0 -1
- package/dist-esm/storage-queue/src/QueueClient.js.map +0 -1
- package/dist-esm/storage-queue/src/QueueSASPermissions.js.map +0 -1
- package/dist-esm/storage-queue/src/QueueSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-queue/src/QueueServiceClient.js.map +0 -1
- package/dist-esm/storage-queue/src/SASQueryParameters.js.map +0 -1
- package/dist-esm/storage-queue/src/SasIPRange.js.map +0 -1
- package/dist-esm/storage-queue/src/StorageClient.js.map +0 -1
- package/dist-esm/storage-queue/src/StorageContextClient.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/index.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/models/index.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/models/mappers.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operations/index.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operations/messageId.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operations/messages.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operations/queue.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operations/service.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operationsInterfaces/index.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operationsInterfaces/messageId.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operationsInterfaces/messages.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operationsInterfaces/queue.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/operationsInterfaces/service.js.map +0 -1
- package/dist-esm/storage-queue/src/generated/src/storageClient.js.map +0 -1
- package/dist-esm/storage-queue/src/generatedModels.js.map +0 -1
- package/dist-esm/storage-queue/src/index.browser.js +0 -18
- package/dist-esm/storage-queue/src/index.browser.js.map +0 -1
- package/dist-esm/storage-queue/src/index.js +0 -27
- package/dist-esm/storage-queue/src/index.js.map +0 -1
- package/dist-esm/storage-queue/src/log.js.map +0 -1
- package/dist-esm/storage-queue/src/models.js.map +0 -1
- package/dist-esm/storage-queue/src/utils/constants.js.map +0 -1
- package/dist-esm/storage-queue/src/utils/tracing.js.map +0 -1
- package/dist-esm/storage-queue/src/utils/utils.common.js.map +0 -1
- package/types/latest/storage-queue.d.ts +0 -2886
- /package/{dist-esm/storage-queue/src → dist/browser}/AccountSASPermissions.js +0 -0
- /package/{dist-esm/storage-blob/src/sas → dist/browser}/AccountSASResourceTypes.js +0 -0
- /package/{dist-esm/storage-blob/src/sas → dist/browser}/AccountSASServices.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/QueueSASPermissions.js +0 -0
- /package/{dist-esm/storage-blob/src/sas → dist/browser}/SasIPRange.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generated/src/models/index.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generated/src/models/mappers.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operationsInterfaces/messageId.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operationsInterfaces/messages.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generated/src/operationsInterfaces/queue.js +0 -0
- /package/{dist-esm/storage-blob/src → dist/browser}/generated/src/operationsInterfaces/service.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/generatedModels.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/log.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/browser}/models.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/esm}/AccountSASResourceTypes.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/esm}/AccountSASServices.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/esm}/SasIPRange.js +0 -0
- /package/{dist-esm/storage-queue/src → dist/esm}/generated/src/operationsInterfaces/service.js +0 -0
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/AccountSASPermissions.ts","../src/AccountSASResourceTypes.ts","../src/AccountSASServices.ts","../src/SasIPRange.ts","../src/utils/constants.ts","../src/utils/utils.common.ts","../src/SASQueryParameters.ts","../src/AccountSASSignatureValues.ts","../../storage-blob/src/policies/RequestPolicy.ts","../../storage-blob/src/policies/CredentialPolicy.ts","../../storage-blob/src/policies/AnonymousCredentialPolicy.ts","../../storage-blob/src/credentials/Credential.ts","../../storage-blob/src/credentials/AnonymousCredential.ts","../../storage-blob/src/utils/constants.ts","../../storage-blob/src/utils/utils.common.ts","../../storage-blob/src/utils/SharedKeyComparator.ts","../../storage-blob/src/policies/StorageSharedKeyCredentialPolicy.ts","../../storage-blob/src/credentials/StorageSharedKeyCredential.ts","../src/log.ts","../../storage-blob/src/log.ts","../../storage-blob/src/policies/StorageRetryPolicy.ts","../../storage-blob/src/StorageRetryPolicyFactory.ts","../../storage-blob/src/utils/cache.ts","../../storage-blob/src/policies/StorageBrowserPolicyV2.ts","../../storage-blob/src/policies/StorageRetryPolicyV2.ts","../../storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.ts","../../storage-blob/src/policies/StorageBrowserPolicy.ts","../../storage-blob/src/StorageBrowserPolicyFactory.ts","../../storage-blob/src/policies/StorageCorrectContentLengthPolicy.ts","../src/Pipeline.ts","../src/models.ts","../src/generated/src/models/mappers.ts","../src/generated/src/models/parameters.ts","../src/generated/src/operations/service.ts","../src/generated/src/operations/queue.ts","../src/generated/src/operations/messages.ts","../src/generated/src/operations/messageId.ts","../src/generated/src/storageClient.ts","../src/StorageContextClient.ts","../src/StorageClient.ts","../src/utils/tracing.ts","../src/QueueSASPermissions.ts","../src/QueueSASSignatureValues.ts","../src/QueueClient.ts","../src/QueueServiceClient.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant permissions for that operation. Once all the\n * values are set, this should be serialized with toString and set as the permissions field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class AccountSASPermissions {\n /**\n * Parse initializes the AccountSASPermissions fields from a string.\n *\n * @param permissions -\n */\n public static parse(permissions: string): AccountSASPermissions {\n const accountSASPermissions = new AccountSASPermissions();\n\n for (const c of permissions) {\n switch (c) {\n case \"r\":\n accountSASPermissions.read = true;\n break;\n case \"w\":\n accountSASPermissions.write = true;\n break;\n case \"d\":\n accountSASPermissions.delete = true;\n break;\n case \"l\":\n accountSASPermissions.list = true;\n break;\n case \"a\":\n accountSASPermissions.add = true;\n break;\n case \"c\":\n accountSASPermissions.create = true;\n break;\n case \"u\":\n accountSASPermissions.update = true;\n break;\n case \"p\":\n accountSASPermissions.process = true;\n break;\n default:\n throw new RangeError(`Invalid permission character: ${c}`);\n }\n }\n\n return accountSASPermissions;\n }\n\n /**\n * Permission to read resources granted.\n */\n public read: boolean = false;\n\n /**\n * Permission to write resources granted.\n */\n public write: boolean = false;\n\n /**\n * Permission to delete queues and messages granted.\n */\n public delete: boolean = false;\n\n /**\n * Permission to list queues granted.\n */\n public list: boolean = false;\n\n /**\n * Permission to add messages, table entities, and append to blobs granted.\n */\n public add: boolean = false;\n\n /**\n * Permission to create queues, blobs and files granted.\n */\n public create: boolean = false;\n\n /**\n * Permissions to update messages and table entities granted.\n */\n public update: boolean = false;\n\n /**\n * Permission to get and delete messages granted.\n */\n public process: boolean = false;\n\n /**\n * Produces the SAS permissions string for an Azure Storage account.\n * Call this method to set AccountSASSignatureValues Permissions field.\n *\n * Using this method will guarantee the resource types are in\n * an order accepted by the service.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n public toString(): string {\n // The order of the characters should be as specified here to ensure correctness:\n // https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n // Use a string array instead of string concatenating += operator for performance\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.update) {\n permissions.push(\"u\");\n }\n if (this.process) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the resources accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that resource type. Once all the\n * values are set, this should be serialized with toString and set as the resources field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but\n * the order of the resources is particular and this class guarantees correctness.\n */\nexport class AccountSASResourceTypes {\n /**\n * Creates an {@link AccountSASResourceTypes} from the specified resource types string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid resource type.\n *\n * @param resourceTypes -\n */\n public static parse(resourceTypes: string): AccountSASResourceTypes {\n const accountSASResourceTypes = new AccountSASResourceTypes();\n\n for (const c of resourceTypes) {\n switch (c) {\n case \"s\":\n accountSASResourceTypes.service = true;\n break;\n case \"c\":\n accountSASResourceTypes.container = true;\n break;\n case \"o\":\n accountSASResourceTypes.object = true;\n break;\n default:\n throw new RangeError(`Invalid resource type: ${c}`);\n }\n }\n\n return accountSASResourceTypes;\n }\n\n /**\n * Permission to access service level APIs granted.\n */\n public service: boolean = false;\n\n /**\n * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares) granted.\n */\n public container: boolean = false;\n\n /**\n * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files) granted.\n */\n public object: boolean = false;\n\n /**\n * Converts the given resource types to a string.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n public toString(): string {\n const resourceTypes: string[] = [];\n if (this.service) {\n resourceTypes.push(\"s\");\n }\n if (this.container) {\n resourceTypes.push(\"c\");\n }\n if (this.object) {\n resourceTypes.push(\"o\");\n }\n return resourceTypes.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the services accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that service. Once all the\n * values are set, this should be serialized with toString and set as the services field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but\n * the order of the services is particular and this class guarantees correctness.\n */\nexport class AccountSASServices {\n /**\n * Creates an {@link AccountSASServices} from the specified services string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid service.\n *\n * @param services -\n */\n public static parse(services: string): AccountSASServices {\n const accountSASServices = new AccountSASServices();\n\n for (const c of services) {\n switch (c) {\n case \"b\":\n accountSASServices.blob = true;\n break;\n case \"f\":\n accountSASServices.file = true;\n break;\n case \"q\":\n accountSASServices.queue = true;\n break;\n case \"t\":\n accountSASServices.table = true;\n break;\n default:\n throw new RangeError(`Invalid service character: ${c}`);\n }\n }\n\n return accountSASServices;\n }\n\n /**\n * Permission to access blob resources granted.\n */\n public blob: boolean = false;\n\n /**\n * Permission to access file resources granted.\n */\n public file: boolean = false;\n\n /**\n * Permission to access queue resources granted.\n */\n public queue: boolean = false;\n\n /**\n * Permission to access table resources granted.\n */\n public table: boolean = false;\n\n /**\n * Converts the given services to a string.\n *\n */\n public toString(): string {\n const services: string[] = [];\n if (this.blob) {\n services.push(\"b\");\n }\n if (this.table) {\n services.push(\"t\");\n }\n if (this.queue) {\n services.push(\"q\");\n }\n if (this.file) {\n services.push(\"f\");\n }\n return services.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange: SasIPRange): string {\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.26.0\";\nexport const SERVICE_VERSION: string = \"2025-05-05\";\n\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HttpUrlConnection = {\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"content-encoding\",\n CONTENT_LANGUAGE: \"content-language\",\n CONTENT_LENGTH: \"content-length\",\n CONTENT_MD5: \"content-md5\",\n CONTENT_TYPE: \"content-type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;\n AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;\n QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;`;\n\nexport const StorageQueueLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"x-ms-approximate-messages-count\",\n \"x-ms-popreceipt\",\n \"x-ms-time-next-visible\",\n];\n\nexport const StorageQueueLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"messagettl\",\n \"numofmessages\",\n \"peekonly\",\n \"popreceipt\",\n \"visibilitytimeout\",\n];\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { HttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport {\n HeaderConstants,\n URLConstants,\n DevelopmentConnectionString,\n PathStylePorts,\n} from \"./constants\";\nimport type { HttpHeadersLike, WebResourceLike } from \"@azure/core-http-compat\";\n\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @param url - Source URL string\n * @param name - String to be appended to URL\n * @returns An updated URL string\n */\nexport function appendToURLPath(url: string, name: string): string {\n const urlParsed = new URL(url);\n\n let path = urlParsed.pathname;\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.pathname = path;\n\n return urlParsed.toString();\n}\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @param url - Source URL string\n * @param name - Parameter name\n * @param value - Parameter value\n * @returns An updated URL string\n */\nexport function setURLParameter(url: string, name: string, value?: string): string {\n const urlParsed = new URL(url);\n const encodedName = encodeURIComponent(name);\n const encodedValue = value ? encodeURIComponent(value) : undefined;\n // mutating searchParams will change the encoding, so we have to do this ourselves\n const searchString = urlParsed.search === \"\" ? \"?\" : urlParsed.search;\n\n const searchPieces: string[] = [];\n\n for (const pair of searchString.slice(1).split(\"&\")) {\n if (pair) {\n const [key] = pair.split(\"=\", 2);\n if (key !== encodedName) {\n searchPieces.push(pair);\n }\n }\n }\n if (encodedValue) {\n searchPieces.push(`${encodedName}=${encodedValue}`);\n }\n\n urlParsed.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n\n return urlParsed.toString();\n}\n\n/**\n * Get URL parameter by name.\n *\n * @param url - URL string\n * @param name - Parameter name\n * @returns Parameter value(s) for the given parameter name.\n */\nexport function getURLParameter(url: string, name: string): string | string[] | undefined {\n const urlParsed = new URL(url);\n return urlParsed.searchParams.get(name) ?? undefined;\n}\n\n/**\n * Set URL host.\n *\n * @param url - Source URL string\n * @param host - New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url: string, host: string): string {\n const urlParsed = new URL(url);\n urlParsed.hostname = host;\n return urlParsed.toString();\n}\n\n/**\n * Gets URL path from an URL string.\n *\n * @param url - Source URL string\n * @returns The path part of the given URL string.\n */\nexport function getURLPath(url: string): string | undefined {\n try {\n const urlParsed = new URL(url);\n return urlParsed.pathname;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Gets URL query key value pairs from an URL string.\n *\n * @param url -\n * @returns query key value string pairs from the given URL string.\n */\nexport function getURLQueries(url: string): { [key: string]: string } {\n let queryString = new URL(url).search;\n if (!queryString) {\n return {};\n }\n\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substring(1) : queryString;\n\n let querySubStrings: string[] = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value: string) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (\n indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1\n );\n });\n\n const queries: { [key: string]: string } = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key: string = splitResults[0];\n const value: string = splitResults[1];\n queries[key] = value;\n }\n\n return queries;\n}\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n proxyUri?: string; // Development Connection String may contain proxyUri\n}\n\nfunction getProxyUriFromDevConnString(connectionString: string): string {\n // Development Connection String\n // https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key\n let proxyUri = \"\";\n if (connectionString.search(\"DevelopmentStorageProxyUri=\") !== -1) {\n // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri\n const matchCredentials = connectionString.split(\";\");\n for (const element of matchCredentials) {\n if (element.trim().startsWith(\"DevelopmentStorageProxyUri=\")) {\n proxyUri = element.trim().match(\"DevelopmentStorageProxyUri=(.*)\")![1];\n }\n }\n }\n return proxyUri;\n}\n\n/**\n *\n * @param connectionString - Account connection string.\n * @param argument - property to get value from the connection string.\n * @returns Value of the property specified in argument.\n */\nexport function getValueInConnString(\n connectionString: string,\n argument:\n | \"QueueEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\",\n): string {\n const elements = connectionString.split(\";\");\n for (const element of elements) {\n if (element.trim().startsWith(argument)) {\n return element.trim().match(argument + \"=(.*)\")![1];\n }\n }\n return \"\";\n}\n\n/**\n * Extracts the parts of an Azure Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n let proxyUri = \"\";\n\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\n }\n\n // Matching QueueEndpoint in the Account connection string\n let queueEndpoint = getValueInConnString(connectionString, \"QueueEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n queueEndpoint = queueEndpoint.endsWith(\"/\") ? queueEndpoint.slice(0, -1) : queueEndpoint;\n\n if (\n connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1\n ) {\n // Account connection string\n\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n\n if (!queueEndpoint) {\n // QueueEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.queue.${endpointSuffix}`\n\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol!.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\",\n );\n }\n\n endpointSuffix = getValueInConnString(connectionString, \"EndpointSuffix\");\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n queueEndpoint = `${defaultEndpointsProtocol}://${accountName}.queue.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: queueEndpoint,\n accountName,\n accountKey,\n proxyUri,\n };\n } else {\n // SAS connection string\n\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n let accountName = getValueInConnString(connectionString, \"AccountName\");\n // if accountName is empty, try to read it from BlobEndpoint\n if (!accountName) {\n accountName = getAccountNameFromUrl(queueEndpoint);\n }\n if (!queueEndpoint) {\n throw new Error(\"Invalid QueueEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: queueEndpoint, accountName, accountSas };\n }\n}\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n\n/**\n * Delay specified time interval.\n *\n * @param timeInMs -\n * @param aborter -\n * @param abortError -\n */\nexport async function delay(\n timeInMs: number,\n aborter?: AbortSignalLike,\n abortError?: Error,\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n /* eslint-disable-next-line prefer-const*/\n let timeout: any;\n\n const abortHandler = () => {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n\n const resolveHandler = () => {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n\n timeout = setTimeout(resolveHandler, timeInMs);\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n });\n}\n\n/**\n * Sanitizes a url by removing the Signature parameter\n * @param url - to sanitize\n * @returns sanitized string\n */\nexport function sanitizeURL(url: string): string {\n let safeURL: string = url;\n if (getURLParameter(safeURL, URLConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, URLConstants.Parameters.SIGNATURE, \"*****\");\n }\n\n return safeURL;\n}\n\n/**\n * Sanitize headers by removing sensitive values such as AUTHORIZATION and X_MS_COPY_SOURCE\n * @param originalHeader - original headers\n * @returns sanitized headers\n */\nexport function sanitizeHeaders(originalHeader: HttpHeaders): HttpHeaders {\n const headers: HttpHeaders = createHttpHeaders();\n for (const [name, value] of originalHeader) {\n if (name.toLowerCase() === HeaderConstants.AUTHORIZATION) {\n headers.set(name, \"*****\");\n } else if (name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(name, sanitizeURL(value));\n } else {\n headers.set(name, value);\n }\n }\n\n return headers;\n}\n\n/**\n * Extracts account name from the url\n * @param url - url to extract the account name from\n * @returns with the account name\n */\nexport function getAccountNameFromUrl(url: string): string {\n const parsedUrl = new URL(url);\n let accountName;\n try {\n if (parsedUrl.hostname.split(\".\")[1] === \"queue\") {\n // `${defaultEndpointsProtocol}://${accountName}.queue.${endpointSuffix}`;\n accountName = parsedUrl.hostname.split(\".\")[0];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = parsedUrl.pathname.split(\"/\")[1];\n } else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n } catch (error: any) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\n\nexport function isIpEndpointStyle(parsedUrl: URL): boolean {\n const host = parsedUrl.host;\n\n // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'.\n // Case 2: localhost(:port) or host.docker.internal, use broad regex to match port part.\n // Case 3: Ipv4, use broad regex which just check if host contains Ipv4.\n // For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.\n return (\n /^.*:.*:.*$|^(localhost|host.docker.internal)(:[0-9]+)?$|^(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])){3}(:[0-9]+)?$/.test(\n host,\n ) ||\n (Boolean(parsedUrl.port) && PathStylePorts.includes(parsedUrl.port))\n );\n}\n\n/**\n * Append a string to URL query.\n *\n * @param url - Source URL string.\n * @param queryParts - String to be appended to the URL query.\n * @returns An updated URL string.\n */\nexport function appendToURLQuery(url: string, queryParts: string): string {\n const urlParsed = new URL(url);\n\n let query = urlParsed.search;\n if (query) {\n query += \"&\" + queryParts;\n } else {\n query = queryParts;\n }\n\n urlParsed.search = query;\n return urlParsed.toString();\n}\n\n/**\n * A representation of an HTTP response that\n * includes a reference to the request that\n * originated it.\n */\nexport interface HttpResponse {\n /**\n * The headers from the response.\n */\n headers: HttpHeadersLike;\n /**\n * The original request that resulted in this response.\n */\n request: WebResourceLike;\n /**\n * The HTTP status code returned from the service.\n */\n status: number;\n}\n\n/**\n * An object with a _response property that has\n * headers already parsed into a typed object.\n */\nexport interface ResponseWithHeaders<Headers> {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Headers;\n };\n}\n\n/**\n * An object with a _response property that has body\n * and headers already parsed into known types.\n */\nexport interface ResponseWithBody<Headers, Body> {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Headers;\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: Body;\n };\n}\n\n/**\n * An object with a simple _response property.\n */\nexport interface ResponseLike {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse;\n}\n\n/**\n * A type that represents an operation result with a known _response property.\n */\nexport type WithResponse<T, Headers = undefined, Body = undefined> = T &\n (Body extends object\n ? ResponseWithBody<Headers, Body>\n : Headers extends object\n ? ResponseWithHeaders<Headers>\n : ResponseLike);\n\n/**\n * A typesafe helper for ensuring that a given response object has\n * the original _response attached.\n * @param response - A response object from calling a client operation\n * @returns The same object, but with known _response property\n */\nexport function assertResponse<T extends object, Headers = undefined, Body = undefined>(\n response: T,\n): WithResponse<T, Headers, Body> {\n if (`_response` in response) {\n return response as WithResponse<T, Headers, Body>;\n }\n\n throw new TypeError(`Unexpected response object ${response}`);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"./utils/utils.common\";\n\n/**\n * Protocols for generated SAS.\n */\nexport enum SASProtocol {\n /**\n * Protocol that allows HTTPS only\n */\n Https = \"https\",\n\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n HttpsAndHttp = \"https,http\",\n}\n\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link QueueSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n /**\n * The storage API version.\n */\n public readonly version: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SASProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link QueueSASPermissions} for more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link QueueSASSignatureValues}).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. The storage queue (only for {@link QueueSASSignatureValues}).\n */\n public readonly resource?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param permissions - Representing the storage permissions\n * @param services - Representing the storage services being accessed (only for Account SAS)\n * @param resourceTypes - Representing the storage resource types being accessed (only for Account SAS)\n * @param protocol - Representing the allowed HTTP protocol(s)\n * @param startsOn - Representing the start time for this SAS token\n * @param expiresOn - Representing the expiry time for this SAS token\n * @param ipRange - Representing the range of valid IP addresses for this SAS token\n * @param identifier - Representing the signed identifier (only for Service SAS)\n * @param resource - Representing the storage queue (only for Service SAS)\n */\n constructor(\n version: string,\n signature: string,\n permissions?: string,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n ) {\n this.version = version;\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.signature = signature;\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\"sv\", \"ss\", \"srt\", \"spr\", \"st\", \"se\", \"sip\", \"si\", \"sr\", \"sp\", \"sig\"];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSASPermissions } from \"./AccountSASPermissions\";\nimport { AccountSASResourceTypes } from \"./AccountSASResourceTypes\";\nimport { AccountSASServices } from \"./AccountSASServices\";\nimport type { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"./utils/constants\";\nimport { truncatedISO8061Date } from \"./utils/utils.common\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call generateSASQueryParameters() to obtain a representation of the SAS\n * which can actually be applied to queue urls. Note: that both this class and {@link SASQueryParameters} exist because\n * the former is mutable and a logical representation while the latter is immutable and used to generate actual REST\n * requests.\n *\n * @see https://learn.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSASSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSASPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSASPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSASServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSASResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSASSignatureValues - SAS Signature values of the account\n * @param sharedKeyCredential - Shared key credential.\n */\nexport function generateAccountSASQueryParameters(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateAccountSASQueryParametersInternal(accountSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateAccountSASQueryParametersInternal(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n const version = accountSASSignatureValues.version\n ? accountSASSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = AccountSASPermissions.parse(\n accountSASSignatureValues.permissions.toString(),\n ).toString();\n const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();\n const parsedResourceTypes = AccountSASResourceTypes.parse(\n accountSASSignatureValues.resourceTypes,\n ).toString();\n\n let stringToSign: string;\n\n if (version >= \"2020-12-06\") {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Reserved for encryption scope\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n } else {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n\n const signature: string = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.protocol,\n accountSASSignatureValues.startsOn,\n accountSASSignatureValues.expiresOn,\n accountSASSignatureValues.ipRange,\n ),\n stringToSign: stringToSign,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n HttpPipelineLogLevel,\n RequestPolicy,\n RequestPolicyOptionsLike,\n WebResourceLike,\n CompatResponse as HttpOperationResponse,\n} from \"@azure/core-http-compat\";\n\n/**\n * The base class from which all request policies derive.\n */\nexport abstract class BaseRequestPolicy implements RequestPolicy {\n /**\n * The main method to implement that manipulates a request/response.\n */\n protected constructor(\n /**\n * The next policy in the pipeline. Each policy is responsible for executing the next one if the request is to continue through the pipeline.\n */\n readonly _nextPolicy: RequestPolicy,\n /**\n * The options that can be passed to a given request policy.\n */\n readonly _options: RequestPolicyOptionsLike,\n ) {}\n\n /**\n * Sends a network request based on the given web resource.\n * @param webResource - A {@link WebResourceLike} that describes a HTTP request to be made.\n */\n public abstract sendRequest(webResource: WebResourceLike): Promise<HttpOperationResponse>;\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return this._options.shouldLog(logLevel);\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n this._options.log(logLevel, message);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { BaseRequestPolicy } from \"./RequestPolicy\";\nimport type {\n WebResourceLike as WebResource,\n CompatResponse as HttpOperationResponse,\n} from \"@azure/core-http-compat\";\n\n/**\n * Credential policy used to sign HTTP(S) requests before sending. This is an\n * abstract class.\n */\nexport abstract class CredentialPolicy extends BaseRequestPolicy {\n /**\n * Sends out request.\n *\n * @param request -\n */\n public sendRequest(request: WebResource): Promise<HttpOperationResponse> {\n return this._nextPolicy.sendRequest(this.signRequest(request));\n }\n\n /**\n * Child classes must implement this method with request signing. This method\n * will be executed in {@link sendRequest}.\n *\n * @param request -\n */\n protected signRequest(request: WebResource): WebResource {\n // Child classes must override this method with request signing. This method\n // will be executed in sendRequest().\n return request;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n} from \"@azure/core-http-compat\";\nimport { CredentialPolicy } from \"./CredentialPolicy\";\n\n/**\n * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources\n * or for use with Shared Access Signatures (SAS).\n */\nexport class AnonymousCredentialPolicy extends CredentialPolicy {\n /**\n * Creates an instance of AnonymousCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n} from \"@azure/core-http-compat\";\nimport type { CredentialPolicy } from \"../policies/CredentialPolicy\";\n\n/**\n * Credential is an abstract class for Azure Storage HTTP requests signing. This\n * class will host an credentialPolicyCreator factory which generates CredentialPolicy.\n */\nexport abstract class Credential implements RequestPolicyFactory {\n /**\n * Creates a RequestPolicy object.\n *\n * @param _nextPolicy -\n * @param _options -\n */\n public create(_nextPolicy: RequestPolicy, _options: RequestPolicyOptions): RequestPolicy {\n throw new Error(\"Method should be implemented in children classes.\");\n }\n}\n\n/**\n * A factory function that creates a new CredentialPolicy that uses the provided nextPolicy.\n */\nexport type CredentialPolicyCreator = (\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n) => CredentialPolicy;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n} from \"@azure/core-http-compat\";\n\nimport { AnonymousCredentialPolicy } from \"../policies/AnonymousCredentialPolicy\";\nimport { Credential } from \"./Credential\";\n\n/**\n * AnonymousCredential provides a credentialPolicyCreator member used to create\n * AnonymousCredentialPolicy objects. AnonymousCredentialPolicy is used with\n * HTTP(S) requests that read public resources or for use with Shared Access\n * Signatures (SAS).\n */\nexport class AnonymousCredential extends Credential {\n /**\n * Creates an {@link AnonymousCredentialPolicy} object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n ): AnonymousCredentialPolicy {\n return new AnonymousCredentialPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.27.0\";\nexport const SERVICE_VERSION: string = \"2025-05-05\";\n\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES: number = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES: number = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES: number = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES: number = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS: number = 5;\n\nexport const REQUEST_TIMEOUT: number = 100 * 1000; // In ms\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n X_MS_CopySourceErrorCode: \"x-ms-copy-source-error-code\",\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const SIZE_1_MB = 1 * 1024 * 1024;\nexport const BATCH_MAX_REQUEST = 256;\nexport const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport const HTTP_LINE_ENDING = \"\\r\\n\";\nexport const HTTP_VERSION_1_1 = \"HTTP/1.1\";\n\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\nexport const StorageBlobLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n \"x-ms-copy-source-error-code\",\n \"x-ms-copy-source-status-code\",\n \"x-ms-if-tags\",\n \"x-ms-source-if-tags\",\n];\n\nexport const StorageBlobLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\",\n];\n\nexport const BlobUsesCustomerSpecifiedEncryptionMsg = \"BlobUsesCustomerSpecifiedEncryption\";\nexport const BlobDoesNotUseCustomerSpecifiedEncryption =\n \"BlobDoesNotUseCustomerSpecifiedEncryption\";\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { HttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\n\nimport type {\n BlobQueryArrowConfiguration,\n BlobQueryCsvTextConfiguration,\n BlobQueryJsonTextConfiguration,\n BlobQueryParquetConfiguration,\n} from \"../Clients\";\nimport type {\n QuerySerialization,\n BlobTags,\n BlobName,\n ListBlobsFlatSegmentResponse,\n ListBlobsHierarchySegmentResponse,\n PageRange,\n ClearRange,\n} from \"../generated/src/models\";\nimport {\n DevelopmentConnectionString,\n HeaderConstants,\n PathStylePorts,\n URLConstants,\n} from \"./constants\";\nimport type {\n Tags,\n ObjectReplicationPolicy,\n ObjectReplicationRule,\n ObjectReplicationStatus,\n HttpAuthorization,\n} from \"../models\";\nimport type {\n ListBlobsFlatSegmentResponseModel,\n BlobItemInternal as BlobItemInternalModel,\n ListBlobsHierarchySegmentResponseModel,\n BlobPrefix as BlobPrefixModel,\n PageBlobGetPageRangesDiffResponseModel,\n PageRangeInfo,\n} from \"../generatedModels\";\nimport type { HttpHeadersLike, WebResourceLike } from \"@azure/core-http-compat\";\n\n/**\n * Reserved URL characters must be properly escaped for Storage services like Blob or File.\n *\n * ## URL encode and escape strategy for JS SDKs\n *\n * When customers pass a URL string into XxxClient classes constructor, the URL string may already be URL encoded or not.\n * But before sending to Azure Storage server, the URL must be encoded. However, it's hard for a SDK to guess whether the URL\n * string has been encoded or not. We have 2 potential strategies, and chose strategy two for the XxxClient constructors.\n *\n * ### Strategy One: Assume the customer URL string is not encoded, and always encode URL string in SDK.\n *\n * This is what legacy V2 SDK does, simple and works for most of the cases.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%253A\" and send to server. A blob named \"b%3A\" will be created.\n *\n * But this strategy will make it not possible to create a blob with \"?\" in it's name. Because when customer URL string is\n * \"http://account.blob.core.windows.net/con/blob?name\", the \"?name\" will be treated as URL paramter instead of blob name.\n * If customer URL string is \"http://account.blob.core.windows.net/con/blob%3Fname\", a blob named \"blob%3Fname\" will be created.\n * V2 SDK doesn't have this issue because it doesn't allow customer pass in a full URL, it accepts a separate blob name and encodeURIComponent for it.\n * We cannot accept a SDK cannot create a blob name with \"?\". So we implement strategy two:\n *\n * ### Strategy Two: SDK doesn't assume the URL has been encoded or not. It will just escape the special characters.\n *\n * This is what V10 Blob Go SDK does. It accepts a URL type in Go, and call url.EscapedPath() to escape the special chars unescaped.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will escape \":\" like \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%3A\" to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%253A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%253A\" to server. A blob named \"b%3A\" will be created.\n *\n * This strategy gives us flexibility to create with any special characters. But \"%\" will be treated as a special characters, if the URL string\n * is not encoded, there shouldn't a \"%\" in the URL string, otherwise the URL is not a valid URL.\n * If customer needs to create a blob with \"%\" in it's blob name, use \"%25\" instead of \"%\". Just like above 3rd sample.\n * And following URL strings are invalid:\n * - \"http://account.blob.core.windows.net/con/b%\"\n * - \"http://account.blob.core.windows.net/con/b%2\"\n * - \"http://account.blob.core.windows.net/con/b%G\"\n *\n * Another special character is \"?\", use \"%2F\" to represent a blob name with \"?\" in a URL string.\n *\n * ### Strategy for containerName, blobName or other specific XXXName parameters in methods such as `containerClient.getBlobClient(blobName)`\n *\n * We will apply strategy one, and call encodeURIComponent for these parameters like blobName. Because what customers passes in is a plain name instead of a URL.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata\n *\n * @param url -\n */\nexport function escapeURLPath(url: string): string {\n const urlParsed = new URL(url);\n\n let path = urlParsed.pathname;\n path = path || \"/\";\n\n path = escape(path);\n urlParsed.pathname = path;\n\n return urlParsed.toString();\n}\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n proxyUri?: string; // Development Connection String may contain proxyUri\n}\n\nfunction getProxyUriFromDevConnString(connectionString: string): string {\n // Development Connection String\n // https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key\n let proxyUri = \"\";\n if (connectionString.search(\"DevelopmentStorageProxyUri=\") !== -1) {\n // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri\n const matchCredentials = connectionString.split(\";\");\n for (const element of matchCredentials) {\n if (element.trim().startsWith(\"DevelopmentStorageProxyUri=\")) {\n proxyUri = element.trim().match(\"DevelopmentStorageProxyUri=(.*)\")![1];\n }\n }\n }\n return proxyUri;\n}\n\nexport function getValueInConnString(\n connectionString: string,\n argument:\n | \"BlobEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\",\n): string {\n const elements = connectionString.split(\";\");\n for (const element of elements) {\n if (element.trim().startsWith(argument)) {\n return element.trim().match(argument + \"=(.*)\")![1];\n }\n }\n return \"\";\n}\n\n/**\n * Extracts the parts of an Azure Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n let proxyUri = \"\";\n\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\n }\n\n // Matching BlobEndpoint in the Account connection string\n let blobEndpoint = getValueInConnString(connectionString, \"BlobEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n blobEndpoint = blobEndpoint.endsWith(\"/\") ? blobEndpoint.slice(0, -1) : blobEndpoint;\n\n if (\n connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1\n ) {\n // Account connection string\n\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n\n if (!blobEndpoint) {\n // BlobEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`\n\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol!.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\",\n );\n }\n\n endpointSuffix = getValueInConnString(connectionString, \"EndpointSuffix\");\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: blobEndpoint,\n accountName,\n accountKey,\n proxyUri,\n };\n } else {\n // SAS connection string\n\n let accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n let accountName = getValueInConnString(connectionString, \"AccountName\");\n // if accountName is empty, try to read it from BlobEndpoint\n if (!accountName) {\n accountName = getAccountNameFromUrl(blobEndpoint);\n }\n if (!blobEndpoint) {\n throw new Error(\"Invalid BlobEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n\n // client constructors assume accountSas does *not* start with ?\n if (accountSas.startsWith(\"?\")) {\n accountSas = accountSas.substring(1);\n }\n\n return { kind: \"SASConnString\", url: blobEndpoint, accountName, accountSas };\n }\n}\n\n/**\n * Internal escape method implemented Strategy Two mentioned in escapeURL() description.\n *\n * @param text -\n */\nfunction escape(text: string): string {\n return encodeURIComponent(text)\n .replace(/%2F/g, \"/\") // Don't escape for \"/\"\n .replace(/'/g, \"%27\") // Escape for \"'\"\n .replace(/\\+/g, \"%20\")\n .replace(/%25/g, \"%\"); // Revert encoded \"%\"\n}\n\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @param url - Source URL string\n * @param name - String to be appended to URL\n * @returns An updated URL string\n */\nexport function appendToURLPath(url: string, name: string): string {\n const urlParsed = new URL(url);\n\n let path = urlParsed.pathname;\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.pathname = path;\n\n return urlParsed.toString();\n}\n\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @param url - Source URL string\n * @param name - Parameter name\n * @param value - Parameter value\n * @returns An updated URL string\n */\nexport function setURLParameter(url: string, name: string, value?: string): string {\n const urlParsed = new URL(url);\n const encodedName = encodeURIComponent(name);\n const encodedValue = value ? encodeURIComponent(value) : undefined;\n // mutating searchParams will change the encoding, so we have to do this ourselves\n const searchString = urlParsed.search === \"\" ? \"?\" : urlParsed.search;\n\n const searchPieces: string[] = [];\n\n for (const pair of searchString.slice(1).split(\"&\")) {\n if (pair) {\n const [key] = pair.split(\"=\", 2);\n if (key !== encodedName) {\n searchPieces.push(pair);\n }\n }\n }\n if (encodedValue) {\n searchPieces.push(`${encodedName}=${encodedValue}`);\n }\n\n urlParsed.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n\n return urlParsed.toString();\n}\n\n/**\n * Get URL parameter by name.\n *\n * @param url -\n * @param name -\n */\nexport function getURLParameter(url: string, name: string): string | string[] | undefined {\n const urlParsed = new URL(url);\n return urlParsed.searchParams.get(name) ?? undefined;\n}\n\n/**\n * Set URL host.\n *\n * @param url - Source URL string\n * @param host - New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url: string, host: string): string {\n const urlParsed = new URL(url);\n urlParsed.hostname = host;\n return urlParsed.toString();\n}\n\n/**\n * Get URL path from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPath(url: string): string | undefined {\n try {\n const urlParsed = new URL(url);\n return urlParsed.pathname;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Get URL scheme from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLScheme(url: string): string | undefined {\n try {\n const urlParsed = new URL(url);\n return urlParsed.protocol.endsWith(\":\") ? urlParsed.protocol.slice(0, -1) : urlParsed.protocol;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Get URL path and query from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPathAndQuery(url: string): string | undefined {\n const urlParsed = new URL(url);\n const pathString = urlParsed.pathname;\n if (!pathString) {\n throw new RangeError(\"Invalid url without valid path.\");\n }\n\n let queryString = urlParsed.search || \"\";\n queryString = queryString.trim();\n if (queryString !== \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : `?${queryString}`; // Ensure query string start with '?'\n }\n\n return `${pathString}${queryString}`;\n}\n\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @param url -\n */\nexport function getURLQueries(url: string): { [key: string]: string } {\n let queryString = new URL(url).search;\n if (!queryString) {\n return {};\n }\n\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substring(1) : queryString;\n\n let querySubStrings: string[] = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value: string) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (\n indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1\n );\n });\n\n const queries: { [key: string]: string } = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key: string = splitResults[0];\n const value: string = splitResults[1];\n queries[key] = value;\n }\n\n return queries;\n}\n\n/**\n * Append a string to URL query.\n *\n * @param url - Source URL string.\n * @param queryParts - String to be appended to the URL query.\n * @returns An updated URL string.\n */\nexport function appendToURLQuery(url: string, queryParts: string): string {\n const urlParsed = new URL(url);\n\n let query = urlParsed.search;\n if (query) {\n query += \"&\" + queryParts;\n } else {\n query = queryParts;\n }\n\n urlParsed.search = query;\n return urlParsed.toString();\n}\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n\n/**\n * Base64 encode.\n *\n * @param content -\n */\nexport function base64encode(content: string): string {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n\n/**\n * Base64 decode.\n *\n * @param encodedString -\n */\nexport function base64decode(encodedString: string): string {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @param blockIndex -\n */\nexport function generateBlockID(blockIDPrefix: string, blockIndex: number): string {\n // To generate a 64 bytes base64 string, source string should be 48\n const maxSourceStringLength = 48;\n\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n const maxBlockIndexLength = 6;\n\n const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n const res =\n blockIDPrefix +\n padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n\n/**\n * Delay specified time interval.\n *\n * @param timeInMs -\n * @param aborter -\n * @param abortError -\n */\nexport async function delay(\n timeInMs: number,\n aborter?: AbortSignalLike,\n abortError?: Error,\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n /* eslint-disable-next-line prefer-const */\n let timeout: any;\n\n const abortHandler = () => {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n\n const resolveHandler = () => {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n\n timeout = setTimeout(resolveHandler, timeInMs);\n\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n });\n}\n\n/**\n * String.prototype.padStart()\n *\n * @param currentString -\n * @param targetLength -\n * @param padString -\n */\nexport function padStart(\n currentString: string,\n targetLength: number,\n padString: string = \" \",\n): string {\n // @ts-expect-error: TS doesn't know this code needs to run downlevel sometimes\n if (String.prototype.padStart) {\n return currentString.padStart(targetLength, padString);\n }\n\n padString = padString || \" \";\n if (currentString.length > targetLength) {\n return currentString;\n } else {\n targetLength = targetLength - currentString.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + currentString;\n }\n}\n\nexport function sanitizeURL(url: string): string {\n let safeURL: string = url;\n if (getURLParameter(safeURL, URLConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, URLConstants.Parameters.SIGNATURE, \"*****\");\n }\n\n return safeURL;\n}\n\nexport function sanitizeHeaders(originalHeader: HttpHeaders): HttpHeaders {\n const headers: HttpHeaders = createHttpHeaders();\n for (const [name, value] of originalHeader) {\n if (name.toLowerCase() === HeaderConstants.AUTHORIZATION.toLowerCase()) {\n headers.set(name, \"*****\");\n } else if (name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(name, sanitizeURL(value));\n } else {\n headers.set(name, value);\n }\n }\n\n return headers;\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @param str1 -\n * @param str2 -\n */\nexport function iEqual(str1: string, str2: string): boolean {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n\n/**\n * Extracts account name from the url\n * @param url - url to extract the account name from\n * @returns with the account name\n */\nexport function getAccountNameFromUrl(url: string): string {\n const parsedUrl = new URL(url);\n let accountName;\n try {\n if (parsedUrl.hostname.split(\".\")[1] === \"blob\") {\n // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n accountName = parsedUrl.hostname.split(\".\")[0];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = parsedUrl.pathname.split(\"/\")[1];\n } else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n } catch (error: any) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\n\nexport function isIpEndpointStyle(parsedUrl: URL): boolean {\n const host = parsedUrl.host;\n\n // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'.\n // Case 2: localhost(:port) or host.docker.internal, use broad regex to match port part.\n // Case 3: Ipv4, use broad regex which just check if host contains Ipv4.\n // For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.\n return (\n /^.*:.*:.*$|^(localhost|host.docker.internal)(:[0-9]+)?$|^(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])){3}(:[0-9]+)?$/.test(\n host,\n ) ||\n (Boolean(parsedUrl.port) && PathStylePorts.includes(parsedUrl.port))\n );\n}\n\n/**\n * Convert Tags to encoded string.\n *\n * @param tags -\n */\nexport function toBlobTagsString(tags?: Tags): string | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const tagPairs = [];\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n }\n\n return tagPairs.join(\"&\");\n}\n\n/**\n * Convert Tags type to BlobTags.\n *\n * @param tags -\n */\nexport function toBlobTags(tags?: Tags): BlobTags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: BlobTags = {\n blobTagSet: [],\n };\n\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n res.blobTagSet.push({\n key,\n value,\n });\n }\n }\n return res;\n}\n\n/**\n * Covert BlobTags to Tags type.\n *\n * @param tags -\n */\nexport function toTags(tags?: BlobTags): Tags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: Tags = {};\n for (const blobTag of tags.blobTagSet) {\n res[blobTag.key] = blobTag.value;\n }\n return res;\n}\n\n/**\n * Convert BlobQueryTextConfiguration to QuerySerialization type.\n *\n * @param textConfiguration -\n */\nexport function toQuerySerialization(\n textConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration\n | BlobQueryParquetConfiguration,\n): QuerySerialization | undefined {\n if (textConfiguration === undefined) {\n return undefined;\n }\n\n switch (textConfiguration.kind) {\n case \"csv\":\n return {\n format: {\n type: \"delimited\",\n delimitedTextConfiguration: {\n columnSeparator: textConfiguration.columnSeparator || \",\",\n fieldQuote: textConfiguration.fieldQuote || \"\",\n recordSeparator: textConfiguration.recordSeparator,\n escapeChar: textConfiguration.escapeCharacter || \"\",\n headersPresent: textConfiguration.hasHeaders || false,\n },\n },\n };\n case \"json\":\n return {\n format: {\n type: \"json\",\n jsonTextConfiguration: {\n recordSeparator: textConfiguration.recordSeparator,\n },\n },\n };\n case \"arrow\":\n return {\n format: {\n type: \"arrow\",\n arrowConfiguration: {\n schema: textConfiguration.schema,\n },\n },\n };\n case \"parquet\":\n return {\n format: {\n type: \"parquet\",\n },\n };\n\n default:\n throw Error(\"Invalid BlobQueryTextConfiguration.\");\n }\n}\n\nexport function parseObjectReplicationRecord(\n objectReplicationRecord?: Record<string, string>,\n): ObjectReplicationPolicy[] | undefined {\n if (!objectReplicationRecord) {\n return undefined;\n }\n\n if (\"policy-id\" in objectReplicationRecord) {\n // If the dictionary contains a key with policy id, we are not required to do any parsing since\n // the policy id should already be stored in the ObjectReplicationDestinationPolicyId.\n return undefined;\n }\n\n const orProperties: ObjectReplicationPolicy[] = [];\n for (const key in objectReplicationRecord) {\n const ids = key.split(\"_\");\n const policyPrefix = \"or-\";\n if (ids[0].startsWith(policyPrefix)) {\n ids[0] = ids[0].substring(policyPrefix.length);\n }\n const rule: ObjectReplicationRule = {\n ruleId: ids[1],\n replicationStatus: objectReplicationRecord[key] as ObjectReplicationStatus,\n };\n const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]);\n if (policyIndex > -1) {\n orProperties[policyIndex].rules.push(rule);\n } else {\n orProperties.push({\n policyId: ids[0],\n rules: [rule],\n });\n }\n }\n return orProperties;\n}\n\n/**\n * Attach a TokenCredential to an object.\n *\n * @param thing -\n * @param credential -\n */\nexport function attachCredential<T>(thing: T, credential: TokenCredential): T {\n (thing as any).credential = credential;\n return thing;\n}\n\nexport function httpAuthorizationToString(\n httpAuthorization?: HttpAuthorization,\n): string | undefined {\n return httpAuthorization ? httpAuthorization.scheme + \" \" + httpAuthorization.value : undefined;\n}\n\nexport function BlobNameToString(name: BlobName): string {\n if (name.encoded) {\n return decodeURIComponent(name.content!);\n } else {\n return name.content!;\n }\n}\n\nexport function ConvertInternalResponseOfListBlobFlat(\n internalResponse: ListBlobsFlatSegmentResponse,\n): ListBlobsFlatSegmentResponseModel {\n return {\n ...internalResponse,\n segment: {\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItemInternalModel = {\n ...blobItemInteral,\n name: BlobNameToString(blobItemInteral.name),\n };\n return blobItem;\n }),\n },\n };\n}\n\nexport function ConvertInternalResponseOfListBlobHierarchy(\n internalResponse: ListBlobsHierarchySegmentResponse,\n): ListBlobsHierarchySegmentResponseModel {\n return {\n ...internalResponse,\n segment: {\n blobPrefixes: internalResponse.segment.blobPrefixes?.map((blobPrefixInternal) => {\n const blobPrefix: BlobPrefixModel = {\n ...blobPrefixInternal,\n name: BlobNameToString(blobPrefixInternal.name),\n };\n return blobPrefix;\n }),\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItemInternalModel = {\n ...blobItemInteral,\n name: BlobNameToString(blobItemInteral.name),\n };\n return blobItem;\n }),\n },\n };\n}\n\nexport function* ExtractPageRangeInfoItems(\n getPageRangesSegment: PageBlobGetPageRangesDiffResponseModel,\n): IterableIterator<PageRangeInfo> {\n let pageRange: PageRange[] = [];\n let clearRange: ClearRange[] = [];\n\n if (getPageRangesSegment.pageRange) pageRange = getPageRangesSegment.pageRange;\n if (getPageRangesSegment.clearRange) clearRange = getPageRangesSegment.clearRange;\n\n let pageRangeIndex = 0;\n let clearRangeIndex = 0;\n\n while (pageRangeIndex < pageRange.length && clearRangeIndex < clearRange.length) {\n if (pageRange[pageRangeIndex].start < clearRange[clearRangeIndex].start) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n ++pageRangeIndex;\n } else {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n ++clearRangeIndex;\n }\n }\n\n for (; pageRangeIndex < pageRange.length; ++pageRangeIndex) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n }\n\n for (; clearRangeIndex < clearRange.length; ++clearRangeIndex) {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n }\n}\n\n/**\n * Escape the blobName but keep path separator ('/').\n */\nexport function EscapePath(blobName: string): string {\n const split = blobName.split(\"/\");\n for (let i = 0; i < split.length; i++) {\n split[i] = encodeURIComponent(split[i]);\n }\n return split.join(\"/\");\n}\n\n/**\n * A representation of an HTTP response that\n * includes a reference to the request that\n * originated it.\n */\nexport interface HttpResponse {\n /**\n * The headers from the response.\n */\n headers: HttpHeadersLike;\n /**\n * The original request that resulted in this response.\n */\n request: WebResourceLike;\n /**\n * The HTTP status code returned from the service.\n */\n status: number;\n}\n\n/**\n * An object with a _response property that has\n * headers already parsed into a typed object.\n */\nexport interface ResponseWithHeaders<Headers> {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Headers;\n };\n}\n\n/**\n * An object with a _response property that has body\n * and headers already parsed into known types.\n */\nexport interface ResponseWithBody<Headers, Body> {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Headers;\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: Body;\n };\n}\n\n/**\n * An object with a simple _response property.\n */\nexport interface ResponseLike {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse;\n}\n\n/**\n * A type that represents an operation result with a known _response property.\n */\nexport type WithResponse<T, Headers = undefined, Body = undefined> = T &\n (Body extends object\n ? ResponseWithBody<Headers, Body>\n : Headers extends object\n ? ResponseWithHeaders<Headers>\n : ResponseLike);\n\n/**\n * A typesafe helper for ensuring that a given response object has\n * the original _response attached.\n * @param response - A response object from calling a client operation\n * @returns The same object, but with known _response property\n */\nexport function assertResponse<T extends object, Headers = undefined, Body = undefined>(\n response: T,\n): WithResponse<T, Headers, Body> {\n if (`_response` in response) {\n return response as WithResponse<T, Headers, Body>;\n }\n\n throw new TypeError(`Unexpected response object ${response}`);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/*\n * We need to imitate .Net culture-aware sorting, which is used in storage service.\n * Below tables contain sort-keys for en-US culture.\n */\nconst table_lv0 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721,\n 0x723, 0x725, 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e,\n 0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe02, 0xe09, 0xe0a,\n 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89,\n 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x0, 0x0, 0x743, 0x744, 0x748,\n 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70,\n 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c,\n 0x0, 0x750, 0x0,\n]);\nconst table_lv2 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\nconst table_lv4 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\n\nexport function compareHeader(lhs: string, rhs: string): number {\n if (isLessThan(lhs, rhs)) return -1;\n\n return 1;\n}\n\nfunction isLessThan(lhs: string, rhs: string): boolean {\n const tables = [table_lv0, table_lv2, table_lv4];\n let curr_level = 0;\n let i = 0;\n let j = 0;\n while (curr_level < tables.length) {\n if (curr_level === tables.length - 1 && i !== j) {\n return i > j;\n }\n const weight1 = i < lhs.length ? tables[curr_level][lhs[i].charCodeAt(0)] : 0x1;\n const weight2 = j < rhs.length ? tables[curr_level][rhs[j].charCodeAt(0)] : 0x1;\n if (weight1 === 0x1 && weight2 === 0x1) {\n i = 0;\n j = 0;\n ++curr_level;\n } else if (weight1 === weight2) {\n ++i;\n ++j;\n } else if (weight1 === 0) {\n ++i;\n } else if (weight2 === 0) {\n ++j;\n } else {\n return weight1 < weight2;\n }\n }\n return false;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n} from \"@azure/core-http-compat\";\nimport type { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { HeaderConstants } from \"../utils/constants\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common\";\nimport { CredentialPolicy } from \"./CredentialPolicy\";\nimport { compareHeader } from \"../utils/SharedKeyComparator\";\n\n/**\n * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport class StorageSharedKeyCredentialPolicy extends CredentialPolicy {\n /**\n * Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy\n */\n private readonly factory: StorageSharedKeyCredential;\n\n /**\n * Creates an instance of StorageSharedKeyCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n * @param factory -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n factory: StorageSharedKeyCredential,\n ) {\n super(nextPolicy, options);\n this.factory = factory;\n }\n\n /**\n * Signs request.\n *\n * @param request -\n */\n protected signRequest(request: WebResource): WebResource {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || (request.body as Buffer) !== undefined) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n this.getHeaderValueToSign(request, HeaderConstants.DATE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n this.getCanonicalizedHeadersString(request) +\n this.getCanonicalizedResourceString(request);\n\n const signature: string = this.factory.computeHMACSHA256(stringToSign);\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${this.factory.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n return request;\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n *\n * @param request -\n * @param headerName -\n */\n private getHeaderValueToSign(request: WebResource, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n * @param request -\n */\n private getCanonicalizedHeadersString(request: WebResource): string {\n let headersArray = request.headers.headersArray().filter((value) => {\n return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE);\n });\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n /**\n * Retrieves the webResource canonicalized resource string.\n *\n * @param request -\n */\n private getCanonicalizedResourceString(request: WebResource): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${this.factory.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"crypto\";\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n} from \"@azure/core-http-compat\";\n\nimport { StorageSharedKeyCredentialPolicy } from \"../policies/StorageSharedKeyCredentialPolicy\";\nimport { Credential } from \"./Credential\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * StorageSharedKeyCredential for account key authorization of Azure Storage service.\n */\nexport class StorageSharedKeyCredential extends Credential {\n /**\n * Azure Storage account name; readonly.\n */\n public readonly accountName: string;\n\n /**\n * Azure Storage account key; readonly.\n */\n private readonly accountKey: Buffer;\n\n /**\n * Creates an instance of StorageSharedKeyCredential.\n * @param accountName -\n * @param accountKey -\n */\n constructor(accountName: string, accountKey: string) {\n super();\n this.accountName = accountName;\n this.accountKey = Buffer.from(accountKey, \"base64\");\n }\n\n /**\n * Creates a StorageSharedKeyCredentialPolicy object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n ): StorageSharedKeyCredentialPolicy {\n return new StorageSharedKeyCredentialPolicy(nextPolicy, options, this);\n }\n\n /**\n * Generates a hash signature for an HTTP request or for a SAS.\n *\n * @param stringToSign -\n */\n public computeHMACSHA256(stringToSign: string): string {\n return createHmac(\"sha256\", this.accountKey).update(stringToSign, \"utf8\").digest(\"base64\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"storage-queue\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"storage-blob\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n RequestPolicyFactory,\n WebResourceLike as WebResource,\n CompatResponse as HttpOperationResponse,\n} from \"@azure/core-http-compat\";\nimport { BaseRequestPolicy } from \"./RequestPolicy\";\nimport type { RestError } from \"@azure/core-rest-pipeline\";\n\nimport type { StorageRetryOptions } from \"../StorageRetryPolicyFactory\";\nimport { URLConstants } from \"../utils/constants\";\nimport { delay, setURLHost, setURLParameter } from \"../utils/utils.common\";\nimport { logger } from \"../log\";\n\n/**\n * A factory method used to generated a RetryPolicy factory.\n *\n * @param retryOptions -\n */\nexport function NewRetryPolicyFactory(retryOptions?: StorageRetryOptions): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy => {\n return new StorageRetryPolicy(nextPolicy, options, retryOptions);\n },\n };\n}\n\n/**\n * RetryPolicy types.\n */\nexport enum StorageRetryPolicyType {\n /**\n * Exponential retry. Retry time delay grows exponentially.\n */\n EXPONENTIAL,\n /**\n * Linear retry. Retry time delay grows linearly.\n */\n FIXED,\n}\n\n// Default values of StorageRetryOptions\nconst DEFAULT_RETRY_OPTIONS: StorageRetryOptions = {\n maxRetryDelayInMs: 120 * 1000,\n maxTries: 4,\n retryDelayInMs: 4 * 1000,\n retryPolicyType: StorageRetryPolicyType.EXPONENTIAL,\n secondaryHost: \"\",\n tryTimeoutInMs: undefined, // Use server side default timeout strategy\n};\n\nconst RETRY_ABORT_ERROR = new AbortError(\"The operation was aborted.\");\n\n/**\n * Retry policy with exponential retry and linear retry implemented.\n */\nexport class StorageRetryPolicy extends BaseRequestPolicy {\n /**\n * RetryOptions.\n */\n private readonly retryOptions: StorageRetryOptions;\n\n /**\n * Creates an instance of RetryPolicy.\n *\n * @param nextPolicy -\n * @param options -\n * @param retryOptions -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryOptions: StorageRetryOptions = DEFAULT_RETRY_OPTIONS,\n ) {\n super(nextPolicy, options);\n\n // Initialize retry options\n this.retryOptions = {\n retryPolicyType: retryOptions.retryPolicyType\n ? retryOptions.retryPolicyType\n : DEFAULT_RETRY_OPTIONS.retryPolicyType,\n\n maxTries:\n retryOptions.maxTries && retryOptions.maxTries >= 1\n ? Math.floor(retryOptions.maxTries)\n : DEFAULT_RETRY_OPTIONS.maxTries,\n\n tryTimeoutInMs:\n retryOptions.tryTimeoutInMs && retryOptions.tryTimeoutInMs >= 0\n ? retryOptions.tryTimeoutInMs\n : DEFAULT_RETRY_OPTIONS.tryTimeoutInMs,\n\n retryDelayInMs:\n retryOptions.retryDelayInMs && retryOptions.retryDelayInMs >= 0\n ? Math.min(\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs!,\n )\n : DEFAULT_RETRY_OPTIONS.retryDelayInMs,\n\n maxRetryDelayInMs:\n retryOptions.maxRetryDelayInMs && retryOptions.maxRetryDelayInMs >= 0\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs,\n\n secondaryHost: retryOptions.secondaryHost\n ? retryOptions.secondaryHost\n : DEFAULT_RETRY_OPTIONS.secondaryHost,\n };\n }\n\n /**\n * Sends request.\n *\n * @param request -\n */\n public async sendRequest(request: WebResource): Promise<HttpOperationResponse> {\n return this.attemptSendRequest(request, false, 1);\n }\n\n /**\n * Decide and perform next retry. Won't mutate request parameter.\n *\n * @param request -\n * @param secondaryHas404 - If attempt was against the secondary & it returned a StatusNotFound (404), then\n * the resource was not found. This may be due to replication delay. So, in this\n * case, we'll never try the secondary again for this operation.\n * @param attempt - How many retries has been attempted to performed, starting from 1, which includes\n * the attempt will be performed by this method call.\n */\n protected async attemptSendRequest(\n request: WebResource,\n secondaryHas404: boolean,\n attempt: number,\n ): Promise<HttpOperationResponse> {\n const newRequest: WebResource = request.clone();\n\n const isPrimaryRetry =\n secondaryHas404 ||\n !this.retryOptions.secondaryHost ||\n !(request.method === \"GET\" || request.method === \"HEAD\" || request.method === \"OPTIONS\") ||\n attempt % 2 === 1;\n\n if (!isPrimaryRetry) {\n newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost!);\n }\n\n // Set the server-side timeout query parameter \"timeout=[seconds]\"\n if (this.retryOptions.tryTimeoutInMs) {\n newRequest.url = setURLParameter(\n newRequest.url,\n URLConstants.Parameters.TIMEOUT,\n Math.floor(this.retryOptions.tryTimeoutInMs! / 1000).toString(),\n );\n }\n\n let response: HttpOperationResponse | undefined;\n try {\n logger.info(`RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? \"Primary\" : \"Secondary\"}`);\n response = await this._nextPolicy.sendRequest(newRequest);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response)) {\n return response;\n }\n\n secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404);\n } catch (err: any) {\n logger.error(`RetryPolicy: Caught error, message: ${err.message}, code: ${err.code}`);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response, err)) {\n throw err;\n }\n }\n\n await this.delay(isPrimaryRetry, attempt, request.abortSignal);\n return this.attemptSendRequest(request, secondaryHas404, ++attempt);\n }\n\n /**\n * Decide whether to retry according to last HTTP response and retry counters.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param response -\n * @param err -\n */\n protected shouldRetry(\n isPrimaryRetry: boolean,\n attempt: number,\n response?: HttpOperationResponse,\n err?: RestError,\n ): boolean {\n if (attempt >= this.retryOptions.maxTries!) {\n logger.info(\n `RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions\n .maxTries!}, no further try.`,\n );\n return false;\n }\n\n // Handle network failures, you may need to customize the list when you implement\n // your own http client\n const retriableErrors = [\n \"ETIMEDOUT\",\n \"ESOCKETTIMEDOUT\",\n \"ECONNREFUSED\",\n \"ECONNRESET\",\n \"ENOENT\",\n \"ENOTFOUND\",\n \"TIMEOUT\",\n \"EPIPE\",\n \"REQUEST_SEND_ERROR\", // For default xhr based http client provided in ms-rest-js\n ];\n if (err) {\n for (const retriableError of retriableErrors) {\n if (\n err.name.toUpperCase().includes(retriableError) ||\n err.message.toUpperCase().includes(retriableError) ||\n (err.code && err.code.toString().toUpperCase() === retriableError)\n ) {\n logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`);\n return true;\n }\n }\n }\n\n // If attempt was against the secondary & it returned a StatusNotFound (404), then\n // the resource was not found. This may be due to replication delay. So, in this\n // case, we'll never try the secondary again for this operation.\n if (response || err) {\n const statusCode = response ? response.status : err ? err.statusCode : 0;\n if (!isPrimaryRetry && statusCode === 404) {\n logger.info(`RetryPolicy: Secondary access with 404, will retry.`);\n return true;\n }\n\n // Server internal error or server timeout\n if (statusCode === 503 || statusCode === 500) {\n logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`);\n return true;\n }\n }\n\n // [Copy source error code] Feature is pending on service side, skip retry on copy source error for now.\n // if (response) {\n // // Retry select Copy Source Error Codes.\n // if (response?.status >= 400) {\n // const copySourceError = response.headers.get(HeaderConstants.X_MS_CopySourceErrorCode);\n // if (copySourceError !== undefined) {\n // switch (copySourceError) {\n // case \"InternalError\":\n // case \"OperationTimedOut\":\n // case \"ServerBusy\":\n // return true;\n // }\n // }\n // }\n // }\n\n if (err?.code === \"PARSE_ERROR\" && err?.message.startsWith(`Error \"Error: Unclosed root tag`)) {\n logger.info(\n \"RetryPolicy: Incomplete XML response likely due to service timeout, will retry.\",\n );\n return true;\n }\n\n return false;\n }\n\n /**\n * Delay a calculated time between retries.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param abortSignal -\n */\n private async delay(isPrimaryRetry: boolean, attempt: number, abortSignal?: AbortSignalLike) {\n let delayTimeInMs: number = 0;\n\n if (isPrimaryRetry) {\n switch (this.retryOptions.retryPolicyType) {\n case StorageRetryPolicyType.EXPONENTIAL:\n delayTimeInMs = Math.min(\n (Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs!,\n this.retryOptions.maxRetryDelayInMs!,\n );\n break;\n case StorageRetryPolicyType.FIXED:\n delayTimeInMs = this.retryOptions.retryDelayInMs!;\n break;\n }\n } else {\n delayTimeInMs = Math.random() * 1000;\n }\n\n logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`);\n return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n RequestPolicyFactory,\n} from \"@azure/core-http-compat\";\nimport { StorageRetryPolicy, StorageRetryPolicyType } from \"./policies/StorageRetryPolicy\";\n\nexport { StorageRetryPolicyType, StorageRetryPolicy };\n\n/**\n * Storage Blob retry options interface.\n */\nexport interface StorageRetryOptions {\n /**\n * Optional. StorageRetryPolicyType, default is exponential retry policy.\n */\n readonly retryPolicyType?: StorageRetryPolicyType;\n\n /**\n * Optional. Max try number of attempts, default is 4.\n * A value of 1 means 1 try and no retries.\n * A value smaller than 1 means default retry number of attempts.\n */\n readonly maxTries?: number;\n\n /**\n * Optional. Indicates the maximum time in ms allowed for any single try of an HTTP request.\n * A value of zero or undefined means no default timeout on SDK client, Azure\n * Storage server's default timeout policy will be used.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-blob-service-operations\n */\n readonly tryTimeoutInMs?: number;\n\n /**\n * Optional. Specifies the amount of delay to use before retrying an operation (default is 4s or 4 * 1000ms).\n * The delay increases (exponentially or linearly) with each retry up to a maximum specified by\n * maxRetryDelayInMs. If you specify 0, then you must also specify 0 for maxRetryDelayInMs.\n */\n readonly retryDelayInMs?: number;\n\n /**\n * Optional. Specifies the maximum delay allowed before retrying an operation (default is 120s or 120 * 1000ms).\n * If you specify 0, then you must also specify 0 for retryDelayInMs.\n */\n readonly maxRetryDelayInMs?: number;\n\n /**\n * If a secondaryHost is specified, retries will be tried against this host. If secondaryHost is undefined\n * (the default) then operations are not retried against another host.\n *\n * NOTE: Before setting this field, make sure you understand the issues around\n * reading stale and potentially-inconsistent data at\n * {@link https://learn.microsoft.com/en-us/azure/storage/common/storage-designing-ha-apps-with-ragrs}\n */\n readonly secondaryHost?: string;\n}\n\n/**\n * StorageRetryPolicyFactory is a factory class helping generating {@link StorageRetryPolicy} objects.\n */\nexport class StorageRetryPolicyFactory implements RequestPolicyFactory {\n private retryOptions?: StorageRetryOptions;\n\n /**\n * Creates an instance of StorageRetryPolicyFactory.\n * @param retryOptions -\n */\n constructor(retryOptions?: StorageRetryOptions) {\n this.retryOptions = retryOptions;\n }\n\n /**\n * Creates a StorageRetryPolicy object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy {\n return new StorageRetryPolicy(nextPolicy, options, this.retryOptions);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpClient } from \"@azure/core-rest-pipeline\";\nimport { createDefaultHttpClient } from \"@azure/core-rest-pipeline\";\n\nlet _defaultHttpClient: HttpClient;\n\nexport function getCachedDefaultHttpClient(): HttpClient {\n if (!_defaultHttpClient) {\n _defaultHttpClient = createDefaultHttpClient();\n }\n return _defaultHttpClient;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport { HeaderConstants, URLConstants } from \"../utils/constants\";\nimport { setURLParameter } from \"../utils/utils.common\";\n\n/**\n * The programmatic identifier of the StorageBrowserPolicy.\n */\nexport const storageBrowserPolicyName = \"storageBrowserPolicy\";\n\n/**\n * storageBrowserPolicy is a policy used to prevent browsers from caching requests\n * and to remove cookies and explicit content-length headers.\n */\nexport function storageBrowserPolicy(): PipelinePolicy {\n return {\n name: storageBrowserPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (isNode) {\n return next(request);\n }\n\n if (request.method === \"GET\" || request.method === \"HEAD\") {\n request.url = setURLParameter(\n request.url,\n URLConstants.Parameters.FORCE_BROWSER_NO_CACHE,\n new Date().getTime().toString(),\n );\n }\n\n request.headers.delete(HeaderConstants.COOKIE);\n\n // According to XHR standards, content-length should be fully controlled by browsers\n request.headers.delete(HeaderConstants.CONTENT_LENGTH);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport type {\n PipelinePolicy,\n PipelineRequest,\n SendRequest,\n PipelineResponse,\n} from \"@azure/core-rest-pipeline\";\nimport { isRestError, RestError } from \"@azure/core-rest-pipeline\";\nimport { getErrorMessage } from \"@azure/core-util\";\nimport type { StorageRetryOptions } from \"../StorageRetryPolicyFactory\";\nimport { URLConstants } from \"../utils/constants\";\nimport { delay, setURLHost, setURLParameter } from \"../utils/utils.common\";\nimport { logger } from \"../log\";\n\n/**\n * Name of the {@link storageRetryPolicy}\n */\nexport const storageRetryPolicyName = \"storageRetryPolicy\";\n\n/**\n * RetryPolicy types.\n */\nexport enum StorageRetryPolicyType {\n /**\n * Exponential retry. Retry time delay grows exponentially.\n */\n EXPONENTIAL,\n /**\n * Linear retry. Retry time delay grows linearly.\n */\n FIXED,\n}\n\n// Default values of StorageRetryOptions\nconst DEFAULT_RETRY_OPTIONS = {\n maxRetryDelayInMs: 120 * 1000,\n maxTries: 4,\n retryDelayInMs: 4 * 1000,\n retryPolicyType: StorageRetryPolicyType.EXPONENTIAL,\n secondaryHost: \"\",\n tryTimeoutInMs: undefined, // Use server side default timeout strategy\n} as const;\n\nconst retriableErrors = [\n \"ETIMEDOUT\",\n \"ESOCKETTIMEDOUT\",\n \"ECONNREFUSED\",\n \"ECONNRESET\",\n \"ENOENT\",\n \"ENOTFOUND\",\n \"TIMEOUT\",\n \"EPIPE\",\n \"REQUEST_SEND_ERROR\",\n] as const;\n\nconst RETRY_ABORT_ERROR = new AbortError(\"The operation was aborted.\");\n\n/**\n * Retry policy with exponential retry and linear retry implemented.\n */\nexport function storageRetryPolicy(options: StorageRetryOptions = {}): PipelinePolicy {\n const retryPolicyType = options.retryPolicyType ?? DEFAULT_RETRY_OPTIONS.retryPolicyType;\n const maxTries = options.maxTries ?? DEFAULT_RETRY_OPTIONS.maxTries;\n const retryDelayInMs = options.retryDelayInMs ?? DEFAULT_RETRY_OPTIONS.retryDelayInMs;\n const maxRetryDelayInMs = options.maxRetryDelayInMs ?? DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs;\n const secondaryHost = options.secondaryHost ?? DEFAULT_RETRY_OPTIONS.secondaryHost;\n const tryTimeoutInMs = options.tryTimeoutInMs ?? DEFAULT_RETRY_OPTIONS.tryTimeoutInMs;\n\n function shouldRetry({\n isPrimaryRetry,\n attempt,\n response,\n error,\n }: {\n isPrimaryRetry: boolean;\n attempt: number;\n response?: PipelineResponse;\n error?: RestError;\n }): boolean {\n if (attempt >= maxTries) {\n logger.info(`RetryPolicy: Attempt(s) ${attempt} >= maxTries ${maxTries}, no further try.`);\n return false;\n }\n if (error) {\n for (const retriableError of retriableErrors) {\n if (\n error.name.toUpperCase().includes(retriableError) ||\n error.message.toUpperCase().includes(retriableError) ||\n (error.code && error.code.toString().toUpperCase() === retriableError)\n ) {\n logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`);\n return true;\n }\n }\n if (\n error?.code === \"PARSE_ERROR\" &&\n error?.message.startsWith(`Error \"Error: Unclosed root tag`)\n ) {\n logger.info(\n \"RetryPolicy: Incomplete XML response likely due to service timeout, will retry.\",\n );\n return true;\n }\n }\n\n // If attempt was against the secondary & it returned a StatusNotFound (404), then\n // the resource was not found. This may be due to replication delay. So, in this\n // case, we'll never try the secondary again for this operation.\n if (response || error) {\n const statusCode = response?.status ?? error?.statusCode ?? 0;\n if (!isPrimaryRetry && statusCode === 404) {\n logger.info(`RetryPolicy: Secondary access with 404, will retry.`);\n return true;\n }\n\n // Server internal error or server timeout\n if (statusCode === 503 || statusCode === 500) {\n logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`);\n return true;\n }\n }\n\n // [Copy source error code] Feature is pending on service side, skip retry on copy source error for now.\n // if (response) {\n // // Retry select Copy Source Error Codes.\n // if (response?.status >= 400) {\n // const copySourceError = response.headers.get(HeaderConstants.X_MS_CopySourceErrorCode);\n // if (copySourceError !== undefined) {\n // switch (copySourceError) {\n // case \"InternalError\":\n // case \"OperationTimedOut\":\n // case \"ServerBusy\":\n // return true;\n // }\n // }\n // }\n // }\n\n return false;\n }\n function calculateDelay(isPrimaryRetry: boolean, attempt: number): number {\n let delayTimeInMs = 0;\n\n if (isPrimaryRetry) {\n switch (retryPolicyType) {\n case StorageRetryPolicyType.EXPONENTIAL:\n delayTimeInMs = Math.min(\n (Math.pow(2, attempt - 1) - 1) * retryDelayInMs,\n maxRetryDelayInMs,\n );\n break;\n case StorageRetryPolicyType.FIXED:\n delayTimeInMs = retryDelayInMs;\n break;\n }\n } else {\n delayTimeInMs = Math.random() * 1000;\n }\n\n logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`);\n return delayTimeInMs;\n }\n return {\n name: storageRetryPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n // Set the server-side timeout query parameter \"timeout=[seconds]\"\n if (tryTimeoutInMs) {\n request.url = setURLParameter(\n request.url,\n URLConstants.Parameters.TIMEOUT,\n String(Math.floor(tryTimeoutInMs / 1000)),\n );\n }\n const primaryUrl = request.url;\n const secondaryUrl = secondaryHost ? setURLHost(request.url, secondaryHost) : undefined;\n let secondaryHas404 = false;\n let attempt = 1;\n let retryAgain = true;\n let response: PipelineResponse | undefined;\n let error: RestError | undefined;\n while (retryAgain) {\n const isPrimaryRetry: boolean =\n secondaryHas404 ||\n !secondaryUrl ||\n ![\"GET\", \"HEAD\", \"OPTIONS\"].includes(request.method) ||\n attempt % 2 === 1;\n request.url = isPrimaryRetry ? primaryUrl : secondaryUrl!;\n response = undefined;\n error = undefined;\n try {\n logger.info(\n `RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? \"Primary\" : \"Secondary\"}`,\n );\n response = await next(request);\n secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404);\n } catch (e: unknown) {\n if (isRestError(e)) {\n logger.error(`RetryPolicy: Caught error, message: ${e.message}, code: ${e.code}`);\n error = e;\n } else {\n logger.error(`RetryPolicy: Caught error, message: ${getErrorMessage(e)}`);\n throw e;\n }\n }\n retryAgain = shouldRetry({ isPrimaryRetry, attempt, response, error });\n if (retryAgain) {\n await delay(\n calculateDelay(isPrimaryRetry, attempt),\n request.abortSignal,\n RETRY_ABORT_ERROR,\n );\n }\n attempt++;\n }\n if (response) {\n return response;\n }\n throw error ?? new RestError(\"RetryPolicy failed without known error.\");\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"crypto\";\nimport type {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"../utils/constants\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common\";\nimport { compareHeader } from \"../utils/SharedKeyComparator\";\n\n/**\n * The programmatic identifier of the storageSharedKeyCredentialPolicy.\n */\nexport const storageSharedKeyCredentialPolicyName = \"storageSharedKeyCredentialPolicy\";\n\n/**\n * Options used to configure StorageSharedKeyCredentialPolicy.\n */\nexport interface StorageSharedKeyCredentialPolicyOptions {\n accountName: string;\n accountKey: Buffer;\n}\n\n/**\n * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.\n */\nexport function storageSharedKeyCredentialPolicy(\n options: StorageSharedKeyCredentialPolicyOptions,\n): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || Buffer.isBuffer(request.body)) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n getHeaderValueToSign(request, HeaderConstants.DATE),\n getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n getCanonicalizedHeadersString(request) +\n getCanonicalizedResourceString(request);\n\n const signature: string = createHmac(\"sha256\", options.accountKey)\n .update(stringToSign, \"utf8\")\n .digest(\"base64\");\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${options.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n */\n function getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n */\n function getCanonicalizedHeadersString(request: PipelineRequest): string {\n let headersArray: Array<{ name: string; value: string }> = [];\n for (const [name, value] of request.headers) {\n if (name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE)) {\n headersArray.push({ name, value });\n }\n }\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n function getCanonicalizedResourceString(request: PipelineRequest): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${options.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n\n return {\n name: storageSharedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n CompatResponse as HttpOperationResponse,\n} from \"@azure/core-http-compat\";\nimport { BaseRequestPolicy } from \"./RequestPolicy\";\nimport { isNode } from \"@azure/core-util\";\n\nimport { HeaderConstants, URLConstants } from \"../utils/constants\";\nimport { setURLParameter } from \"../utils/utils.common\";\n\n/**\n * StorageBrowserPolicy will handle differences between Node.js and browser runtime, including:\n *\n * 1. Browsers cache GET/HEAD requests by adding conditional headers such as 'IF_MODIFIED_SINCE'.\n * StorageBrowserPolicy is a policy used to add a timestamp query to GET/HEAD request URL\n * thus avoid the browser cache.\n *\n * 2. Remove cookie header for security\n *\n * 3. Remove content-length header to avoid browsers warning\n */\nexport class StorageBrowserPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of StorageBrowserPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends out request.\n *\n * @param request -\n */\n public async sendRequest(request: WebResource): Promise<HttpOperationResponse> {\n if (isNode) {\n return this._nextPolicy.sendRequest(request);\n }\n\n if (request.method.toUpperCase() === \"GET\" || request.method.toUpperCase() === \"HEAD\") {\n request.url = setURLParameter(\n request.url,\n URLConstants.Parameters.FORCE_BROWSER_NO_CACHE,\n new Date().getTime().toString(),\n );\n }\n\n request.headers.remove(HeaderConstants.COOKIE);\n\n // According to XHR standards, content-length should be fully controlled by browsers\n request.headers.remove(HeaderConstants.CONTENT_LENGTH);\n\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n RequestPolicyFactory,\n} from \"@azure/core-http-compat\";\nimport { StorageBrowserPolicy } from \"./policies/StorageBrowserPolicy\";\nexport { StorageBrowserPolicy };\n\n/**\n * StorageBrowserPolicyFactory is a factory class helping generating StorageBrowserPolicy objects.\n */\nexport class StorageBrowserPolicyFactory implements RequestPolicyFactory {\n /**\n * Creates a StorageBrowserPolicyFactory object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageBrowserPolicy {\n return new StorageBrowserPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"../utils/constants\";\n\n/**\n * The programmatic identifier of the storageCorrectContentLengthPolicy.\n */\nexport const storageCorrectContentLengthPolicyName = \"StorageCorrectContentLengthPolicy\";\n\n/**\n * storageCorrectContentLengthPolicy to correctly set Content-Length header with request body length.\n */\nexport function storageCorrectContentLengthPolicy(): PipelinePolicy {\n function correctContentLength(request: PipelineRequest): void {\n if (\n request.body &&\n (typeof request.body === \"string\" || Buffer.isBuffer(request.body)) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n }\n\n return {\n name: storageCorrectContentLengthPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n correctContentLength(request);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeepAliveOptions,\n ExtendedServiceClientOptions,\n HttpPipelineLogLevel,\n} from \"@azure/core-http-compat\";\nimport {\n CompatResponse as HttpOperationResponse,\n RequestPolicy as IHttpClient,\n HttpHeadersLike as HttpHeaders,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n convertHttpClient,\n createRequestPolicyFactoryPolicy,\n} from \"@azure/core-http-compat\";\nimport type {\n ProxySettings as ProxyOptions,\n UserAgentPolicyOptions as UserAgentOptions,\n Pipeline as CorePipeline,\n PipelinePolicy,\n HttpClient,\n} from \"@azure/core-rest-pipeline\";\nimport {\n RequestBodyType as HttpRequestBody,\n bearerTokenAuthenticationPolicy,\n decompressResponsePolicyName,\n} from \"@azure/core-rest-pipeline\";\nimport { authorizeRequestOnTenantChallenge, createClientPipeline } from \"@azure/core-client\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\n\nimport { logger } from \"./log\";\nimport type { StorageRetryOptions } from \"../../storage-blob/src/StorageRetryPolicyFactory\";\nimport { StorageRetryPolicyFactory } from \"../../storage-blob/src/StorageRetryPolicyFactory\";\nimport { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"../../storage-blob/src/credentials/AnonymousCredential\";\nimport {\n StorageOAuthScopes,\n StorageQueueLoggingAllowedHeaderNames,\n StorageQueueLoggingAllowedQueryParameters,\n SDK_VERSION,\n} from \"./utils/constants\";\nimport { getCachedDefaultHttpClient } from \"../../storage-blob/src/utils/cache\";\nimport { storageBrowserPolicy } from \"../../storage-blob/src/policies/StorageBrowserPolicyV2\";\nimport { storageRetryPolicy } from \"../../storage-blob/src/policies/StorageRetryPolicyV2\";\nimport { storageSharedKeyCredentialPolicy } from \"../../storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2\";\nimport { StorageBrowserPolicyFactory } from \"../../storage-blob/src/StorageBrowserPolicyFactory\";\nimport { storageCorrectContentLengthPolicy } from \"../../storage-blob/src/policies/StorageCorrectContentLengthPolicy\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n StorageOAuthScopes,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n};\n\n/**\n * A subset of `@azure/core-http` ServiceClientOptions\n */\nexport interface ServiceClientOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * Optional. Overrides the default policy factories.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n}\n\n/**\n * Option interface for Pipeline constructor.\n */\nexport interface PipelineOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * An interface for the {@link Pipeline} class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport interface PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n readonly options: PipelineOptions;\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n toServiceClientOptions(): ServiceClientOptions;\n}\n\n/**\n * A helper to decide if a given argument satisfies the Pipeline contract\n * @param pipeline - An argument that may be a Pipeline\n * @returns true when the argument satisfies the Pipeline contract\n */\nexport function isPipelineLike(pipeline: unknown): pipeline is PipelineLike {\n if (!pipeline || typeof pipeline !== \"object\") {\n return false;\n }\n\n const castPipeline = pipeline as PipelineLike;\n\n return (\n Array.isArray(castPipeline.factories) &&\n typeof castPipeline.options === \"object\" &&\n typeof castPipeline.toServiceClientOptions === \"function\"\n );\n}\n\n/**\n * A Pipeline class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport class Pipeline implements PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n public readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n public readonly options: PipelineOptions;\n\n /**\n * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface.\n *\n * @param factories -\n * @param options -\n */\n constructor(factories: RequestPolicyFactory[], options: PipelineOptions = {}) {\n this.factories = factories;\n this.options = options;\n }\n\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n public toServiceClientOptions(): ServiceClientOptions {\n return {\n httpClient: this.options.httpClient,\n requestPolicyFactories: this.factories,\n };\n }\n}\n\n/**\n * Options interface for the {@link newPipeline} function.\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n */\n keepAliveOptions?: KeepAliveOptions;\n /**\n * Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * The audience used to retrieve an AAD token.\n * By default, audience 'https://storage.azure.com/.default' will be used.\n */\n audience?: string;\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\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 pipelineOptions - Optional. Options.\n * @returns A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {},\n): Pipeline {\n if (!credential) {\n credential = new AnonymousCredential();\n }\n const pipeline = new Pipeline([], pipelineOptions);\n (pipeline as any)._credential = credential;\n return pipeline;\n}\n\nfunction processDownlevelPipeline(\n pipeline: PipelineLike,\n): { wrappedPolicies: PipelinePolicy; afterRetry: boolean } | undefined {\n const knownFactoryFunctions = [\n isAnonymousCredential,\n isStorageSharedKeyCredential,\n isCoreHttpBearerTokenFactory,\n isStorageBrowserPolicyFactory,\n isStorageRetryPolicyFactory,\n isStorageTelemetryPolicyFactory,\n isCoreHttpPolicyFactory,\n ];\n if (pipeline.factories.length) {\n const novelFactories = pipeline.factories.filter((factory) => {\n return !knownFactoryFunctions.some((knownFactory) => knownFactory(factory));\n });\n if (novelFactories.length) {\n const hasInjector = novelFactories.some((factory) => isInjectorPolicyFactory(factory));\n // if there are any left over, wrap in a requestPolicyFactoryPolicy\n return {\n wrappedPolicies: createRequestPolicyFactoryPolicy(novelFactories),\n afterRetry: hasInjector,\n };\n }\n }\n return undefined;\n}\n\nexport function getCoreClientOptions(pipeline: PipelineLike): ExtendedServiceClientOptions {\n const { httpClient: v1Client, ...restOptions } = pipeline.options as StoragePipelineOptions;\n\n let httpClient: HttpClient = (pipeline as any)._coreHttpClient;\n if (!httpClient) {\n httpClient = v1Client ? convertHttpClient(v1Client) : getCachedDefaultHttpClient();\n (pipeline as any)._coreHttpClient = httpClient;\n }\n\n let corePipeline: CorePipeline = (pipeline as any)._corePipeline;\n if (!corePipeline) {\n const packageDetails = `azsdk-js-azure-storage-blob/${SDK_VERSION}`;\n const userAgentPrefix =\n restOptions.userAgentOptions && restOptions.userAgentOptions.userAgentPrefix\n ? `${restOptions.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n corePipeline = createClientPipeline({\n ...restOptions,\n loggingOptions: {\n additionalAllowedHeaderNames: StorageQueueLoggingAllowedHeaderNames,\n additionalAllowedQueryParameters: StorageQueueLoggingAllowedQueryParameters,\n logger: logger.info,\n },\n userAgentOptions: {\n userAgentPrefix,\n },\n serializationOptions: {\n stringifyXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n deserializationOptions: {\n parseXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n });\n corePipeline.removePolicy({ phase: \"Retry\" });\n corePipeline.removePolicy({ name: decompressResponsePolicyName });\n corePipeline.addPolicy(storageCorrectContentLengthPolicy());\n corePipeline.addPolicy(storageRetryPolicy(restOptions.retryOptions), { phase: \"Retry\" });\n corePipeline.addPolicy(storageBrowserPolicy());\n const downlevelResults = processDownlevelPipeline(pipeline);\n if (downlevelResults) {\n corePipeline.addPolicy(\n downlevelResults.wrappedPolicies,\n downlevelResults.afterRetry ? { afterPhase: \"Retry\" } : undefined,\n );\n }\n const credential = getCredentialFromPipeline(pipeline);\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: restOptions.audience ?? StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n (pipeline as any)._corePipeline = corePipeline;\n }\n return {\n ...restOptions,\n allowInsecureConnection: true,\n httpClient,\n pipeline: corePipeline,\n };\n}\n\nexport function getCredentialFromPipeline(\n pipeline: PipelineLike,\n): StorageSharedKeyCredential | AnonymousCredential | TokenCredential {\n // see if we squirreled one away on the type itself\n if ((pipeline as any)._credential) {\n return (pipeline as any)._credential;\n }\n // if it came from another package, loop over the factories and look for one like before\n let credential = new AnonymousCredential();\n for (const factory of pipeline.factories) {\n if (isTokenCredential((factory as any).credential)) {\n // Only works if the factory has been attached a \"credential\" property.\n // We do that in newPipeline() when using TokenCredential.\n credential = (factory as any).credential;\n } else if (isStorageSharedKeyCredential(factory)) {\n return factory;\n }\n }\n return credential;\n}\n\nfunction isStorageSharedKeyCredential(\n factory: RequestPolicyFactory,\n): factory is StorageSharedKeyCredential {\n if (factory instanceof StorageSharedKeyCredential) {\n return true;\n }\n return factory.constructor.name === \"StorageSharedKeyCredential\";\n}\n\nfunction isAnonymousCredential(factory: RequestPolicyFactory): factory is AnonymousCredential {\n if (factory instanceof AnonymousCredential) {\n return true;\n }\n return factory.constructor.name === \"AnonymousCredential\";\n}\n\nfunction isCoreHttpBearerTokenFactory(factory: RequestPolicyFactory): boolean {\n return isTokenCredential((factory as any).credential);\n}\n\nfunction isStorageBrowserPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageBrowserPolicyFactory {\n if (factory instanceof StorageBrowserPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageBrowserPolicyFactory\";\n}\n\nfunction isStorageRetryPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageRetryPolicyFactory {\n if (factory instanceof StorageRetryPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageRetryPolicyFactory\";\n}\n\nfunction isStorageTelemetryPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"TelemetryPolicyFactory\";\n}\n\nfunction isInjectorPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"InjectorPolicyFactory\";\n}\n\nfunction isCoreHttpPolicyFactory(factory: RequestPolicyFactory): boolean {\n const knownPolicies = [\n \"GenerateClientRequestIdPolicy\",\n \"TracingPolicy\",\n \"LogPolicy\",\n \"ProxyPolicy\",\n \"DisableResponseDecompressionPolicy\",\n \"KeepAlivePolicy\",\n \"DeserializationPolicy\",\n ];\n\n const mockHttpClient: IHttpClient = {\n sendRequest: async (request: WebResource) => {\n return {\n request,\n headers: request.headers.clone(),\n status: 500,\n };\n },\n };\n const mockRequestPolicyOptions: RequestPolicyOptions = {\n log(_logLevel: HttpPipelineLogLevel, _message: string): void {\n /* do nothing */\n },\n shouldLog(_logLevel: HttpPipelineLogLevel): boolean {\n return false;\n },\n };\n const policyInstance = factory.create(mockHttpClient, mockRequestPolicyOptions);\n const policyName = policyInstance.constructor.name;\n // bundlers sometimes add a custom suffix to the class name to make it unique\n return knownPolicies.some((knownPolicyName) => {\n return policyName.startsWith(knownPolicyName);\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * A collection of key-value string pairs.\n */\nexport interface Metadata {\n /**\n * A key-value string pair.\n */\n [propertyName: string]: string;\n}\n\n/**\n * Defines the known cloud audiences for Storage.\n */\nexport enum StorageQueueAudience {\n /**\n * The OAuth scope to use to retrieve an AAD token for Azure Storage.\n */\n StorageOAuthScopes = \"https://storage.azure.com/.default\",\n}\n\n/**\n * To get OAuth audience for a storage account for queue service.\n */\nexport function getQueueServiceAccountAudience(storageAccountName: string): string {\n return `https://${storageAccountName}.queue.core.windows.net/.default`;\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const QueueServiceProperties: coreClient.CompositeMapper = {\n serializedName: \"QueueServiceProperties\",\n xmlName: \"StorageServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"QueueServiceProperties\",\n modelProperties: {\n queueAnalyticsLogging: {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n serializedName: \"HourMetrics\",\n xmlName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n serializedName: \"MinuteMetrics\",\n xmlName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n serializedName: \"Cors\",\n xmlName: \"Cors\",\n xmlIsWrapped: true,\n xmlElementName: \"CorsRule\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Logging: coreClient.CompositeMapper = {\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n required: true,\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n deleteProperty: {\n serializedName: \"Delete\",\n required: true,\n xmlName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n serializedName: \"Read\",\n required: true,\n xmlName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n serializedName: \"Write\",\n required: true,\n xmlName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const RetentionPolicy: coreClient.CompositeMapper = {\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"Days\",\n xmlName: \"Days\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const Metrics: coreClient.CompositeMapper = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n serializedName: \"IncludeAPIs\",\n xmlName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const CorsRule: coreClient.CompositeMapper = {\n serializedName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n serializedName: \"AllowedOrigins\",\n required: true,\n xmlName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n serializedName: \"AllowedMethods\",\n required: true,\n xmlName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n serializedName: \"AllowedHeaders\",\n required: true,\n xmlName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n serializedName: \"ExposedHeaders\",\n required: true,\n xmlName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"MaxAgeInSeconds\",\n required: true,\n xmlName: \"MaxAgeInSeconds\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const StorageError: coreClient.CompositeMapper = {\n serializedName: \"StorageError\",\n type: {\n name: \"Composite\",\n className: \"StorageError\",\n modelProperties: {\n message: {\n serializedName: \"Message\",\n xmlName: \"Message\",\n type: {\n name: \"String\"\n }\n },\n code: {\n serializedName: \"Code\",\n xmlName: \"Code\",\n type: {\n name: \"String\"\n }\n },\n authenticationErrorDetail: {\n serializedName: \"AuthenticationErrorDetail\",\n xmlName: \"AuthenticationErrorDetail\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueServiceStatistics: coreClient.CompositeMapper = {\n serializedName: \"QueueServiceStatistics\",\n xmlName: \"StorageServiceStats\",\n type: {\n name: \"Composite\",\n className: \"QueueServiceStatistics\",\n modelProperties: {\n geoReplication: {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\n\nexport const GeoReplication: coreClient.CompositeMapper = {\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n serializedName: \"Status\",\n required: true,\n xmlName: \"Status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"live\", \"bootstrap\", \"unavailable\"]\n }\n },\n lastSyncOn: {\n serializedName: \"LastSyncTime\",\n required: true,\n xmlName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ListQueuesSegmentResponse: coreClient.CompositeMapper = {\n serializedName: \"ListQueuesSegmentResponse\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"ListQueuesSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n prefix: {\n serializedName: \"Prefix\",\n required: true,\n xmlName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n serializedName: \"Marker\",\n xmlName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n serializedName: \"MaxResults\",\n required: true,\n xmlName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n queueItems: {\n serializedName: \"QueueItems\",\n xmlName: \"Queues\",\n xmlIsWrapped: true,\n xmlElementName: \"Queue\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"QueueItem\"\n }\n }\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n required: true,\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueItem: coreClient.CompositeMapper = {\n serializedName: \"QueueItem\",\n xmlName: \"Queue\",\n type: {\n name: \"Composite\",\n className: \"QueueItem\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n metadata: {\n serializedName: \"Metadata\",\n xmlName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n }\n }\n }\n};\n\nexport const SignedIdentifier: coreClient.CompositeMapper = {\n serializedName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n serializedName: \"Id\",\n required: true,\n xmlName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\n\nexport const AccessPolicy: coreClient.CompositeMapper = {\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n startsOn: {\n serializedName: \"Start\",\n xmlName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiresOn: {\n serializedName: \"Expiry\",\n xmlName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"Permission\",\n xmlName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const DequeuedMessageItem: coreClient.CompositeMapper = {\n serializedName: \"DequeuedMessageItem\",\n xmlName: \"QueueMessage\",\n xmlIsWrapped: true,\n type: {\n name: \"Composite\",\n className: \"DequeuedMessageItem\",\n modelProperties: {\n messageId: {\n serializedName: \"MessageId\",\n required: true,\n xmlName: \"MessageId\",\n type: {\n name: \"String\"\n }\n },\n insertedOn: {\n serializedName: \"InsertionTime\",\n required: true,\n xmlName: \"InsertionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n expiresOn: {\n serializedName: \"ExpirationTime\",\n required: true,\n xmlName: \"ExpirationTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n popReceipt: {\n serializedName: \"PopReceipt\",\n required: true,\n xmlName: \"PopReceipt\",\n type: {\n name: \"String\"\n }\n },\n nextVisibleOn: {\n serializedName: \"TimeNextVisible\",\n required: true,\n xmlName: \"TimeNextVisible\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n dequeueCount: {\n serializedName: \"DequeueCount\",\n required: true,\n xmlName: \"DequeueCount\",\n type: {\n name: \"Number\"\n }\n },\n messageText: {\n serializedName: \"MessageText\",\n required: true,\n xmlName: \"MessageText\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueMessage: coreClient.CompositeMapper = {\n serializedName: \"QueueMessage\",\n type: {\n name: \"Composite\",\n className: \"QueueMessage\",\n modelProperties: {\n messageText: {\n serializedName: \"MessageText\",\n required: true,\n xmlName: \"MessageText\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const EnqueuedMessage: coreClient.CompositeMapper = {\n serializedName: \"EnqueuedMessage\",\n xmlName: \"QueueMessage\",\n xmlIsWrapped: true,\n type: {\n name: \"Composite\",\n className: \"EnqueuedMessage\",\n modelProperties: {\n messageId: {\n serializedName: \"MessageId\",\n required: true,\n xmlName: \"MessageId\",\n type: {\n name: \"String\"\n }\n },\n insertedOn: {\n serializedName: \"InsertionTime\",\n required: true,\n xmlName: \"InsertionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n expiresOn: {\n serializedName: \"ExpirationTime\",\n required: true,\n xmlName: \"ExpirationTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n popReceipt: {\n serializedName: \"PopReceipt\",\n required: true,\n xmlName: \"PopReceipt\",\n type: {\n name: \"String\"\n }\n },\n nextVisibleOn: {\n serializedName: \"TimeNextVisible\",\n required: true,\n xmlName: \"TimeNextVisible\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const PeekedMessageItem: coreClient.CompositeMapper = {\n serializedName: \"PeekedMessageItem\",\n xmlName: \"QueueMessage\",\n xmlIsWrapped: true,\n type: {\n name: \"Composite\",\n className: \"PeekedMessageItem\",\n modelProperties: {\n messageId: {\n serializedName: \"MessageId\",\n required: true,\n xmlName: \"MessageId\",\n type: {\n name: \"String\"\n }\n },\n insertedOn: {\n serializedName: \"InsertionTime\",\n required: true,\n xmlName: \"InsertionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n expiresOn: {\n serializedName: \"ExpirationTime\",\n required: true,\n xmlName: \"ExpirationTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n dequeueCount: {\n serializedName: \"DequeueCount\",\n required: true,\n xmlName: \"DequeueCount\",\n type: {\n name: \"Number\"\n }\n },\n messageText: {\n serializedName: \"MessageText\",\n required: true,\n xmlName: \"MessageText\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListQueuesSegmentHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_listQueuesSegmentHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListQueuesSegmentHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListQueuesSegmentExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_listQueuesSegmentExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListQueuesSegmentExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueCreateHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueCreateHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueCreateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueDeleteHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueGetPropertiesHeaders\",\n modelProperties: {\n metadata: {\n serializedName: \"x-ms-meta\",\n headerCollectionPrefix: \"x-ms-meta-\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n },\n approximateMessagesCount: {\n serializedName: \"x-ms-approximate-messages-count\",\n xmlName: \"x-ms-approximate-messages-count\",\n type: {\n name: \"Number\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueSetMetadataHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_setMetadataHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueSetMetadataHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueSetMetadataExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_setMetadataExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueSetMetadataExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueGetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_getAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueGetAccessPolicyHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueGetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_getAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueGetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueSetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_setAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueSetAccessPolicyHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const QueueSetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Queue_setAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"QueueSetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesDequeueHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_dequeueHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesDequeueHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesDequeueExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_dequeueExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesDequeueExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesClearHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_clearHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesClearHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesClearExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_clearExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesClearExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesEnqueueHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_enqueueHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesEnqueueHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesEnqueueExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_enqueueExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesEnqueueExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesPeekHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_peekHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesPeekHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessagesPeekExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Messages_peekExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessagesPeekExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessageIdUpdateHeaders: coreClient.CompositeMapper = {\n serializedName: \"MessageId_updateHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessageIdUpdateHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n popReceipt: {\n serializedName: \"x-ms-popreceipt\",\n xmlName: \"x-ms-popreceipt\",\n type: {\n name: \"String\"\n }\n },\n nextVisibleOn: {\n serializedName: \"x-ms-time-next-visible\",\n xmlName: \"x-ms-time-next-visible\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessageIdUpdateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"MessageId_updateExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessageIdUpdateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessageIdDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"MessageId_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessageIdDeleteHeaders\",\n modelProperties: {\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const MessageIdDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"MessageId_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"MessageIdDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\nimport {\n QueueServiceProperties as QueueServicePropertiesMapper,\n QueueMessage as QueueMessageMapper\n} from \"../models/mappers\";\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const properties: OperationParameter = {\n parameterPath: \"properties\",\n mapper: QueueServicePropertiesMapper\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const url: OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n serializedName: \"url\",\n required: true,\n xmlName: \"url\",\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const restype: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"service\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"properties\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const timeoutInSeconds: OperationQueryParameter = {\n parameterPath: [\"options\", \"timeoutInSeconds\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"timeout\",\n xmlName: \"timeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const version: OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n defaultValue: \"2025-05-05\",\n isConstant: true,\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const requestId: OperationParameter = {\n parameterPath: [\"options\", \"requestId\"],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp1: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"stats\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp2: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"list\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const prefix: OperationQueryParameter = {\n parameterPath: [\"options\", \"prefix\"],\n mapper: {\n serializedName: \"prefix\",\n xmlName: \"prefix\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const marker: OperationQueryParameter = {\n parameterPath: [\"options\", \"marker\"],\n mapper: {\n serializedName: \"marker\",\n xmlName: \"marker\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const maxPageSize: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxPageSize\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"maxresults\",\n xmlName: \"maxresults\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const include: OperationQueryParameter = {\n parameterPath: [\"options\", \"include\"],\n mapper: {\n serializedName: \"include\",\n xmlName: \"include\",\n xmlElementName: \"ListQueuesIncludeType\",\n type: {\n name: \"Sequence\",\n element: {\n defaultValue: \"metadata\",\n isConstant: true,\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"CSV\"\n};\n\nexport const metadata: OperationParameter = {\n parameterPath: [\"options\", \"metadata\"],\n mapper: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n headerCollectionPrefix: \"x-ms-meta-\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n }\n};\n\nexport const comp3: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"metadata\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp4: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"acl\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const queueAcl: OperationParameter = {\n parameterPath: [\"options\", \"queueAcl\"],\n mapper: {\n serializedName: \"queueAcl\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n }\n};\n\nexport const numberOfMessages: OperationQueryParameter = {\n parameterPath: [\"options\", \"numberOfMessages\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"numofmessages\",\n xmlName: \"numofmessages\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const visibilityTimeout: OperationQueryParameter = {\n parameterPath: [\"options\", \"visibilityTimeout\"],\n mapper: {\n constraints: {\n InclusiveMaximum: 604800,\n InclusiveMinimum: 0\n },\n serializedName: \"visibilitytimeout\",\n xmlName: \"visibilitytimeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const queueMessage: OperationParameter = {\n parameterPath: \"queueMessage\",\n mapper: QueueMessageMapper\n};\n\nexport const messageTimeToLive: OperationQueryParameter = {\n parameterPath: [\"options\", \"messageTimeToLive\"],\n mapper: {\n constraints: {\n InclusiveMinimum: -1\n },\n serializedName: \"messagettl\",\n xmlName: \"messagettl\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const peekonly: OperationQueryParameter = {\n parameterPath: \"peekonly\",\n mapper: {\n defaultValue: \"true\",\n isConstant: true,\n serializedName: \"peekonly\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const queueMessage1: OperationParameter = {\n parameterPath: [\"options\", \"queueMessage\"],\n mapper: QueueMessageMapper\n};\n\nexport const popReceipt: OperationQueryParameter = {\n parameterPath: \"popReceipt\",\n mapper: {\n serializedName: \"popreceipt\",\n required: true,\n xmlName: \"popreceipt\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const visibilityTimeout1: OperationQueryParameter = {\n parameterPath: \"visibilityTimeout\",\n mapper: {\n constraints: {\n InclusiveMaximum: 604800,\n InclusiveMinimum: 0\n },\n serializedName: \"visibilitytimeout\",\n required: true,\n xmlName: \"visibilitytimeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Service } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n QueueServiceProperties,\n ServiceSetPropertiesOptionalParams,\n ServiceSetPropertiesResponse,\n ServiceGetPropertiesOptionalParams,\n ServiceGetPropertiesResponse,\n ServiceGetStatisticsOptionalParams,\n ServiceGetStatisticsResponse,\n ServiceListQueuesSegmentOptionalParams,\n ServiceListQueuesSegmentResponse\n} from \"../models\";\n\n/** Class containing Service operations. */\nexport class ServiceImpl implements Service {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class Service class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * Sets properties for a storage account's Queue service endpoint, including properties for Storage\n * Analytics and CORS (Cross-Origin Resource Sharing) rules\n * @param properties The StorageService properties.\n * @param options The options parameters.\n */\n setProperties(\n properties: QueueServiceProperties,\n options?: ServiceSetPropertiesOptionalParams\n ): Promise<ServiceSetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { properties, options },\n setPropertiesOperationSpec\n );\n }\n\n /**\n * gets the properties of a storage account's Queue service, including properties for Storage Analytics\n * and CORS (Cross-Origin Resource Sharing) rules.\n * @param options The options parameters.\n */\n getProperties(\n options?: ServiceGetPropertiesOptionalParams\n ): Promise<ServiceGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Queue service. It is only available on the\n * secondary location endpoint when read-access geo-redundant replication is enabled for the storage\n * account.\n * @param options The options parameters.\n */\n getStatistics(\n options?: ServiceGetStatisticsOptionalParams\n ): Promise<ServiceGetStatisticsResponse> {\n return this.client.sendOperationRequest(\n { options },\n getStatisticsOperationSpec\n );\n }\n\n /**\n * The List Queues Segment operation returns a list of the queues under the specified account\n * @param options The options parameters.\n */\n listQueuesSegment(\n options?: ServiceListQueuesSegmentOptionalParams\n ): Promise<ServiceListQueuesSegmentResponse> {\n return this.client.sendOperationRequest(\n { options },\n listQueuesSegmentOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst setPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.ServiceSetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ServiceSetPropertiesExceptionHeaders\n }\n },\n requestBody: Parameters.properties,\n queryParameters: [\n Parameters.restype,\n Parameters.comp,\n Parameters.timeoutInSeconds\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.QueueServiceProperties,\n headersMapper: Mappers.ServiceGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ServiceGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.restype,\n Parameters.comp,\n Parameters.timeoutInSeconds\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getStatisticsOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.QueueServiceStatistics,\n headersMapper: Mappers.ServiceGetStatisticsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ServiceGetStatisticsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.restype,\n Parameters.timeoutInSeconds,\n Parameters.comp1\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst listQueuesSegmentOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ListQueuesSegmentResponse,\n headersMapper: Mappers.ServiceListQueuesSegmentHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ServiceListQueuesSegmentExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp2,\n Parameters.prefix,\n Parameters.marker,\n Parameters.maxPageSize,\n Parameters.include\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Queue } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n QueueCreateOptionalParams,\n QueueCreateResponse,\n QueueDeleteOptionalParams,\n QueueDeleteResponse,\n QueueGetPropertiesOptionalParams,\n QueueGetPropertiesResponse,\n QueueSetMetadataOptionalParams,\n QueueSetMetadataResponse,\n QueueGetAccessPolicyOptionalParams,\n QueueGetAccessPolicyResponse,\n QueueSetAccessPolicyOptionalParams,\n QueueSetAccessPolicyResponse\n} from \"../models\";\n\n/** Class containing Queue operations. */\nexport class QueueImpl implements Queue {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class Queue class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * creates a new queue under the given account.\n * @param options The options parameters.\n */\n create(options?: QueueCreateOptionalParams): Promise<QueueCreateResponse> {\n return this.client.sendOperationRequest({ options }, createOperationSpec);\n }\n\n /**\n * operation permanently deletes the specified queue\n * @param options The options parameters.\n */\n delete(options?: QueueDeleteOptionalParams): Promise<QueueDeleteResponse> {\n return this.client.sendOperationRequest({ options }, deleteOperationSpec);\n }\n\n /**\n * Retrieves user-defined metadata and queue properties on the specified queue. Metadata is associated\n * with the queue as name-values pairs.\n * @param options The options parameters.\n */\n getProperties(\n options?: QueueGetPropertiesOptionalParams\n ): Promise<QueueGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * sets user-defined metadata on the specified queue. Metadata is associated with the queue as\n * name-value pairs.\n * @param options The options parameters.\n */\n setMetadata(\n options?: QueueSetMetadataOptionalParams\n ): Promise<QueueSetMetadataResponse> {\n return this.client.sendOperationRequest(\n { options },\n setMetadataOperationSpec\n );\n }\n\n /**\n * returns details about any stored access policies specified on the queue that may be used with Shared\n * Access Signatures.\n * @param options The options parameters.\n */\n getAccessPolicy(\n options?: QueueGetAccessPolicyOptionalParams\n ): Promise<QueueGetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { options },\n getAccessPolicyOperationSpec\n );\n }\n\n /**\n * sets stored access policies for the queue that may be used with Shared Access Signatures\n * @param options The options parameters.\n */\n setAccessPolicy(\n options?: QueueSetAccessPolicyOptionalParams\n ): Promise<QueueSetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { options },\n setAccessPolicyOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst createOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n headersMapper: Mappers.QueueCreateHeaders\n },\n 204: {\n headersMapper: Mappers.QueueCreateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueCreateExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.QueueDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueDeleteExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n headersMapper: Mappers.QueueGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp3],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setMetadataOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.QueueSetMetadataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueSetMetadataExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp3],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: {\n type: { name: \"Composite\", className: \"SignedIdentifier\" }\n }\n },\n serializedName: \"SignedIdentifiers\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\"\n },\n headersMapper: Mappers.QueueGetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueGetAccessPolicyExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp4],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.QueueSetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.QueueSetAccessPolicyExceptionHeaders\n }\n },\n requestBody: Parameters.queueAcl,\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp4],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Messages } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n MessagesDequeueOptionalParams,\n MessagesDequeueResponse,\n MessagesClearOptionalParams,\n MessagesClearResponse,\n QueueMessage,\n MessagesEnqueueOptionalParams,\n MessagesEnqueueResponse,\n MessagesPeekOptionalParams,\n MessagesPeekResponse\n} from \"../models\";\n\n/** Class containing Messages operations. */\nexport class MessagesImpl implements Messages {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class Messages class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * The Dequeue operation retrieves one or more messages from the front of the queue.\n * @param options The options parameters.\n */\n dequeue(\n options?: MessagesDequeueOptionalParams\n ): Promise<MessagesDequeueResponse> {\n return this.client.sendOperationRequest({ options }, dequeueOperationSpec);\n }\n\n /**\n * The Clear operation deletes all messages from the specified queue.\n * @param options The options parameters.\n */\n clear(options?: MessagesClearOptionalParams): Promise<MessagesClearResponse> {\n return this.client.sendOperationRequest({ options }, clearOperationSpec);\n }\n\n /**\n * The Enqueue operation adds a new message to the back of the message queue. A visibility timeout can\n * also be specified to make the message invisible until the visibility timeout expires. A message must\n * be in a format that can be included in an XML request with UTF-8 encoding. The encoded message can\n * be up to 64 KB in size for versions 2011-08-18 and newer, or 8 KB in size for previous versions.\n * @param queueMessage A Message object which can be stored in a Queue\n * @param options The options parameters.\n */\n enqueue(\n queueMessage: QueueMessage,\n options?: MessagesEnqueueOptionalParams\n ): Promise<MessagesEnqueueResponse> {\n return this.client.sendOperationRequest(\n { queueMessage, options },\n enqueueOperationSpec\n );\n }\n\n /**\n * The Peek operation retrieves one or more messages from the front of the queue, but does not alter\n * the visibility of the message.\n * @param options The options parameters.\n */\n peek(options?: MessagesPeekOptionalParams): Promise<MessagesPeekResponse> {\n return this.client.sendOperationRequest({ options }, peekOperationSpec);\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst dequeueOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: {\n type: { name: \"Composite\", className: \"DequeuedMessageItem\" }\n }\n },\n serializedName: \"DequeuedMessagesList\",\n xmlName: \"QueueMessagesList\",\n xmlIsWrapped: true,\n xmlElementName: \"QueueMessage\"\n },\n headersMapper: Mappers.MessagesDequeueHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessagesDequeueExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.numberOfMessages,\n Parameters.visibilityTimeout\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst clearOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.MessagesClearHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessagesClearExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst enqueueOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: { type: { name: \"Composite\", className: \"EnqueuedMessage\" } }\n },\n serializedName: \"EnqueuedMessageList\",\n xmlName: \"QueueMessagesList\",\n xmlIsWrapped: true,\n xmlElementName: \"QueueMessage\"\n },\n headersMapper: Mappers.MessagesEnqueueHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessagesEnqueueExceptionHeaders\n }\n },\n requestBody: Parameters.queueMessage,\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.visibilityTimeout,\n Parameters.messageTimeToLive\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst peekOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: {\n type: { name: \"Composite\", className: \"PeekedMessageItem\" }\n }\n },\n serializedName: \"PeekedMessagesList\",\n xmlName: \"QueueMessagesList\",\n xmlIsWrapped: true,\n xmlElementName: \"QueueMessage\"\n },\n headersMapper: Mappers.MessagesPeekHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessagesPeekExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.numberOfMessages,\n Parameters.peekonly\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { MessageId } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n MessageIdUpdateOptionalParams,\n MessageIdUpdateResponse,\n MessageIdDeleteOptionalParams,\n MessageIdDeleteResponse\n} from \"../models\";\n\n/** Class containing MessageId operations. */\nexport class MessageIdImpl implements MessageId {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class MessageId class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * The Update operation was introduced with version 2011-08-18 of the Queue service API. The Update\n * Message operation updates the visibility timeout of a message. You can also use this operation to\n * update the contents of a message. A message must be in a format that can be included in an XML\n * request with UTF-8 encoding, and the encoded message can be up to 64KB in size.\n * @param popReceipt Required. Specifies the valid pop receipt value returned from an earlier call to\n * the Get Messages or Update Message operation.\n * @param visibilityTimeout Optional. Specifies the new visibility timeout value, in seconds, relative\n * to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1\n * second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to\n * version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry\n * time.\n * @param options The options parameters.\n */\n update(\n popReceipt: string,\n visibilityTimeout: number,\n options?: MessageIdUpdateOptionalParams\n ): Promise<MessageIdUpdateResponse> {\n return this.client.sendOperationRequest(\n { popReceipt, visibilityTimeout, options },\n updateOperationSpec\n );\n }\n\n /**\n * The Delete operation deletes the specified message.\n * @param popReceipt Required. Specifies the valid pop receipt value returned from an earlier call to\n * the Get Messages or Update Message operation.\n * @param options The options parameters.\n */\n delete(\n popReceipt: string,\n options?: MessageIdDeleteOptionalParams\n ): Promise<MessageIdDeleteResponse> {\n return this.client.sendOperationRequest(\n { popReceipt, options },\n deleteOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst updateOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages/{messageid}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.MessageIdUpdateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessageIdUpdateExceptionHeaders\n }\n },\n requestBody: Parameters.queueMessage1,\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.popReceipt,\n Parameters.visibilityTimeout1\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/{queueName}/messages/{messageid}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.MessageIdDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.MessageIdDeleteExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.popReceipt],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttpCompat from \"@azure/core-http-compat\";\nimport {\n ServiceImpl,\n QueueImpl,\n MessagesImpl,\n MessageIdImpl\n} from \"./operations\";\nimport { Service, Queue, Messages, MessageId } from \"./operationsInterfaces\";\nimport { StorageClientOptionalParams } from \"./models\";\n\nexport class StorageClient extends coreHttpCompat.ExtendedServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the StorageClient class.\n * @param url The URL of the service account, queue or message that is the target of the desired\n * operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: StorageClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: StorageClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-azure-storage-queue/12.26.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2025-05-05\";\n this.service = new ServiceImpl(this);\n this.queue = new QueueImpl(this);\n this.messages = new MessagesImpl(this);\n this.messageId = new MessageIdImpl(this);\n }\n\n service: Service;\n queue: Queue;\n messages: Messages;\n messageId: MessageId;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationArguments, OperationSpec } from \"@azure/core-client\";\nimport { StorageClient } from \"./generated/src\";\n\n/**\n * @internal\n */\nexport class StorageContextClient extends StorageClient {\n async sendOperationRequest<T>(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n ): Promise<T> {\n const operationSpecToSend = { ...operationSpec };\n\n if (\n operationSpecToSend.path === \"/{queueName}\" ||\n operationSpecToSend.path === \"/{queueName}/messages\" ||\n operationSpecToSend.path === \"/{queueName}/messages/{messageid}\"\n ) {\n operationSpecToSend.path = \"\";\n }\n return super.sendOperationRequest(operationArguments, operationSpecToSend);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { StorageClient as StorageClientContext } from \"./generated/src/\";\nimport { StorageContextClient } from \"./StorageContextClient\";\nimport type { Pipeline, StoragePipelineOptions } from \"./Pipeline\";\nimport { getCoreClientOptions, getCredentialFromPipeline } from \"./Pipeline\";\nimport { getAccountNameFromUrl } from \"./utils/utils.common\";\nimport type { OperationTracingOptions } from \"@azure/core-tracing\";\nimport type { AnonymousCredential } from \"../../storage-blob/src/credentials/AnonymousCredential\";\nimport type { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport type { TokenCredential } from \"@azure/core-auth\";\n\n/**\n * An interface for options common to every remote operation.\n */\nexport interface CommonOptions {\n /**\n * Options to configure spans created when tracing is enabled.\n */\n tracingOptions?: OperationTracingOptions;\n}\n\n/**\n * A StorageClient represents a based client class for {@link QueueServiceClient}, {@link QueueClient} and etc.\n */\nexport abstract class StorageClient {\n /**\n * URL string value.\n */\n public readonly url: string;\n public readonly accountName: string;\n\n /**\n * Request policy pipeline.\n *\n * @internal\n */\n protected readonly pipeline: Pipeline;\n\n /**\n * Credential factory in the pipeline to authenticate requests to the service, such as AnonymousCredential, StorageSharedKeyCredential.\n * Initialized to an AnonymousCredential if not able to retrieve it from the pipeline.\n *\n * @internal\n */\n protected readonly credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n\n /**\n * StorageClientContext is a reference to protocol layer operations entry, which is\n * generated by AutoRest generator.\n */\n protected readonly storageClientContext: StorageClientContext;\n\n /**\n * Creates an instance of StorageClient.\n * @param url -\n * @param pipeline -\n */\n protected constructor(url: string, pipeline: Pipeline) {\n this.url = url;\n this.accountName = getAccountNameFromUrl(url);\n this.pipeline = pipeline;\n this.storageClientContext = getStorageClientContext(this.url, this.pipeline);\n this.credential = getCredentialFromPipeline(pipeline);\n }\n}\n\n// The following type is introduced to avoid a breaking change during the\n// migration of V6 SDK generator. Can be removed later when a really\n// breaking change is released.\n\n/**\n * Defines values for ListQueuesIncludeType.\n * Possible values include: 'metadata'\n * @readonly\n */\nexport type ListQueuesIncludeType = \"metadata\";\n\n/**\n * @internal\n */\nexport function getStorageClientContext(url: string, pipeline: Pipeline): StorageClientContext {\n const pipelineOptions = pipeline.options as StoragePipelineOptions;\n // Set maximum timeout for queue operations.\n // This was previously set manually in the retry policy specific to this package.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations\n if (pipelineOptions.retryOptions === undefined) {\n pipelineOptions.retryOptions = {\n tryTimeoutInMs: 30 * 1000,\n };\n } else if (pipelineOptions.retryOptions.tryTimeoutInMs === undefined) {\n (pipelineOptions.retryOptions as any).tryTimeoutInMs = 30 * 1000;\n }\n return new StorageContextClient(url, getCoreClientOptions(pipeline));\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\nimport { SDK_VERSION } from \"./constants\";\n\n/**\n * Creates a span using the global tracer.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n packageName: \"@azure/storage-queue\",\n packageVersion: SDK_VERSION,\n namespace: \"Microsoft.Storage\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a Queue. Setting\n * a value to true means that any SAS which uses these permissions will grant permissions for that operation. Once all\n * the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link QueueSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class QueueSASPermissions {\n /**\n * Creates a {@link QueueSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): QueueSASPermissions {\n const queueSASPermissions = new QueueSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n queueSASPermissions.read = true;\n break;\n case \"a\":\n queueSASPermissions.add = true;\n break;\n case \"u\":\n queueSASPermissions.update = true;\n break;\n case \"p\":\n queueSASPermissions.process = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n\n return queueSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Update access granted.\n */\n public update: boolean = false;\n\n /**\n * Specifies Process access granted.\n */\n public process: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the QueueSASPermissions\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.update) {\n permissions.push(\"u\");\n }\n if (this.process) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { QueueSASPermissions } from \"./QueueSASPermissions\";\nimport type { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"./utils/constants\";\nimport { truncatedISO8061Date } from \"./utils/utils.common\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * QueueSASSignatureValues is used to help generating Queue service SAS tokens for queues.\n */\nexport interface QueueSASSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link QueueSASPermissions}\n * being accessed for help constructing the permissions string.\n */\n permissions?: QueueSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the queue the SAS user may access.\n */\n queueName: string;\n\n /**\n * Optional. The name of the access policy on the queue this SAS references if any.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param queueSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateQueueSASQueryParameters(\n queueSASSignatureValues: QueueSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateQueueSASQueryParametersInternal(queueSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateQueueSASQueryParametersInternal(\n queueSASSignatureValues: QueueSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n if (\n !queueSASSignatureValues.identifier &&\n !(queueSASSignatureValues.permissions && queueSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Queue SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = queueSASSignatureValues.version\n ? queueSASSignatureValues.version\n : SERVICE_VERSION;\n let verifiedPermissions: string | undefined;\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n if (queueSASSignatureValues.permissions) {\n verifiedPermissions = QueueSASPermissions.parse(\n queueSASSignatureValues.permissions.toString(),\n ).toString();\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n queueSASSignatureValues.startsOn\n ? truncatedISO8061Date(queueSASSignatureValues.startsOn, false)\n : \"\",\n queueSASSignatureValues.expiresOn\n ? truncatedISO8061Date(queueSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(sharedKeyCredential.accountName, queueSASSignatureValues.queueName),\n queueSASSignatureValues.identifier,\n queueSASSignatureValues.ipRange ? ipRangeToString(queueSASSignatureValues.ipRange) : \"\",\n queueSASSignatureValues.protocol ? queueSASSignatureValues.protocol : \"\",\n version,\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n queueSASSignatureValues.protocol,\n queueSASSignatureValues.startsOn,\n queueSASSignatureValues.expiresOn,\n queueSASSignatureValues.ipRange,\n queueSASSignatureValues.identifier,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, queueName: string): string {\n // Queue: \"/queue/account/queueName\"\n return `/queue/${accountName}/${queueName}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { isNode } from \"@azure/core-util\";\nimport type {\n EnqueuedMessage,\n DequeuedMessageItem,\n MessagesDequeueHeaders,\n MessagesEnqueueHeaders,\n MessagesPeekHeaders,\n MessageIdUpdateResponse,\n MessageIdDeleteResponse,\n MessagesClearResponse,\n PeekedMessageItem,\n QueueCreateHeaders,\n QueueDeleteResponse,\n QueueGetAccessPolicyHeaders,\n QueueGetPropertiesResponse,\n QueueSetAccessPolicyResponse,\n QueueSetMetadataResponse,\n SignedIdentifierModel,\n QueueCreateResponse,\n QueueDeleteHeaders,\n QueueSetMetadataHeaders,\n QueueGetPropertiesHeaders,\n QueueSetAccessPolicyHeaders,\n MessagesClearHeaders,\n MessageIdDeleteHeaders,\n MessageIdUpdateHeaders,\n} from \"./generatedModels\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { Messages, MessageId, Queue } from \"./generated/src/operationsInterfaces\";\nimport type { StoragePipelineOptions, Pipeline } from \"./Pipeline\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline\";\nimport type { CommonOptions } from \"./StorageClient\";\nimport { StorageClient, getStorageClientContext } from \"./StorageClient\";\nimport type { WithResponse } from \"./utils/utils.common\";\nimport {\n appendToURLPath,\n extractConnectionStringParts,\n isIpEndpointStyle,\n truncatedISO8061Date,\n appendToURLQuery,\n assertResponse,\n} from \"./utils/utils.common\";\nimport { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"../../storage-blob/src/credentials/AnonymousCredential\";\nimport { tracingClient } from \"./utils/tracing\";\nimport type { Metadata } from \"./models\";\nimport {\n generateQueueSASQueryParameters,\n generateQueueSASQueryParametersInternal,\n} from \"./QueueSASSignatureValues\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport type { QueueSASPermissions } from \"./QueueSASPermissions\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options to configure {@link QueueClient.create} operation\n */\nexport interface QueueCreateOptions 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 * A collection of key-value string pair to associate with the queue object.\n * The keys need to be lower-case.\n */\n metadata?: Metadata;\n}\n\n/**\n * Options to configure {@link QueueClient.exists} operation\n */\nexport interface QueueExistsOptions 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\n/**\n * Options to configure {@link QueueClient.getProperties} operation\n */\nexport interface QueueGetPropertiesOptions 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\n/**\n * Options to configure {@link QueueClient.delete} operation\n */\nexport interface QueueDeleteOptions 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\n/**\n * Options to configure {@link QueueClient.getAccessPolicy} operation\n */\nexport interface QueueGetAccessPolicyOptions 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\n/**\n * Options to configure {@link QueueClient.setAccessPolicy} operation\n */\nexport interface QueueSetAccessPolicyOptions 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\n/**\n * Options to configure {@link QueueClient.setMetadata} operation\n */\nexport interface QueueSetMetadataOptions 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\n/**\n * Signed identifier.\n */\nexport interface SignedIdentifier {\n /**\n * a unique id\n */\n id: string;\n /**\n * Access Policy\n */\n accessPolicy: {\n /**\n * the date-time the policy is active.\n */\n startsOn?: Date;\n /**\n * the date-time the policy expires.\n */\n expiresOn?: Date;\n /**\n * the permissions for the acl policy\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-queue-acl\n */\n permissions?: string;\n };\n}\n\n/**\n * Contains response data for the {@link QueueClient.getAccessPolicy} operation.\n */\nexport declare type QueueGetAccessPolicyResponse = WithResponse<\n {\n signedIdentifiers: SignedIdentifier[];\n } & QueueGetAccessPolicyHeaders,\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n>;\n\n/**\n * Options to configure {@link QueueClient.clearMessages} operation\n */\nexport interface QueueClearMessagesOptions 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\n/** Optional parameters. */\nexport interface MessagesEnqueueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. If specified, the request must be made using an x-ms-version of 2011-08-18 or later. If not specified, the default value is 0. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message cannot be set to a value later than the expiry time. visibilitytimeout should be set to a value smaller than the time-to-live value. */\n visibilityTimeout?: number;\n /** Optional. Specifies the time-to-live interval for the message, in seconds. Prior to version 2017-07-29, the maximum time-to-live allowed is 7 days. For version 2017-07-29 or later, the maximum time-to-live can be any positive number, as well as -1 indicating that the message does not expire. If this parameter is omitted, the default time-to-live is 7 days. */\n messageTimeToLive?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.sendMessage} operation\n */\nexport interface QueueSendMessageOptions extends MessagesEnqueueOptionalParams, 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\n/** Optional parameters. */\nexport interface MessagesDequeueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n /** Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time. */\n visibilityTimeout?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.receiveMessages} operation\n */\nexport interface QueueReceiveMessageOptions extends MessagesDequeueOptionalParams, 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\n/** Optional parameters. */\nexport interface MessagesPeekOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.peekMessages} operation\n */\nexport interface QueuePeekMessagesOptions extends MessagesPeekOptionalParams, 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\n/**\n * Contains the response data for the {@link QueueClient.sendMessage} operation.\n */\nexport declare type QueueSendMessageResponse = WithResponse<\n {\n /**\n * The ID of the sent Message.\n */\n messageId: string;\n /**\n * This value is required to delete the Message.\n * If deletion fails using this popreceipt then the message has been received\n * by another client.\n */\n popReceipt: string;\n /**\n * The time that the message was inserted into the\n * Queue.\n */\n insertedOn: Date;\n /**\n * The time that the message will expire and be\n * automatically deleted.\n */\n expiresOn: Date;\n /**\n * The time that the message will again become\n * visible in the Queue.\n */\n nextVisibleOn: Date;\n } & MessagesEnqueueHeaders,\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n>;\n\n/**\n * The object returned in the `receivedMessageItems` array when calling {@link QueueClient.receiveMessages}.\n *\n * See: {@link QueueReceiveMessageResponse}\n */\nexport declare type ReceivedMessageItem = DequeuedMessageItem;\n\n/**\n * Contains the response data for the {@link QueueClient.receiveMessages} operation.\n */\nexport declare type QueueReceiveMessageResponse = WithResponse<\n {\n receivedMessageItems: ReceivedMessageItem[];\n } & MessagesDequeueHeaders,\n MessagesDequeueHeaders,\n ReceivedMessageItem[]\n>;\n\n/**\n * Contains the response data for the {@link QueueClient.peekMessages} operation.\n */\nexport declare type QueuePeekMessagesResponse = WithResponse<\n {\n peekedMessageItems: PeekedMessageItem[];\n } & MessagesPeekHeaders,\n MessagesPeekHeaders,\n PeekedMessageItem[]\n>;\n\n/**\n * Options to configure the {@link QueueClient.deleteMessage} operation\n */\nexport interface QueueDeleteMessageOptions 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\n/**\n * Contains response data for the {@link QueueClient.updateMessage} operation.\n */\nexport declare type QueueUpdateMessageResponse = MessageIdUpdateResponse;\n\n/**\n * Contains response data for the {@link QueueClient.deleteMessage} operation.\n */\nexport declare type QueueDeleteMessageResponse = MessageIdDeleteResponse;\n\n/**\n * Contains response data for the {@link QueueClient.clearMessages} operation.\n */\nexport declare type QueueClearMessagesResponse = MessagesClearResponse;\n\n/**\n * Options to configure {@link QueueClient.updateMessage} operation\n */\nexport interface QueueUpdateMessageOptions 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\n/**\n * Contains response data for the {@link QueueClient.createIfNotExists} operation.\n */\nexport interface QueueCreateIfNotExistsResponse extends QueueCreateResponse {\n /**\n * Indicate whether the queue is successfully created. Is false when the queue is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link QueueClient.deleteIfExists} operation.\n */\nexport interface QueueDeleteIfExistsResponse extends QueueDeleteResponse {\n /**\n * Indicate whether the queue is successfully deleted. Is false if the queue does not exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Options to configure {@link QueueClient.generateSasUrl} operation.\n */\nexport interface QueueGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link QueueSASPermissions} for help constructing the permissions string.\n */\n permissions?: QueueSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the queue this SAS references if any.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n}\n\n/**\n * A QueueClient represents a URL to an Azure Storage Queue's messages allowing you to manipulate its messages.\n */\nexport class QueueClient extends StorageClient {\n /**\n * messagesContext provided by protocol layer.\n */\n private messagesContext: Messages;\n /**\n * queueContext provided by protocol layer.\n */\n private queueContext: Queue;\n private _name: string;\n private _messagesUrl: string;\n\n /**\n * The name of the queue.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Creates an instance of QueueClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param queueName - Queue name.\n * @param options - Options to configure the HTTP pipeline.\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n constructor(connectionString: string, queueName: string, options?: StoragePipelineOptions);\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?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 way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrQueueName?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline\n | string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n options = options || {};\n let pipeline: Pipeline;\n let url: string;\n if (isPipelineLike(credentialOrPipelineOrQueueName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrQueueName;\n } else if (\n (isNode && credentialOrPipelineOrQueueName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrQueueName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrQueueName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n pipeline = newPipeline(credentialOrPipelineOrQueueName, options);\n } else if (\n !credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName === \"string\"\n ) {\n // (connectionString: string, containerName: string, queueName: string, options?: StoragePipelineOptions)\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const queueName = credentialOrPipelineOrQueueName;\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName,\n extractedCreds.accountKey,\n );\n url = appendToURLPath(extractedCreds.url, queueName);\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n const queueName = credentialOrPipelineOrQueueName;\n url = appendToURLPath(extractedCreds.url, queueName) + \"?\" + extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for queueName parameter\");\n }\n super(url, pipeline);\n this._name = this.getQueueNameFromUrl();\n this.queueContext = this.storageClientContext.queue;\n\n // MessagesContext\n // Build the url with \"messages\"\n const partsOfUrl = this.url.split(\"?\");\n this._messagesUrl = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], \"messages\") + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], \"messages\");\n\n this.messagesContext = getStorageClientContext(this._messagesUrl, this.pipeline).messages;\n }\n\n private getMessageIdContext(messageId: string): MessageId {\n // Build the url with messageId\n const partsOfUrl = this._messagesUrl.split(\"?\");\n const urlWithMessageId = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], messageId) + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], messageId);\n\n return getStorageClientContext(urlWithMessageId, this.pipeline).messageId;\n }\n\n /**\n * Creates a new queue under the specified account.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-queue4\n *\n * @param options - Options to Queue create operation.\n * @returns Response data for the Queue create operation.\n *\n * Example usage:\n *\n * ```js\n * const queueClient = queueServiceClient.getQueueClient(\"<new queue name>\");\n * const createQueueResponse = await queueClient.create();\n * ```\n */\n public async create(options: QueueCreateOptions = {}): Promise<QueueCreateResponse> {\n return tracingClient.withSpan(\"QueueClient-create\", options, async (updatedOptions) => {\n return assertResponse<QueueCreateHeaders, QueueCreateHeaders>(\n await this.queueContext.create(updatedOptions),\n );\n });\n }\n\n /**\n * Creates a new queue under the specified account if it doesn't already exist.\n * If the queue already exists, it is not changed.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-queue4\n *\n * @param options -\n */\n public async createIfNotExists(\n options: QueueCreateOptions = {},\n ): Promise<QueueCreateIfNotExistsResponse> {\n return tracingClient.withSpan(\n \"QueueClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n try {\n const response = await this.create(updatedOptions);\n\n // When a queue with the specified name already exists, the Queue service checks the metadata associated with the existing queue.\n // If the existing metadata is identical to the metadata specified on the Create Queue request, status code 204 (No Content) is returned.\n // If the existing metadata does not match, the operation fails and status code 409 (Conflict) is returned.\n if (response._response.status === 204) {\n return {\n succeeded: false,\n ...response,\n };\n }\n return {\n succeeded: true,\n ...response,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueAlreadyExists\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n throw e;\n }\n },\n );\n }\n\n /**\n * Deletes the specified queue permanently if it exists.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-queue3\n *\n * @param options -\n */\n public async deleteIfExists(\n options: QueueDeleteOptions = {},\n ): Promise<QueueDeleteIfExistsResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteIfExists\", options, async (updatedOptions) => {\n try {\n const res = await this.delete(updatedOptions);\n return {\n succeeded: true,\n ...res,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueNotFound\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n throw e;\n }\n });\n }\n\n /**\n * Deletes the specified queue permanently.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-queue3\n *\n * @param options - Options to Queue delete operation.\n * @returns Response data for the Queue delete operation.\n *\n * Example usage:\n *\n * ```js\n * const deleteQueueResponse = await queueClient.delete();\n * console.log(\n * \"Delete queue successfully, service assigned request Id:\", deleteQueueResponse.requestId\n * );\n * ```\n */\n public async delete(options: QueueDeleteOptions = {}): Promise<QueueDeleteResponse> {\n return tracingClient.withSpan(\"QueueClient-delete\", options, async (updatedOptions) => {\n return assertResponse<QueueDeleteHeaders, QueueDeleteHeaders>(\n await this.queueContext.delete({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n });\n }\n\n /**\n * Returns true if the specified queue exists; false otherwise.\n *\n * NOTE: use this function with care since an existing queue might be deleted by other clients or\n * applications. Vice versa new queues might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: QueueExistsOptions = {}): Promise<boolean> {\n return tracingClient.withSpan(\"QueueClient-exists\", options, async (updatedOptions) => {\n try {\n await this.getProperties(updatedOptions);\n return true;\n } catch (e: any) {\n if (e.statusCode === 404) {\n return false;\n }\n throw e;\n }\n });\n }\n\n /**\n * Gets all user-defined metadata and system properties for the specified\n * queue. Metadata is associated with the queue as name-values pairs.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-queue-metadata\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the `listQueues` method of {@link QueueServiceClient} using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param options - Options to Queue get properties operation.\n * @returns Response data for the Queue get properties operation.\n */\n public async getProperties(\n options: QueueGetPropertiesOptions = {},\n ): Promise<QueueGetPropertiesResponse> {\n return tracingClient.withSpan(\"QueueClient-getProperties\", options, async (updatedOptions) => {\n return assertResponse<QueueGetPropertiesHeaders, QueueGetPropertiesHeaders>(\n await this.queueContext.getProperties(updatedOptions),\n );\n });\n }\n\n /**\n * Sets one or more user-defined name-value pairs for the specified queue.\n *\n * If no option provided, or no metadata defined in the option parameter, the queue\n * metadata will be removed.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-queue-metadata\n *\n * @param metadata - If no metadata provided, all existing metadata will be removed.\n * @param options - Options to Queue set metadata operation.\n * @returns Response data for the Queue set metadata operation.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: QueueSetMetadataOptions = {},\n ): Promise<QueueSetMetadataResponse> {\n return tracingClient.withSpan(\"QueueClient-setMetadata\", options, async (updatedOptions) => {\n return assertResponse<QueueSetMetadataHeaders, QueueSetMetadataHeaders>(\n await this.queueContext.setMetadata({\n ...updatedOptions,\n metadata,\n }),\n );\n });\n }\n\n /**\n * Gets details about any stored access policies specified on the queue that may be used with Shared Access Signatures.\n *\n * WARNING: JavaScript Date will potential lost precision when parsing start and expiry string.\n * For example, new Date(\"2018-12-31T03:44:23.8827891Z\").toISOString() will get \"2018-12-31T03:44:23.882Z\".\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-queue-acl\n *\n * @param options - Options to Queue get access policy operation.\n * @returns Response data for the Queue get access policy operation.\n */\n public async getAccessPolicy(\n options: QueueGetAccessPolicyOptions = {},\n ): Promise<QueueGetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n QueueGetAccessPolicyHeaders & SignedIdentifierModel[],\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n >(\n await this.queueContext.getAccessPolicy({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n const res: QueueGetAccessPolicyResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n signedIdentifiers: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const identifier of response) {\n let accessPolicy: any = undefined;\n if (identifier.accessPolicy) {\n accessPolicy = {\n permissions: identifier.accessPolicy.permissions,\n };\n\n if (identifier.accessPolicy.expiresOn) {\n accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);\n }\n\n if (identifier.accessPolicy.startsOn) {\n accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);\n }\n }\n\n res.signedIdentifiers.push({\n accessPolicy,\n id: identifier.id,\n });\n }\n\n return res;\n },\n );\n }\n\n /**\n * Sets stored access policies for the queue that may be used with Shared Access Signatures.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-queue-acl\n *\n * @param queueAcl -\n * @param options - Options to Queue set access policy operation.\n * @returns Response data for the Queue set access policy operation.\n */\n public async setAccessPolicy(\n queueAcl?: SignedIdentifier[],\n options: QueueSetAccessPolicyOptions = {},\n ): Promise<QueueSetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-setAccessPolicy\",\n options,\n async (updatedOptions) => {\n const acl: SignedIdentifierModel[] = [];\n for (const identifier of queueAcl || []) {\n acl.push({\n accessPolicy: {\n expiresOn: identifier.accessPolicy.expiresOn\n ? truncatedISO8061Date(identifier.accessPolicy.expiresOn)\n : undefined,\n permissions: identifier.accessPolicy.permissions,\n startsOn: identifier.accessPolicy.startsOn\n ? truncatedISO8061Date(identifier.accessPolicy.startsOn)\n : undefined,\n },\n id: identifier.id,\n });\n }\n\n return assertResponse<QueueSetAccessPolicyHeaders, QueueSetAccessPolicyHeaders>(\n await this.queueContext.setAccessPolicy({\n ...updatedOptions,\n queueAcl: acl,\n }),\n );\n },\n );\n }\n\n /**\n * Clear deletes all messages from a queue.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/clear-messages\n *\n * @param options - Options to clear messages operation.\n * @returns Response data for the clear messages operation.\n */\n public async clearMessages(\n options: QueueClearMessagesOptions = {},\n ): Promise<QueueClearMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-clearMessages\", options, async (updatedOptions) => {\n return assertResponse<MessagesClearHeaders, MessagesClearHeaders>(\n await this.messagesContext.clear(updatedOptions),\n );\n });\n }\n\n /**\n * sendMessage adds a new message to the back of a queue. The visibility timeout specifies how long\n * the message should be invisible to Dequeue and Peek operations.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/put-message\n *\n * @param messageText - Text of the message to send\n * @param options - Options to send messages operation.\n * @returns Response data for the send messages operation.\n *\n * Example usage:\n *\n * ```js\n * const sendMessageResponse = await queueClient.sendMessage(\"Hello World!\");\n * console.log(\n * \"Sent message successfully, service assigned message Id:\", sendMessageResponse.messageId,\n * \"service assigned request Id:\", sendMessageResponse.requestId\n * );\n * ```\n */\n public async sendMessage(\n messageText: string,\n options: QueueSendMessageOptions = {},\n ): Promise<QueueSendMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-sendMessage\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesEnqueueHeaders & EnqueuedMessage[],\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n >(\n await this.messagesContext.enqueue(\n {\n messageText: messageText,\n },\n updatedOptions,\n ),\n );\n const item = response[0];\n return {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n version: response.version,\n errorCode: response.errorCode,\n messageId: item.messageId,\n popReceipt: item.popReceipt,\n nextVisibleOn: item.nextVisibleOn,\n insertedOn: item.insertedOn,\n expiresOn: item.expiresOn,\n };\n });\n }\n\n /**\n * receiveMessages retrieves one or more messages from the front of the queue.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-messages\n *\n * @param options - Options to receive messages operation.\n * @returns Response data for the receive messages operation.\n *\n * Example usage:\n *\n * ```js\n * const response = await queueClient.receiveMessages();\n * if (response.receivedMessageItems.length == 1) {\n * const receivedMessageItem = response.receivedMessageItems[0];\n * console.log(\"Processing & deleting message with content:\", receivedMessageItem.messageText);\n * const deleteMessageResponse = await queueClient.deleteMessage(\n * receivedMessageItem.messageId,\n * receivedMessageItem.popReceipt\n * );\n * console.log(\n * \"Delete message successfully, service assigned request Id:\",\n * deleteMessageResponse.requestId\n * );\n * }\n * ```\n */\n public async receiveMessages(\n options: QueueReceiveMessageOptions = {},\n ): Promise<QueueReceiveMessageResponse> {\n return tracingClient.withSpan(\n \"QueueClient-receiveMessages\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n MessagesDequeueHeaders & DequeuedMessageItem[],\n MessagesDequeueHeaders,\n DequeuedMessageItem[]\n >(await this.messagesContext.dequeue(updatedOptions));\n\n const res: QueueReceiveMessageResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n receivedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.receivedMessageItems.push(item);\n }\n\n return res;\n },\n );\n }\n\n /**\n * peekMessages retrieves one or more messages from the front of the queue but does not alter the visibility of the message.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/peek-messages\n *\n * @param options - Options to peek messages operation.\n * @returns Response data for the peek messages operation.\n *\n * Example usage:\n *\n * ```js\n * const peekMessagesResponse = await queueClient.peekMessages();\n * console.log(\"The peeked message is:\", peekMessagesResponse.peekedMessageItems[0].messageText);\n * ```\n */\n public async peekMessages(\n options: QueuePeekMessagesOptions = {},\n ): Promise<QueuePeekMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-peekMessages\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesPeekHeaders & PeekedMessageItem[],\n MessagesPeekHeaders,\n PeekedMessageItem[]\n >(await this.messagesContext.peek(updatedOptions));\n\n const res: QueuePeekMessagesResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n peekedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.peekedMessageItems.push(item);\n }\n\n return res;\n });\n }\n\n /**\n * deleteMessage permanently removes the specified message from its queue.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-message2\n *\n * @param messageId - Id of the message.\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param options - Options to delete message operation.\n * @returns Response data for the delete message operation.\n */\n public async deleteMessage(\n messageId: string,\n popReceipt: string,\n options: QueueDeleteMessageOptions = {},\n ): Promise<QueueDeleteMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteMessage\", options, async (updatedOptions) => {\n return assertResponse<MessageIdDeleteHeaders, MessageIdDeleteHeaders>(\n await this.getMessageIdContext(messageId).delete(popReceipt, updatedOptions),\n );\n });\n }\n\n /**\n * Update changes a message's visibility timeout and contents.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/update-message\n *\n * @param messageId - Id of the message\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param message - Message to update. If this parameter is undefined, then the content of the message won't be updated.\n * @param visibilityTimeout - Specifies the new visibility timeout value, in seconds,\n * relative to server time. The new value must be larger than or equal to 0,\n * and cannot be larger than 7 days. The visibility timeout of a message cannot\n * be set to a value later than the expiry time.\n * A message can be updated until it has been deleted or has expired.\n * @param options - Options to update message operation.\n * @returns Response data for the update message operation.\n */\n public async updateMessage(\n messageId: string,\n popReceipt: string,\n message?: string,\n visibilityTimeout?: number,\n options: QueueUpdateMessageOptions = {},\n ): Promise<QueueUpdateMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-updateMessage\", options, async (updatedOptions) => {\n let queueMessage = undefined;\n if (message !== undefined) {\n queueMessage = { messageText: message };\n }\n return assertResponse<MessageIdUpdateHeaders, MessageIdUpdateHeaders>(\n await this.getMessageIdContext(messageId).update(popReceipt, visibilityTimeout || 0, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n queueMessage,\n }),\n );\n });\n }\n\n private getQueueNameFromUrl(): string {\n let queueName;\n try {\n // URL may look like the following\n // \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n // \"https://myaccount.queue.core.windows.net/myqueue\".\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10001/devstoreaccount1/myqueue`\n // http://localhost:10001/devstoreaccount1/queuename\n\n const parsedUrl = new URL(this.url);\n\n if (parsedUrl.hostname.split(\".\")[1] === \"queue\") {\n // \"https://myaccount.queue.core.windows.net/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/queuename\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/queuename\n // .getPath() -> /devstoreaccount1/queuename\n queueName = parsedUrl.pathname.split(\"/\")[2];\n } else {\n // \"https://customdomain.com/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n }\n\n if (!queueName) {\n throw new Error(\"Provided queueName is invalid.\");\n }\n\n return queueName;\n } catch (error: any) {\n throw new Error(\"Unable to extract queueName with provided information.\");\n }\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateQueueSASQueryParameters(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n return generateQueueSASQueryParametersInternal(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { isNode } from \"@azure/core-util\";\nimport type {\n QueueCreateResponse,\n QueueDeleteResponse,\n QueueItem,\n QueueServiceProperties,\n ServiceGetPropertiesResponse,\n ServiceGetPropertiesHeaders,\n ServiceGetStatisticsResponse,\n ServiceListQueuesSegmentResponse,\n ServiceSetPropertiesResponse,\n ServiceListQueuesSegmentHeaders,\n ListQueuesSegmentResponse,\n ServiceSetPropertiesHeaders,\n ServiceGetStatisticsHeaders,\n QueueServiceStatistics,\n} from \"./generatedModels\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { Service } from \"./generated/src/operationsInterfaces\";\nimport type { StoragePipelineOptions, Pipeline } from \"./Pipeline\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline\";\nimport type { CommonOptions } from \"./StorageClient\";\nimport { StorageClient } from \"./StorageClient\";\nimport type { PageSettings, PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n assertResponse,\n} from \"./utils/utils.common\";\nimport { StorageSharedKeyCredential } from \"../../storage-blob/src/credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"../../storage-blob/src/credentials/AnonymousCredential\";\nimport { tracingClient } from \"./utils/tracing\";\nimport type { QueueCreateOptions, QueueDeleteOptions } from \"./QueueClient\";\nimport { QueueClient } from \"./QueueClient\";\nimport { AccountSASPermissions } from \"./AccountSASPermissions\";\nimport {\n generateAccountSASQueryParameters,\n generateAccountSASQueryParametersInternal,\n} from \"./AccountSASSignatureValues\";\nimport { AccountSASServices } from \"./AccountSASServices\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options to configure {@link QueueServiceClient.getProperties} operation\n */\nexport interface ServiceGetPropertiesOptions 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\n/**\n * Options to configure {@link QueueServiceClient.setProperties} operation\n */\nexport interface ServiceSetPropertiesOptions 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\n/**\n * Options to configure {@link QueueServiceClient.getStatistics} operation\n */\nexport interface ServiceGetStatisticsOptions 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\n/**\n * Options to configure Queue Service - List Queues Segment operation\n *\n * See:\n * - {@link QueueServiceClient.listSegments}\n * - {@link QueueServiceClient.listQueuesSegment}\n * - {@link QueueServiceClient.listItems}\n */\ninterface ServiceListQueuesSegmentOptions 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 * Filters the results to return only queues\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies the maximum number of queues\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n /**\n * Include this parameter to\n * specify that the queue's metadata be returned as part of the response\n * body. Possible values include: 'metadata'\n */\n include?: string;\n}\n\n/**\n * Options to configure {@link QueueServiceClient.listQueues} operation\n */\nexport interface ServiceListQueuesOptions 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 * Filters the results to return only queues\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies whether the queue's metadata be returned as part of the response\n * body.\n */\n includeMetadata?: boolean;\n}\n\n/**\n * Options to configure {@link QueueServiceClient.generateAccountSasUrl} operation.\n */\nexport interface ServiceGenerateAccountSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n}\n\n/**\n * A QueueServiceClient represents a URL to the Azure Storage Queue service allowing you\n * to manipulate queues.\n */\nexport class QueueServiceClient extends StorageClient {\n /**\n * Creates an instance of QueueServiceClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Options to configure the HTTP pipeline.\n * @returns A new QueueServiceClient object from the given connection string.\n */\n public static fromConnectionString(\n connectionString: string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ): QueueServiceClient {\n options = options || {};\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n const pipeline = newPipeline(sharedKeyCredential, options);\n return new QueueServiceClient(extractedCreds.url, pipeline);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n const pipeline = newPipeline(new AnonymousCredential(), options);\n return new QueueServiceClient(extractedCreds.url + \"?\" + extractedCreds.accountSas, pipeline);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n }\n\n /**\n * serviceContext provided by protocol layer.\n */\n private serviceContext: Service;\n\n /**\n * Creates an instance of QueueServiceClient.\n *\n * @param url - A URL string pointing to Azure Storage queue service, such as\n * \"https://myaccount.queue.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.queue.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 * Example using DefaultAzureCredential from `@azure/identity`:\n *\n * ```js\n * const account = \"<account>\";\n *\n * const credential = new DefaultAzureCredential();\n *\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * credential\n * }\n * ```\n *\n * Example using an account name/key:\n *\n * ```js\n * const account = \"<account>\";\n *\n * const sharedKeyCredential = new StorageSharedKeyCredential(account, \"<account key>\");\n *\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * sharedKeyCredential,\n * {\n * retryOptions: { maxTries: 4 }, // Retry options\n * telemetry: { value: \"BasicSample/V11.0.0\" } // Customized telemetry string\n * }\n * );\n * ```\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of QueueServiceClient.\n *\n * @param url - A URL string pointing to Azure Storage queue service, such as\n * \"https://myaccount.queue.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.queue.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: Pipeline);\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n let pipeline: Pipeline;\n if (isPipelineLike(credentialOrPipeline)) {\n pipeline = credentialOrPipeline;\n } else if (\n (isNode && credentialOrPipeline instanceof StorageSharedKeyCredential) ||\n credentialOrPipeline instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipeline)\n ) {\n pipeline = newPipeline(credentialOrPipeline, options);\n } else {\n // The second parameter is undefined. Use anonymous credential.\n pipeline = newPipeline(new AnonymousCredential(), options);\n }\n super(url, pipeline);\n this.serviceContext = this.storageClientContext.service;\n }\n\n /**\n * Creates a {@link QueueClient} object.\n *\n * @param queueName -\n * @returns a new QueueClient\n *\n * Example usage:\n *\n * ```js\n * const queueClient = queueServiceClient.getQueueClient(\"<new queue name>\");\n * const createQueueResponse = await queueClient.create();\n * ```\n */\n public getQueueClient(queueName: string): QueueClient {\n return new QueueClient(appendToURLPath(this.url, queueName), this.pipeline);\n }\n\n /**\n * Returns a list of the queues under the specified account.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/list-queues1\n *\n * @param marker - A string value that identifies the portion of\n * the list of queues to be returned with the next listing operation. The\n * operation returns the continuationToken value within the response body if the\n * listing operation did not return all queues remaining to be listed\n * with the current page. The continuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of list\n * items. The marker value is opaque to the client.\n * @param options - Options to list queues operation.\n * @returns Response data for the list queues segment operation.\n */\n private async listQueuesSegment(\n marker?: string,\n options: ServiceListQueuesSegmentOptions = {},\n ): Promise<ServiceListQueuesSegmentResponse> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n return tracingClient.withSpan(\n \"QueueServiceClient-listQueuesSegment\",\n options,\n async (updatedOptions) => {\n return assertResponse<\n ServiceListQueuesSegmentHeaders & ListQueuesSegmentResponse,\n ServiceListQueuesSegmentHeaders,\n ListQueuesSegmentResponse\n >(\n await this.serviceContext.listQueuesSegment({\n ...updatedOptions,\n marker,\n include: options.include === undefined ? undefined : [options.include],\n }),\n );\n },\n );\n }\n\n /**\n * Returns an AsyncIterableIterator for {@link ServiceListQueuesSegmentResponse} objects\n *\n * @param marker - A string value that identifies the portion of\n * the list of queues to be returned with the next listing operation. The\n * operation returns the continuationToken value within the response body if the\n * listing operation did not return all queues remaining to be listed\n * with the current page. The continuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of list\n * items. The marker value is opaque to the client.\n * @param options - Options to list queues operation.\n */\n private async *listSegments(\n marker?: string,\n options: ServiceListQueuesSegmentOptions = {},\n ): AsyncIterableIterator<ServiceListQueuesSegmentResponse> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n let listQueuesResponse;\n do {\n listQueuesResponse = await this.listQueuesSegment(marker, options);\n marker = listQueuesResponse.continuationToken;\n yield await listQueuesResponse;\n } while (marker);\n }\n\n /**\n * Returns an AsyncIterableIterator for {@link QueueItem} objects\n *\n * @param options - Options to list queues operation.\n */\n private async *listItems(\n options: ServiceListQueuesSegmentOptions = {},\n ): AsyncIterableIterator<QueueItem> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n let marker: string | undefined;\n for await (const segment of this.listSegments(marker, options)) {\n if (segment.queueItems) {\n yield* segment.queueItems;\n }\n }\n }\n\n /**\n * Returns an async iterable iterator to list all the queues\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the queues in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * let i = 1;\n * for await (const item of queueServiceClient.listQueues()) {\n * console.log(`Queue${i}: ${item.name}`);\n * i++;\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iterator = queueServiceClient.listQueues();\n * let item = await iterator.next();\n * while (!item.done) {\n * console.log(`Queue${i}: ${item.value.name}`);\n * i++;\n * item = await iterator.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const item2 of queueServiceClient.listQueues().byPage({ maxPageSize: 20 })) {\n * if (item2.queueItems) {\n * for (const queueItem of item2.queueItems) {\n * console.log(`Queue${i}: ${queueItem.name}`);\n * i++;\n * }\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = queueServiceClient.listQueues().byPage({ maxPageSize: 2 });\n * let item = (await iterator.next()).value;\n *\n * // Prints 2 queue names\n * if (item.queueItems) {\n * for (const queueItem of item.queueItems) {\n * console.log(`Queue${i}: ${queueItem.name}`);\n * i++;\n * }\n * }\n * // Gets next marker\n * let marker = item.continuationToken;\n *\n * // Passing next marker as continuationToken\n * iterator = queueServiceClient.listQueues().byPage({ continuationToken: marker, maxPageSize: 10 });\n * item = (await iterator.next()).value;\n *\n * // Prints 10 queue names\n * if (item.queueItems) {\n * for (const queueItem of item.queueItems) {\n * console.log(`Queue${i}: ${queueItem.name}`);\n * i++;\n * }\n * }\n * ```\n *\n * @param options - Options to list queues operation.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listQueues(\n options: ServiceListQueuesOptions = {},\n ): PagedAsyncIterableIterator<QueueItem, ServiceListQueuesSegmentResponse> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n const updatedOptions: ServiceListQueuesSegmentOptions = {\n ...options,\n ...(options.includeMetadata ? { include: \"metadata\" } : {}),\n };\n\n // AsyncIterableIterator to iterate over queues\n const iter = this.listItems(updatedOptions);\n return {\n /**\n * The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listSegments(settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...updatedOptions,\n });\n },\n };\n }\n\n /**\n * Gets the properties of a storage account’s Queue service, including properties\n * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-queue-service-properties\n *\n * @param options - Options to get properties operation.\n * @returns Response data including the queue service properties.\n */\n public async getProperties(\n options: ServiceGetPropertiesOptions = {},\n ): Promise<ServiceGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"QueueServiceClient-getProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<\n ServiceGetPropertiesHeaders & QueueServiceProperties,\n ServiceGetPropertiesHeaders,\n QueueServiceProperties\n >(await this.serviceContext.getProperties(updatedOptions));\n },\n );\n }\n\n /**\n * Sets properties for a storage account’s Queue service endpoint, including properties\n * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-queue-service-properties\n *\n * @param properties -\n * @param options - Options to set properties operation.\n * @returns Response data for the Set Properties operation.\n */\n public async setProperties(\n properties: QueueServiceProperties,\n options: ServiceGetPropertiesOptions = {},\n ): Promise<ServiceSetPropertiesResponse> {\n return tracingClient.withSpan(\n \"QueueServiceClient-setProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceSetPropertiesHeaders, ServiceSetPropertiesHeaders>(\n await this.serviceContext.setProperties(properties, updatedOptions),\n );\n },\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Queue service. It is only\n * available on the secondary location endpoint when read-access geo-redundant\n * replication is enabled for the storage account.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-queue-service-stats\n *\n * @param options - Options to get statistics operation.\n * @returns Response data for get statistics the operation.\n */\n public async getStatistics(\n options: ServiceGetStatisticsOptions = {},\n ): Promise<ServiceGetStatisticsResponse> {\n return tracingClient.withSpan(\n \"QueueServiceClient-getStatistics\",\n options,\n async (updatedOptions) => {\n return assertResponse<\n ServiceGetStatisticsHeaders & QueueServiceStatistics,\n ServiceGetStatisticsHeaders,\n QueueServiceStatistics\n >(await this.serviceContext.getStatistics(updatedOptions));\n },\n );\n }\n\n /**\n * Creates a new queue under the specified account.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-queue4\n *\n * @param queueName - name of the queue to create\n * @param options - Options to Queue create operation.\n * @returns Response data for the Queue create operation.\n */\n public async createQueue(\n queueName: string,\n options: QueueCreateOptions = {},\n ): Promise<QueueCreateResponse> {\n return tracingClient.withSpan(\n \"QueueServiceClient-createQueue\",\n options,\n async (updatedOptions) => {\n return this.getQueueClient(queueName).create(updatedOptions);\n },\n );\n }\n\n /**\n * Deletes the specified queue permanently.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-queue3\n *\n * @param queueName - name of the queue to delete.\n * @param options - Options to Queue delete operation.\n * @returns Response data for the Queue delete operation.\n */\n public async deleteQueue(\n queueName: string,\n options: QueueDeleteOptions = {},\n ): Promise<QueueDeleteResponse> {\n return tracingClient.withSpan(\n \"QueueServiceClient-deleteQueue\",\n options,\n async (updatedOptions) => {\n return this.getQueueClient(queueName).delete(updatedOptions);\n },\n );\n }\n\n /**\n * Only available for QueueServiceClient constructed with a shared key credential.\n *\n * Generates an account Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param expiresOn - Optional. The time at which the shared access signature becomes invalid. Default to an hour later if not specified.\n * @param permissions - Specifies the list of permissions to be associated with the SAS.\n * @param resourceTypes - Specifies the resource types associated with the shared access signature.\n * @param options - Optional parameters.\n * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateAccountSasUrl(\n expiresOn?: Date,\n permissions: AccountSASPermissions = AccountSASPermissions.parse(\"r\"),\n resourceTypes: string = \"sco\",\n options: ServiceGenerateAccountSasUrlOptions = {},\n ): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n\n const sas = generateAccountSASQueryParameters(\n {\n permissions,\n expiresOn,\n resourceTypes,\n services: AccountSASServices.parse(\"q\").toString(),\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for QueueServiceClient constructed with a shared key credential.\n *\n * Generates string to sign for an account Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param expiresOn - Optional. The time at which the shared access signature becomes invalid. Default to an hour later if not specified.\n * @param permissions - Specifies the list of permissions to be associated with the SAS.\n * @param resourceTypes - Specifies the resource types associated with the shared access signature.\n * @param options - Optional parameters.\n * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasStringToSign(\n expiresOn?: Date,\n permissions: AccountSASPermissions = AccountSASPermissions.parse(\"r\"),\n resourceTypes: string = \"sco\",\n options: ServiceGenerateAccountSasUrlOptions = {},\n ): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n\n return generateAccountSASQueryParametersInternal(\n {\n permissions,\n expiresOn,\n resourceTypes,\n services: AccountSASServices.parse(\"q\").toString(),\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n"],"names":["SASProtocol","createHmac","logger","createClientLogger","StorageRetryPolicyType","DEFAULT_RETRY_OPTIONS","RETRY_ABORT_ERROR","AbortError","createDefaultHttpClient","isNode","isRestError","getErrorMessage","RestError","createRequestPolicyFactoryPolicy","__rest","convertHttpClient","createClientPipeline","stringifyXML","parseXML","decompressResponsePolicyName","isTokenCredential","bearerTokenAuthenticationPolicy","authorizeRequestOnTenantChallenge","StorageQueueAudience","QueueServicePropertiesMapper","QueueMessageMapper","getPropertiesOperationSpec","xmlSerializer","coreClient","Mappers.ServiceSetPropertiesHeaders","Mappers.StorageError","Mappers.ServiceSetPropertiesExceptionHeaders","Parameters.properties","Parameters.restype","Parameters.comp","Parameters.timeoutInSeconds","Parameters.url","Parameters.contentType","Parameters.accept","Parameters.version","Parameters.requestId","Mappers.QueueServiceProperties","Mappers.ServiceGetPropertiesHeaders","Mappers.ServiceGetPropertiesExceptionHeaders","Parameters.accept1","Mappers.QueueServiceStatistics","Mappers.ServiceGetStatisticsHeaders","Mappers.ServiceGetStatisticsExceptionHeaders","Parameters.comp1","Mappers.ListQueuesSegmentResponse","Mappers.ServiceListQueuesSegmentHeaders","Mappers.ServiceListQueuesSegmentExceptionHeaders","Parameters.comp2","Parameters.prefix","Parameters.marker","Parameters.maxPageSize","Parameters.include","deleteOperationSpec","Mappers.QueueCreateHeaders","Mappers.QueueCreateExceptionHeaders","Parameters.metadata","Mappers.QueueDeleteHeaders","Mappers.QueueDeleteExceptionHeaders","Mappers.QueueGetPropertiesHeaders","Mappers.QueueGetPropertiesExceptionHeaders","Parameters.comp3","Mappers.QueueSetMetadataHeaders","Mappers.QueueSetMetadataExceptionHeaders","Mappers.QueueGetAccessPolicyHeaders","Mappers.QueueGetAccessPolicyExceptionHeaders","Parameters.comp4","Mappers.QueueSetAccessPolicyHeaders","Mappers.QueueSetAccessPolicyExceptionHeaders","Parameters.queueAcl","Mappers.MessagesDequeueHeaders","Mappers.MessagesDequeueExceptionHeaders","Parameters.numberOfMessages","Parameters.visibilityTimeout","Mappers.MessagesClearHeaders","Mappers.MessagesClearExceptionHeaders","Mappers.MessagesEnqueueHeaders","Mappers.MessagesEnqueueExceptionHeaders","Parameters.queueMessage","Parameters.messageTimeToLive","Mappers.MessagesPeekHeaders","Mappers.MessagesPeekExceptionHeaders","Parameters.peekonly","Mappers.MessageIdUpdateHeaders","Mappers.MessageIdUpdateExceptionHeaders","Parameters.queueMessage1","Parameters.popReceipt","Parameters.visibilityTimeout1","Mappers.MessageIdDeleteHeaders","Mappers.MessageIdDeleteExceptionHeaders","coreHttpCompat","StorageClient","createTracingClient","getDefaultProxySettings","__await","__asyncGenerator","__asyncValues","__asyncDelegator"],"mappings":"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"}
|