@azure/storage-blob 12.13.0-alpha.20230202.2 → 12.13.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/index.js +5893 -5338
  2. package/dist/index.js.map +1 -1
  3. package/dist-esm/storage-blob/src/BatchResponse.js.map +1 -1
  4. package/dist-esm/storage-blob/src/BatchResponseParser.js +2 -3
  5. package/dist-esm/storage-blob/src/BatchResponseParser.js.map +1 -1
  6. package/dist-esm/storage-blob/src/BlobBatch.js +87 -74
  7. package/dist-esm/storage-blob/src/BlobBatch.js.map +1 -1
  8. package/dist-esm/storage-blob/src/BlobBatchClient.js +23 -10
  9. package/dist-esm/storage-blob/src/BlobBatchClient.js.map +1 -1
  10. package/dist-esm/storage-blob/src/BlobDownloadResponse.js +1 -1
  11. package/dist-esm/storage-blob/src/BlobDownloadResponse.js.map +1 -1
  12. package/dist-esm/storage-blob/src/BlobLeaseClient.js +83 -54
  13. package/dist-esm/storage-blob/src/BlobLeaseClient.js.map +1 -1
  14. package/dist-esm/storage-blob/src/BlobQueryResponse.browser.js.map +1 -1
  15. package/dist-esm/storage-blob/src/BlobQueryResponse.js +1 -1
  16. package/dist-esm/storage-blob/src/BlobQueryResponse.js.map +1 -1
  17. package/dist-esm/storage-blob/src/BlobServiceClient.js +165 -67
  18. package/dist-esm/storage-blob/src/BlobServiceClient.js.map +1 -1
  19. package/dist-esm/storage-blob/src/Clients.js +889 -651
  20. package/dist-esm/storage-blob/src/Clients.js.map +1 -1
  21. package/dist-esm/storage-blob/src/ContainerClient.js +238 -115
  22. package/dist-esm/storage-blob/src/ContainerClient.js.map +1 -1
  23. package/dist-esm/storage-blob/src/PageBlobRangeResponse.js.map +1 -1
  24. package/dist-esm/storage-blob/src/Pipeline.js +40 -194
  25. package/dist-esm/storage-blob/src/Pipeline.js.map +1 -1
  26. package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js.map +1 -1
  27. package/dist-esm/storage-blob/src/StorageClient.js +17 -4
  28. package/dist-esm/storage-blob/src/StorageClient.js.map +1 -1
  29. package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js.map +1 -1
  30. package/dist-esm/storage-blob/src/TelemetryPolicyFactory.js +50 -0
  31. package/dist-esm/storage-blob/src/TelemetryPolicyFactory.js.map +1 -0
  32. package/dist-esm/storage-blob/src/credentials/AnonymousCredential.js.map +1 -1
  33. package/dist-esm/storage-blob/src/credentials/Credential.js.map +1 -1
  34. package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.js.map +1 -1
  35. package/dist-esm/storage-blob/src/generated/src/index.js +1 -1
  36. package/dist-esm/storage-blob/src/generated/src/index.js.map +1 -1
  37. package/dist-esm/storage-blob/src/generated/src/models/index.js +1 -248
  38. package/dist-esm/storage-blob/src/generated/src/models/index.js.map +1 -1
  39. package/dist-esm/storage-blob/src/generated/src/models/mappers.js +11 -13
  40. package/dist-esm/storage-blob/src/generated/src/models/mappers.js.map +1 -1
  41. package/dist-esm/storage-blob/src/generated/src/models/parameters.js +5 -5
  42. package/dist-esm/storage-blob/src/generated/src/models/parameters.js.map +1 -1
  43. package/dist-esm/storage-blob/src/generated/src/operations/appendBlob.js +27 -11
  44. package/dist-esm/storage-blob/src/generated/src/operations/appendBlob.js.map +1 -1
  45. package/dist-esm/storage-blob/src/generated/src/operations/blob.js +110 -28
  46. package/dist-esm/storage-blob/src/generated/src/operations/blob.js.map +1 -1
  47. package/dist-esm/storage-blob/src/generated/src/operations/blockBlob.js +43 -16
  48. package/dist-esm/storage-blob/src/generated/src/operations/blockBlob.js.map +1 -1
  49. package/dist-esm/storage-blob/src/generated/src/operations/container.js +86 -22
  50. package/dist-esm/storage-blob/src/generated/src/operations/container.js.map +1 -1
  51. package/dist-esm/storage-blob/src/generated/src/operations/pageBlob.js +54 -16
  52. package/dist-esm/storage-blob/src/generated/src/operations/pageBlob.js.map +1 -1
  53. package/dist-esm/storage-blob/src/generated/src/operations/service.js +42 -12
  54. package/dist-esm/storage-blob/src/generated/src/operations/service.js.map +1 -1
  55. package/dist-esm/storage-blob/src/generated/src/storageClient.js +10 -32
  56. package/dist-esm/storage-blob/src/generated/src/storageClient.js.map +1 -1
  57. package/dist-esm/storage-blob/src/generated/src/storageClientContext.js +39 -0
  58. package/dist-esm/storage-blob/src/generated/src/storageClientContext.js.map +1 -0
  59. package/dist-esm/storage-blob/src/generatedModels.js.map +1 -1
  60. package/dist-esm/storage-blob/src/index.browser.js +2 -3
  61. package/dist-esm/storage-blob/src/index.browser.js.map +1 -1
  62. package/dist-esm/storage-blob/src/index.js +2 -3
  63. package/dist-esm/storage-blob/src/index.js.map +1 -1
  64. package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js.map +1 -1
  65. package/dist-esm/storage-blob/src/policies/CredentialPolicy.js +1 -1
  66. package/dist-esm/storage-blob/src/policies/CredentialPolicy.js.map +1 -1
  67. package/dist-esm/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.js +245 -0
  68. package/dist-esm/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.js.map +1 -0
  69. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js +1 -2
  70. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js.map +1 -1
  71. package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js +1 -1
  72. package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +1 -1
  73. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  74. package/dist-esm/storage-blob/src/policies/TelemetryPolicy.js +36 -0
  75. package/dist-esm/storage-blob/src/policies/TelemetryPolicy.js.map +1 -0
  76. package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js +1 -1
  77. package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  78. package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js.map +1 -1
  79. package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js +2 -10
  80. package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js.map +1 -1
  81. package/dist-esm/storage-blob/src/utils/cache.js +2 -5
  82. package/dist-esm/storage-blob/src/utils/cache.js.map +1 -1
  83. package/dist-esm/storage-blob/src/utils/constants.js +2 -2
  84. package/dist-esm/storage-blob/src/utils/constants.js.map +1 -1
  85. package/dist-esm/storage-blob/src/utils/tracing.js +18 -5
  86. package/dist-esm/storage-blob/src/utils/tracing.js.map +1 -1
  87. package/dist-esm/storage-blob/src/utils/utils.common.js +42 -83
  88. package/dist-esm/storage-blob/src/utils/utils.common.js.map +1 -1
  89. package/package.json +15 -22
  90. package/types/3.1/storage-blob.d.ts +625 -2332
  91. package/types/latest/storage-blob.d.ts +606 -2493
  92. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/appendBlob.js +0 -9
  93. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/appendBlob.js.map +0 -1
  94. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blob.js +0 -9
  95. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blob.js.map +0 -1
  96. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blockBlob.js +0 -9
  97. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/blockBlob.js.map +0 -1
  98. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/container.js +0 -9
  99. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/container.js.map +0 -1
  100. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/index.js +0 -14
  101. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/index.js.map +0 -1
  102. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/pageBlob.js +0 -9
  103. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/pageBlob.js.map +0 -1
  104. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/service.js +0 -9
  105. package/dist-esm/storage-blob/src/generated/src/operationsInterfaces/service.js.map +0 -1
  106. package/dist-esm/storage-blob/src/policies/PathParameterWorkaroundPolicy.js +0 -25
  107. package/dist-esm/storage-blob/src/policies/PathParameterWorkaroundPolicy.js.map +0 -1
  108. package/dist-esm/storage-blob/src/policies/RequestPolicy.js +0 -40
  109. package/dist-esm/storage-blob/src/policies/RequestPolicy.js.map +0 -1
  110. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js +0 -31
  111. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js.map +0 -1
  112. package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js +0 -165
  113. package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js.map +0 -1
  114. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js +0 -18
  115. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js.map +0 -1
  116. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js +0 -131
  117. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
@@ -1,16 +1,17 @@
1
1
  import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- import { isTokenCredential } from "@azure/core-auth";
5
- import { getDefaultProxySettings } from "@azure/core-rest-pipeline";
6
- import { isNode } from "@azure/core-util";
4
+ import { isTokenCredential, isNode, getDefaultProxySettings, } from "@azure/core-http";
5
+ import { SpanStatusCode } from "@azure/core-tracing";
6
+ import { Container, Service } from "./generated/src/operations";
7
7
  import { newPipeline, isPipelineLike } from "./Pipeline";
8
8
  import { ContainerClient, } from "./ContainerClient";
9
9
  import { appendToURLPath, appendToURLQuery, extractConnectionStringParts, toTags, } from "./utils/utils.common";
10
10
  import { StorageSharedKeyCredential } from "./credentials/StorageSharedKeyCredential";
11
11
  import { AnonymousCredential } from "./credentials/AnonymousCredential";
12
- import { truncatedISO8061Date, assertResponse } from "./utils/utils.common";
13
- import { tracingClient } from "./utils/tracing";
12
+ import "@azure/core-paging";
13
+ import { truncatedISO8061Date } from "./utils/utils.common";
14
+ import { convertTracingToRequestOptionsBase, createSpan } from "./utils/tracing";
14
15
  import { BlobBatchClient } from "./BlobBatchClient";
15
16
  import { StorageClient } from "./StorageClient";
16
17
  import { AccountSASPermissions } from "./sas/AccountSASPermissions";
@@ -39,7 +40,7 @@ export class BlobServiceClient extends StorageClient {
39
40
  pipeline = newPipeline(new AnonymousCredential(), options);
40
41
  }
41
42
  super(url, pipeline);
42
- this.serviceContext = this.storageClientContext.service;
43
+ this.serviceContext = new Service(this.storageClientContext);
43
44
  }
44
45
  /**
45
46
  *
@@ -103,14 +104,25 @@ export class BlobServiceClient extends StorageClient {
103
104
  * @returns Container creation response and the corresponding container client.
104
105
  */
105
106
  async createContainer(containerName, options = {}) {
106
- return tracingClient.withSpan("BlobServiceClient-createContainer", options, async (updatedOptions) => {
107
+ const { span, updatedOptions } = createSpan("BlobServiceClient-createContainer", options);
108
+ try {
107
109
  const containerClient = this.getContainerClient(containerName);
108
110
  const containerCreateResponse = await containerClient.create(updatedOptions);
109
111
  return {
110
112
  containerClient,
111
113
  containerCreateResponse,
112
114
  };
113
- });
115
+ }
116
+ catch (e) {
117
+ span.setStatus({
118
+ code: SpanStatusCode.ERROR,
119
+ message: e.message,
120
+ });
121
+ throw e;
122
+ }
123
+ finally {
124
+ span.end();
125
+ }
114
126
  }
115
127
  /**
116
128
  * Deletes a Blob container.
@@ -120,10 +132,21 @@ export class BlobServiceClient extends StorageClient {
120
132
  * @returns Container deletion response.
121
133
  */
122
134
  async deleteContainer(containerName, options = {}) {
123
- return tracingClient.withSpan("BlobServiceClient-deleteContainer", options, async (updatedOptions) => {
135
+ const { span, updatedOptions } = createSpan("BlobServiceClient-deleteContainer", options);
136
+ try {
124
137
  const containerClient = this.getContainerClient(containerName);
125
- return containerClient.delete(updatedOptions);
126
- });
138
+ return await containerClient.delete(updatedOptions);
139
+ }
140
+ catch (e) {
141
+ span.setStatus({
142
+ code: SpanStatusCode.ERROR,
143
+ message: e.message,
144
+ });
145
+ throw e;
146
+ }
147
+ finally {
148
+ span.end();
149
+ }
127
150
  }
128
151
  /**
129
152
  * Restore a previously deleted Blob container.
@@ -135,17 +158,25 @@ export class BlobServiceClient extends StorageClient {
135
158
  * @returns Container deletion response.
136
159
  */
137
160
  async undeleteContainer(deletedContainerName, deletedContainerVersion, options = {}) {
138
- return tracingClient.withSpan("BlobServiceClient-undeleteContainer", options, async (updatedOptions) => {
161
+ const { span, updatedOptions } = createSpan("BlobServiceClient-undeleteContainer", options);
162
+ try {
139
163
  const containerClient = this.getContainerClient(options.destinationContainerName || deletedContainerName);
140
164
  // Hack to access a protected member.
141
- const containerContext = containerClient["storageClientContext"].container;
142
- const containerUndeleteResponse = assertResponse(await containerContext.restore({
143
- deletedContainerName,
144
- deletedContainerVersion,
145
- tracingOptions: updatedOptions.tracingOptions,
146
- }));
165
+ const containerContext = new Container(containerClient["storageClientContext"]);
166
+ const containerUndeleteResponse = await containerContext.restore(Object.assign({ deletedContainerName,
167
+ deletedContainerVersion }, updatedOptions));
147
168
  return { containerClient, containerUndeleteResponse };
148
- });
169
+ }
170
+ catch (e) {
171
+ span.setStatus({
172
+ code: SpanStatusCode.ERROR,
173
+ message: e.message,
174
+ });
175
+ throw e;
176
+ }
177
+ finally {
178
+ span.end();
179
+ }
149
180
  }
150
181
  /**
151
182
  * Rename an existing Blob Container.
@@ -157,14 +188,25 @@ export class BlobServiceClient extends StorageClient {
157
188
  /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
158
189
  // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready.
159
190
  async renameContainer(sourceContainerName, destinationContainerName, options = {}) {
160
- return tracingClient.withSpan("BlobServiceClient-renameContainer", options, async (updatedOptions) => {
161
- var _a;
191
+ var _a;
192
+ const { span, updatedOptions } = createSpan("BlobServiceClient-renameContainer", options);
193
+ try {
162
194
  const containerClient = this.getContainerClient(destinationContainerName);
163
195
  // Hack to access a protected member.
164
- const containerContext = containerClient["storageClientContext"].container;
165
- const containerRenameResponse = assertResponse(await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId })));
196
+ const containerContext = new Container(containerClient["storageClientContext"]);
197
+ const containerRenameResponse = await containerContext.rename(sourceContainerName, Object.assign(Object.assign({}, updatedOptions), { sourceLeaseId: (_a = options.sourceCondition) === null || _a === void 0 ? void 0 : _a.leaseId }));
166
198
  return { containerClient, containerRenameResponse };
167
- });
199
+ }
200
+ catch (e) {
201
+ span.setStatus({
202
+ code: SpanStatusCode.ERROR,
203
+ message: e.message,
204
+ });
205
+ throw e;
206
+ }
207
+ finally {
208
+ span.end();
209
+ }
168
210
  }
169
211
  /**
170
212
  * Gets the properties of a storage account’s Blob service, including properties
@@ -175,12 +217,20 @@ export class BlobServiceClient extends StorageClient {
175
217
  * @returns Response data for the Service Get Properties operation.
176
218
  */
177
219
  async getProperties(options = {}) {
178
- return tracingClient.withSpan("BlobServiceClient-getProperties", options, async (updatedOptions) => {
179
- return assertResponse(await this.serviceContext.getProperties({
180
- abortSignal: options.abortSignal,
181
- tracingOptions: updatedOptions.tracingOptions,
182
- }));
183
- });
220
+ const { span, updatedOptions } = createSpan("BlobServiceClient-getProperties", options);
221
+ try {
222
+ return await this.serviceContext.getProperties(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
223
+ }
224
+ catch (e) {
225
+ span.setStatus({
226
+ code: SpanStatusCode.ERROR,
227
+ message: e.message,
228
+ });
229
+ throw e;
230
+ }
231
+ finally {
232
+ span.end();
233
+ }
184
234
  }
185
235
  /**
186
236
  * Sets properties for a storage account’s Blob service endpoint, including properties
@@ -192,12 +242,20 @@ export class BlobServiceClient extends StorageClient {
192
242
  * @returns Response data for the Service Set Properties operation.
193
243
  */
194
244
  async setProperties(properties, options = {}) {
195
- return tracingClient.withSpan("BlobServiceClient-setProperties", options, async (updatedOptions) => {
196
- return assertResponse(await this.serviceContext.setProperties(properties, {
197
- abortSignal: options.abortSignal,
198
- tracingOptions: updatedOptions.tracingOptions,
199
- }));
200
- });
245
+ const { span, updatedOptions } = createSpan("BlobServiceClient-setProperties", options);
246
+ try {
247
+ return await this.serviceContext.setProperties(properties, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
248
+ }
249
+ catch (e) {
250
+ span.setStatus({
251
+ code: SpanStatusCode.ERROR,
252
+ message: e.message,
253
+ });
254
+ throw e;
255
+ }
256
+ finally {
257
+ span.end();
258
+ }
201
259
  }
202
260
  /**
203
261
  * Retrieves statistics related to replication for the Blob service. It is only
@@ -209,12 +267,20 @@ export class BlobServiceClient extends StorageClient {
209
267
  * @returns Response data for the Service Get Statistics operation.
210
268
  */
211
269
  async getStatistics(options = {}) {
212
- return tracingClient.withSpan("BlobServiceClient-getStatistics", options, async (updatedOptions) => {
213
- return assertResponse(await this.serviceContext.getStatistics({
214
- abortSignal: options.abortSignal,
215
- tracingOptions: updatedOptions.tracingOptions,
216
- }));
217
- });
270
+ const { span, updatedOptions } = createSpan("BlobServiceClient-getStatistics", options);
271
+ try {
272
+ return await this.serviceContext.getStatistics(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
273
+ }
274
+ catch (e) {
275
+ span.setStatus({
276
+ code: SpanStatusCode.ERROR,
277
+ message: e.message,
278
+ });
279
+ throw e;
280
+ }
281
+ finally {
282
+ span.end();
283
+ }
218
284
  }
219
285
  /**
220
286
  * The Get Account Information operation returns the sku name and account kind
@@ -227,12 +293,20 @@ export class BlobServiceClient extends StorageClient {
227
293
  * @returns Response data for the Service Get Account Info operation.
228
294
  */
229
295
  async getAccountInfo(options = {}) {
230
- return tracingClient.withSpan("BlobServiceClient-getAccountInfo", options, async (updatedOptions) => {
231
- return assertResponse(await this.serviceContext.getAccountInfo({
232
- abortSignal: options.abortSignal,
233
- tracingOptions: updatedOptions.tracingOptions,
234
- }));
235
- });
296
+ const { span, updatedOptions } = createSpan("BlobServiceClient-getAccountInfo", options);
297
+ try {
298
+ return await this.serviceContext.getAccountInfo(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
299
+ }
300
+ catch (e) {
301
+ span.setStatus({
302
+ code: SpanStatusCode.ERROR,
303
+ message: e.message,
304
+ });
305
+ throw e;
306
+ }
307
+ finally {
308
+ span.end();
309
+ }
236
310
  }
237
311
  /**
238
312
  * Returns a list of the containers under the specified account.
@@ -249,9 +323,20 @@ export class BlobServiceClient extends StorageClient {
249
323
  * @returns Response data for the Service List Container Segment operation.
250
324
  */
251
325
  async listContainersSegment(marker, options = {}) {
252
- return tracingClient.withSpan("BlobServiceClient-listContainersSegment", options, async (updatedOptions) => {
253
- return assertResponse(await this.serviceContext.listContainersSegment(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include, tracingOptions: updatedOptions.tracingOptions })));
254
- });
326
+ const { span, updatedOptions } = createSpan("BlobServiceClient-listContainersSegment", options);
327
+ try {
328
+ return await this.serviceContext.listContainersSegment(Object.assign(Object.assign(Object.assign({ abortSignal: options.abortSignal, marker }, options), { include: typeof options.include === "string" ? [options.include] : options.include }), convertTracingToRequestOptionsBase(updatedOptions)));
329
+ }
330
+ catch (e) {
331
+ span.setStatus({
332
+ code: SpanStatusCode.ERROR,
333
+ message: e.message,
334
+ });
335
+ throw e;
336
+ }
337
+ finally {
338
+ span.end();
339
+ }
255
340
  }
256
341
  /**
257
342
  * The Filter Blobs operation enables callers to list blobs across all containers whose tags
@@ -272,14 +357,9 @@ export class BlobServiceClient extends StorageClient {
272
357
  * @param options - Options to find blobs by tags.
273
358
  */
274
359
  async findBlobsByTagsSegment(tagFilterSqlExpression, marker, options = {}) {
275
- return tracingClient.withSpan("BlobServiceClient-findBlobsByTagsSegment", options, async (updatedOptions) => {
276
- const response = assertResponse(await this.serviceContext.filterBlobs({
277
- abortSignal: options.abortSignal,
278
- where: tagFilterSqlExpression,
279
- marker,
280
- maxPageSize: options.maxPageSize,
281
- tracingOptions: updatedOptions.tracingOptions,
282
- }));
360
+ const { span, updatedOptions } = createSpan("BlobServiceClient-findBlobsByTagsSegment", options);
361
+ try {
362
+ const response = await this.serviceContext.filterBlobs(Object.assign({ abortSignal: options.abortSignal, where: tagFilterSqlExpression, marker, maxPageSize: options.maxPageSize }, convertTracingToRequestOptionsBase(updatedOptions)));
283
363
  const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => {
284
364
  var _a;
285
365
  let tagValue = "";
@@ -289,7 +369,17 @@ export class BlobServiceClient extends StorageClient {
289
369
  return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue });
290
370
  }) });
291
371
  return wrappedResponse;
292
- });
372
+ }
373
+ catch (e) {
374
+ span.setStatus({
375
+ code: SpanStatusCode.ERROR,
376
+ message: e.message,
377
+ });
378
+ throw e;
379
+ }
380
+ finally {
381
+ span.end();
382
+ }
293
383
  }
294
384
  /**
295
385
  * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse.
@@ -626,14 +716,12 @@ export class BlobServiceClient extends StorageClient {
626
716
  * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time
627
717
  */
628
718
  async getUserDelegationKey(startsOn, expiresOn, options = {}) {
629
- return tracingClient.withSpan("BlobServiceClient-getUserDelegationKey", options, async (updatedOptions) => {
630
- const response = assertResponse(await this.serviceContext.getUserDelegationKey({
719
+ const { span, updatedOptions } = createSpan("BlobServiceClient-getUserDelegationKey", options);
720
+ try {
721
+ const response = await this.serviceContext.getUserDelegationKey({
631
722
  startsOn: truncatedISO8061Date(startsOn, false),
632
723
  expiresOn: truncatedISO8061Date(expiresOn, false),
633
- }, {
634
- abortSignal: options.abortSignal,
635
- tracingOptions: updatedOptions.tracingOptions,
636
- }));
724
+ }, Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)));
637
725
  const userDelegationKey = {
638
726
  signedObjectId: response.signedObjectId,
639
727
  signedTenantId: response.signedTenantId,
@@ -645,7 +733,17 @@ export class BlobServiceClient extends StorageClient {
645
733
  };
646
734
  const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey);
647
735
  return res;
648
- });
736
+ }
737
+ catch (e) {
738
+ span.setStatus({
739
+ code: SpanStatusCode.ERROR,
740
+ message: e.message,
741
+ });
742
+ throw e;
743
+ }
744
+ finally {
745
+ span.end();
746
+ }
649
747
  }
650
748
  /**
651
749
  * Creates a BlobBatchClient object to conduct batch operations.