@azure/storage-blob 12.32.0 → 12.33.0

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 (119) hide show
  1. package/README.md +5 -16
  2. package/dist/browser/Clients.d.ts +16 -32
  3. package/dist/browser/Clients.d.ts.map +1 -1
  4. package/dist/browser/Clients.js +10 -32
  5. package/dist/browser/Clients.js.map +1 -1
  6. package/dist/browser/generated/src/models/index.d.ts +6 -2
  7. package/dist/browser/generated/src/models/index.d.ts.map +1 -1
  8. package/dist/browser/generated/src/models/index.js.map +1 -1
  9. package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
  10. package/dist/browser/generated/src/models/mappers.js +34 -0
  11. package/dist/browser/generated/src/models/mappers.js.map +1 -1
  12. package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
  13. package/dist/browser/generated/src/models/parameters.js +3 -1
  14. package/dist/browser/generated/src/models/parameters.js.map +1 -1
  15. package/dist/browser/generated/src/storageClient.js +2 -2
  16. package/dist/browser/generated/src/storageClient.js.map +1 -1
  17. package/dist/browser/index.d.ts +1 -0
  18. package/dist/browser/index.d.ts.map +1 -1
  19. package/dist/browser/index.js +1 -0
  20. package/dist/browser/index.js.map +1 -1
  21. package/dist/browser/sas/BlobSASSignatureValues.d.ts +5 -0
  22. package/dist/browser/sas/BlobSASSignatureValues.d.ts.map +1 -1
  23. package/dist/browser/sas/BlobSASSignatureValues.js +166 -36
  24. package/dist/browser/sas/BlobSASSignatureValues.js.map +1 -1
  25. package/dist/browser/sas/SASQueryParameters.d.ts +10 -1
  26. package/dist/browser/sas/SASQueryParameters.d.ts.map +1 -1
  27. package/dist/browser/sas/SASQueryParameters.js +11 -1
  28. package/dist/browser/sas/SASQueryParameters.js.map +1 -1
  29. package/dist/browser/utils/constants.js +2 -2
  30. package/dist/browser/utils/constants.js.map +1 -1
  31. package/dist/browser/utils/utils.common.d.ts.map +1 -1
  32. package/dist/browser/utils/utils.common.js +15 -0
  33. package/dist/browser/utils/utils.common.js.map +1 -1
  34. package/dist/commonjs/Clients.d.ts +16 -32
  35. package/dist/commonjs/Clients.d.ts.map +1 -1
  36. package/dist/commonjs/Clients.js +10 -32
  37. package/dist/commonjs/Clients.js.map +2 -2
  38. package/dist/commonjs/generated/src/models/index.d.ts +6 -2
  39. package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
  40. package/dist/commonjs/generated/src/models/index.js.map +2 -2
  41. package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
  42. package/dist/commonjs/generated/src/models/mappers.js +36 -2
  43. package/dist/commonjs/generated/src/models/mappers.js.map +2 -2
  44. package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
  45. package/dist/commonjs/generated/src/models/parameters.js +5 -3
  46. package/dist/commonjs/generated/src/models/parameters.js.map +2 -2
  47. package/dist/commonjs/generated/src/storageClient.js +2 -2
  48. package/dist/commonjs/generated/src/storageClient.js.map +1 -1
  49. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts +5 -0
  50. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts.map +1 -1
  51. package/dist/commonjs/sas/BlobSASSignatureValues.js +185 -36
  52. package/dist/commonjs/sas/BlobSASSignatureValues.js.map +2 -2
  53. package/dist/commonjs/sas/SASQueryParameters.d.ts +10 -1
  54. package/dist/commonjs/sas/SASQueryParameters.d.ts.map +1 -1
  55. package/dist/commonjs/sas/SASQueryParameters.js +15 -1
  56. package/dist/commonjs/sas/SASQueryParameters.js.map +2 -2
  57. package/dist/commonjs/tsdoc-metadata.json +1 -1
  58. package/dist/commonjs/utils/constants.js +2 -2
  59. package/dist/commonjs/utils/constants.js.map +1 -1
  60. package/dist/commonjs/utils/utils.common.d.ts.map +1 -1
  61. package/dist/commonjs/utils/utils.common.js +14 -0
  62. package/dist/commonjs/utils/utils.common.js.map +2 -2
  63. package/dist/esm/Clients.d.ts +16 -32
  64. package/dist/esm/Clients.d.ts.map +1 -1
  65. package/dist/esm/Clients.js +10 -32
  66. package/dist/esm/Clients.js.map +1 -1
  67. package/dist/esm/generated/src/models/index.d.ts +6 -2
  68. package/dist/esm/generated/src/models/index.d.ts.map +1 -1
  69. package/dist/esm/generated/src/models/index.js.map +1 -1
  70. package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
  71. package/dist/esm/generated/src/models/mappers.js +34 -0
  72. package/dist/esm/generated/src/models/mappers.js.map +1 -1
  73. package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
  74. package/dist/esm/generated/src/models/parameters.js +3 -1
  75. package/dist/esm/generated/src/models/parameters.js.map +1 -1
  76. package/dist/esm/generated/src/storageClient.js +2 -2
  77. package/dist/esm/generated/src/storageClient.js.map +1 -1
  78. package/dist/esm/sas/BlobSASSignatureValues.d.ts +5 -0
  79. package/dist/esm/sas/BlobSASSignatureValues.d.ts.map +1 -1
  80. package/dist/esm/sas/BlobSASSignatureValues.js +166 -36
  81. package/dist/esm/sas/BlobSASSignatureValues.js.map +1 -1
  82. package/dist/esm/sas/SASQueryParameters.d.ts +10 -1
  83. package/dist/esm/sas/SASQueryParameters.d.ts.map +1 -1
  84. package/dist/esm/sas/SASQueryParameters.js +11 -1
  85. package/dist/esm/sas/SASQueryParameters.js.map +1 -1
  86. package/dist/esm/utils/constants.js +2 -2
  87. package/dist/esm/utils/constants.js.map +1 -1
  88. package/dist/esm/utils/utils.common.d.ts.map +1 -1
  89. package/dist/esm/utils/utils.common.js +15 -0
  90. package/dist/esm/utils/utils.common.js.map +1 -1
  91. package/dist/react-native/Clients.d.ts +16 -32
  92. package/dist/react-native/Clients.d.ts.map +1 -1
  93. package/dist/react-native/Clients.js +10 -32
  94. package/dist/react-native/Clients.js.map +1 -1
  95. package/dist/react-native/generated/src/models/index.d.ts +6 -2
  96. package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
  97. package/dist/react-native/generated/src/models/index.js.map +1 -1
  98. package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
  99. package/dist/react-native/generated/src/models/mappers.js +34 -0
  100. package/dist/react-native/generated/src/models/mappers.js.map +1 -1
  101. package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
  102. package/dist/react-native/generated/src/models/parameters.js +3 -1
  103. package/dist/react-native/generated/src/models/parameters.js.map +1 -1
  104. package/dist/react-native/generated/src/storageClient.js +2 -2
  105. package/dist/react-native/generated/src/storageClient.js.map +1 -1
  106. package/dist/react-native/sas/BlobSASSignatureValues.d.ts +5 -0
  107. package/dist/react-native/sas/BlobSASSignatureValues.d.ts.map +1 -1
  108. package/dist/react-native/sas/BlobSASSignatureValues.js +166 -36
  109. package/dist/react-native/sas/BlobSASSignatureValues.js.map +1 -1
  110. package/dist/react-native/sas/SASQueryParameters.d.ts +10 -1
  111. package/dist/react-native/sas/SASQueryParameters.d.ts.map +1 -1
  112. package/dist/react-native/sas/SASQueryParameters.js +11 -1
  113. package/dist/react-native/sas/SASQueryParameters.js.map +1 -1
  114. package/dist/react-native/utils/constants.js +2 -2
  115. package/dist/react-native/utils/constants.js.map +1 -1
  116. package/dist/react-native/utils/utils.common.d.ts.map +1 -1
  117. package/dist/react-native/utils/utils.common.js +15 -0
  118. package/dist/react-native/utils/utils.common.js.map +1 -1
  119. package/package.json +6 -6
@@ -45,7 +45,13 @@ export function generateBlobSASQueryParametersInternal(blobSASSignatureValues, s
45
45
  // https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string
46
46
  if (version >= "2018-11-09") {
47
47
  if (sharedKeyCredential !== undefined) {
48
- return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);
48
+ // Version 2020-02-10 delegation SAS signature construction supports blob name as a virtual directory.
49
+ if (version >= "2020-02-10") {
50
+ return generateBlobSASQueryParameters20200210(blobSASSignatureValues, sharedKeyCredential);
51
+ }
52
+ else {
53
+ return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);
54
+ }
49
55
  }
50
56
  else {
51
57
  // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.
@@ -201,6 +207,85 @@ function generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKe
201
207
  stringToSign: stringToSign,
202
208
  };
203
209
  }
210
+ /**
211
+ * ONLY AVAILABLE IN NODE.JS RUNTIME.
212
+ * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.
213
+ *
214
+ * Creates an instance of SASQueryParameters.
215
+ *
216
+ * Only accepts required settings needed to create a SAS. For optional settings please
217
+ * set corresponding properties directly, such as permissions, startsOn and identifier.
218
+ *
219
+ * WARNING: When identifier is not provided, permissions and expiresOn are required.
220
+ * You MUST assign value to identifier or expiresOn & permissions manually if you initial with
221
+ * this constructor.
222
+ *
223
+ * @param blobSASSignatureValues -
224
+ * @param sharedKeyCredential -
225
+ */
226
+ function generateBlobSASQueryParameters20200210(blobSASSignatureValues, sharedKeyCredential) {
227
+ blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);
228
+ if (!blobSASSignatureValues.identifier &&
229
+ !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)) {
230
+ throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");
231
+ }
232
+ let resource = "c";
233
+ let timestamp = blobSASSignatureValues.snapshotTime;
234
+ let directoryDepth = undefined;
235
+ if (blobSASSignatureValues.blobName) {
236
+ if (blobSASSignatureValues.isDirectory === true) {
237
+ resource = "d";
238
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
239
+ }
240
+ else {
241
+ resource = "b";
242
+ if (blobSASSignatureValues.snapshotTime) {
243
+ resource = "bs";
244
+ }
245
+ else if (blobSASSignatureValues.versionId) {
246
+ resource = "bv";
247
+ timestamp = blobSASSignatureValues.versionId;
248
+ }
249
+ }
250
+ }
251
+ // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
252
+ let verifiedPermissions;
253
+ if (blobSASSignatureValues.permissions) {
254
+ if (blobSASSignatureValues.blobName) {
255
+ verifiedPermissions = BlobSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
256
+ }
257
+ else {
258
+ verifiedPermissions = ContainerSASPermissions.parse(blobSASSignatureValues.permissions.toString()).toString();
259
+ }
260
+ }
261
+ // Signature is generated on the un-url-encoded values.
262
+ const stringToSign = [
263
+ verifiedPermissions ? verifiedPermissions : "",
264
+ blobSASSignatureValues.startsOn
265
+ ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)
266
+ : "",
267
+ blobSASSignatureValues.expiresOn
268
+ ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)
269
+ : "",
270
+ getCanonicalName(sharedKeyCredential.accountName, blobSASSignatureValues.containerName, blobSASSignatureValues.blobName),
271
+ blobSASSignatureValues.identifier,
272
+ blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : "",
273
+ blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : "",
274
+ blobSASSignatureValues.version,
275
+ resource,
276
+ timestamp,
277
+ blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : "",
278
+ blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : "",
279
+ blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : "",
280
+ blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : "",
281
+ blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : "",
282
+ ].join("\n");
283
+ const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
284
+ return {
285
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, undefined, undefined, undefined, undefined, undefined, undefined, undefined, directoryDepth),
286
+ stringToSign: stringToSign,
287
+ };
288
+ }
204
289
  /**
205
290
  * ONLY AVAILABLE IN NODE.JS RUNTIME.
206
291
  * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.
@@ -225,14 +310,21 @@ function generateBlobSASQueryParameters20201206(blobSASSignatureValues, sharedKe
225
310
  }
226
311
  let resource = "c";
227
312
  let timestamp = blobSASSignatureValues.snapshotTime;
313
+ let directoryDepth = undefined;
228
314
  if (blobSASSignatureValues.blobName) {
229
- resource = "b";
230
- if (blobSASSignatureValues.snapshotTime) {
231
- resource = "bs";
315
+ if (blobSASSignatureValues.isDirectory === true) {
316
+ resource = "d";
317
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
232
318
  }
233
- else if (blobSASSignatureValues.versionId) {
234
- resource = "bv";
235
- timestamp = blobSASSignatureValues.versionId;
319
+ else {
320
+ resource = "b";
321
+ if (blobSASSignatureValues.snapshotTime) {
322
+ resource = "bs";
323
+ }
324
+ else if (blobSASSignatureValues.versionId) {
325
+ resource = "bv";
326
+ timestamp = blobSASSignatureValues.versionId;
327
+ }
236
328
  }
237
329
  }
238
330
  // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
@@ -270,7 +362,7 @@ function generateBlobSASQueryParameters20201206(blobSASSignatureValues, sharedKe
270
362
  ].join("\n");
271
363
  const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);
272
364
  return {
273
- sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, undefined, undefined, undefined, blobSASSignatureValues.encryptionScope),
365
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, undefined, undefined, undefined, blobSASSignatureValues.encryptionScope, undefined, undefined, undefined, directoryDepth),
274
366
  stringToSign: stringToSign,
275
367
  };
276
368
  }
@@ -375,14 +467,21 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD
375
467
  }
376
468
  let resource = "c";
377
469
  let timestamp = blobSASSignatureValues.snapshotTime;
470
+ let directoryDepth = undefined;
378
471
  if (blobSASSignatureValues.blobName) {
379
- resource = "b";
380
- if (blobSASSignatureValues.snapshotTime) {
381
- resource = "bs";
472
+ if (blobSASSignatureValues.isDirectory === true) {
473
+ resource = "d";
474
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
382
475
  }
383
- else if (blobSASSignatureValues.versionId) {
384
- resource = "bv";
385
- timestamp = blobSASSignatureValues.versionId;
476
+ else {
477
+ resource = "b";
478
+ if (blobSASSignatureValues.snapshotTime) {
479
+ resource = "bs";
480
+ }
481
+ else if (blobSASSignatureValues.versionId) {
482
+ resource = "bv";
483
+ timestamp = blobSASSignatureValues.versionId;
484
+ }
386
485
  }
387
486
  }
388
487
  // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
@@ -431,7 +530,7 @@ function generateBlobSASQueryParametersUDK20200210(blobSASSignatureValues, userD
431
530
  ].join("\n");
432
531
  const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
433
532
  return {
434
- sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId),
533
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, undefined, undefined, undefined, undefined, directoryDepth),
435
534
  stringToSign: stringToSign,
436
535
  };
437
536
  }
@@ -457,14 +556,21 @@ function generateBlobSASQueryParametersUDK20201206(blobSASSignatureValues, userD
457
556
  }
458
557
  let resource = "c";
459
558
  let timestamp = blobSASSignatureValues.snapshotTime;
559
+ let directoryDepth = undefined;
460
560
  if (blobSASSignatureValues.blobName) {
461
- resource = "b";
462
- if (blobSASSignatureValues.snapshotTime) {
463
- resource = "bs";
561
+ if (blobSASSignatureValues.isDirectory === true) {
562
+ resource = "d";
563
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
464
564
  }
465
- else if (blobSASSignatureValues.versionId) {
466
- resource = "bv";
467
- timestamp = blobSASSignatureValues.versionId;
565
+ else {
566
+ resource = "b";
567
+ if (blobSASSignatureValues.snapshotTime) {
568
+ resource = "bs";
569
+ }
570
+ else if (blobSASSignatureValues.versionId) {
571
+ resource = "bv";
572
+ timestamp = blobSASSignatureValues.versionId;
573
+ }
468
574
  }
469
575
  }
470
576
  // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
@@ -514,7 +620,7 @@ function generateBlobSASQueryParametersUDK20201206(blobSASSignatureValues, userD
514
620
  ].join("\n");
515
621
  const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
516
622
  return {
517
- sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope),
623
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope, undefined, undefined, undefined, directoryDepth),
518
624
  stringToSign: stringToSign,
519
625
  };
520
626
  }
@@ -540,14 +646,21 @@ function generateBlobSASQueryParametersUDK20250705(blobSASSignatureValues, userD
540
646
  }
541
647
  let resource = "c";
542
648
  let timestamp = blobSASSignatureValues.snapshotTime;
649
+ let directoryDepth = undefined;
543
650
  if (blobSASSignatureValues.blobName) {
544
- resource = "b";
545
- if (blobSASSignatureValues.snapshotTime) {
546
- resource = "bs";
651
+ if (blobSASSignatureValues.isDirectory === true) {
652
+ resource = "d";
653
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
547
654
  }
548
- else if (blobSASSignatureValues.versionId) {
549
- resource = "bv";
550
- timestamp = blobSASSignatureValues.versionId;
655
+ else {
656
+ resource = "b";
657
+ if (blobSASSignatureValues.snapshotTime) {
658
+ resource = "bs";
659
+ }
660
+ else if (blobSASSignatureValues.versionId) {
661
+ resource = "bv";
662
+ timestamp = blobSASSignatureValues.versionId;
663
+ }
551
664
  }
552
665
  }
553
666
  // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
@@ -599,7 +712,7 @@ function generateBlobSASQueryParametersUDK20250705(blobSASSignatureValues, userD
599
712
  ].join("\n");
600
713
  const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
601
714
  return {
602
- sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope, blobSASSignatureValues.delegatedUserObjectId),
715
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope, blobSASSignatureValues.delegatedUserObjectId, undefined, undefined, directoryDepth),
603
716
  stringToSign: stringToSign,
604
717
  };
605
718
  }
@@ -625,14 +738,21 @@ function generateBlobSASQueryParametersUDK20260406(blobSASSignatureValues, userD
625
738
  }
626
739
  let resource = "c";
627
740
  let timestamp = blobSASSignatureValues.snapshotTime;
741
+ let directoryDepth = undefined;
628
742
  if (blobSASSignatureValues.blobName) {
629
- resource = "b";
630
- if (blobSASSignatureValues.snapshotTime) {
631
- resource = "bs";
743
+ if (blobSASSignatureValues.isDirectory === true) {
744
+ resource = "d";
745
+ directoryDepth = trimBlobName(blobSASSignatureValues.blobName).split("/").length;
632
746
  }
633
- else if (blobSASSignatureValues.versionId) {
634
- resource = "bv";
635
- timestamp = blobSASSignatureValues.versionId;
747
+ else {
748
+ resource = "b";
749
+ if (blobSASSignatureValues.snapshotTime) {
750
+ resource = "bs";
751
+ }
752
+ else if (blobSASSignatureValues.versionId) {
753
+ resource = "bv";
754
+ timestamp = blobSASSignatureValues.versionId;
755
+ }
636
756
  }
637
757
  }
638
758
  // Calling parse and toString guarantees the proper ordering and throws on invalid characters.
@@ -686,7 +806,7 @@ function generateBlobSASQueryParametersUDK20260406(blobSASSignatureValues, userD
686
806
  ].join("\n");
687
807
  const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
688
808
  return {
689
- sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope, blobSASSignatureValues.delegatedUserObjectId, getKeysOfRequestHeaders(blobSASSignatureValues.requestHeaders), getKeysOfRequestHeaders(blobSASSignatureValues.requestQueryParameters)),
809
+ sasQueryParameters: new SASQueryParameters(blobSASSignatureValues.version, signature, verifiedPermissions, undefined, undefined, blobSASSignatureValues.protocol, blobSASSignatureValues.startsOn, blobSASSignatureValues.expiresOn, blobSASSignatureValues.ipRange, blobSASSignatureValues.identifier, resource, blobSASSignatureValues.cacheControl, blobSASSignatureValues.contentDisposition, blobSASSignatureValues.contentEncoding, blobSASSignatureValues.contentLanguage, blobSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, blobSASSignatureValues.preauthorizedAgentObjectId, blobSASSignatureValues.correlationId, blobSASSignatureValues.encryptionScope, blobSASSignatureValues.delegatedUserObjectId, getKeysOfRequestHeaders(blobSASSignatureValues.requestHeaders), getKeysOfRequestHeaders(blobSASSignatureValues.requestQueryParameters), directoryDepth),
690
810
  stringToSign: stringToSign,
691
811
  };
692
812
  }
@@ -794,4 +914,14 @@ function SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues) {
794
914
  blobSASSignatureValues.version = version;
795
915
  return blobSASSignatureValues;
796
916
  }
917
+ function trimBlobName(blobName) {
918
+ let internalName = blobName;
919
+ while (internalName.startsWith("/")) {
920
+ internalName = internalName.substring(1);
921
+ }
922
+ while (internalName.endsWith("/")) {
923
+ internalName = internalName.substring(0, internalName.length - 1);
924
+ }
925
+ return internalName;
926
+ }
797
927
  //# sourceMappingURL=BlobSASSignatureValues.js.map