@azure/storage-blob 12.28.0-alpha.20250717.2 → 12.28.0-alpha.20250718.2

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 (340) hide show
  1. package/dist/browser/BatchResponseParser.js +5 -0
  2. package/dist/browser/BatchResponseParser.js.map +1 -1
  3. package/dist/browser/BlobBatch.js +10 -1
  4. package/dist/browser/BlobBatch.js.map +1 -1
  5. package/dist/browser/BlobBatchClient.js +4 -1
  6. package/dist/browser/BlobBatchClient.js.map +1 -1
  7. package/dist/browser/BlobLeaseClient.js +39 -30
  8. package/dist/browser/BlobLeaseClient.js.map +1 -1
  9. package/dist/browser/BlobQueryResponse-browser.mjs.map +1 -1
  10. package/dist/browser/BlobQueryResponse.js +1 -0
  11. package/dist/browser/BlobServiceClient.js +86 -81
  12. package/dist/browser/BlobServiceClient.js.map +1 -1
  13. package/dist/browser/Clients.js +351 -196
  14. package/dist/browser/Clients.js.map +1 -1
  15. package/dist/browser/ContainerClient.js +182 -135
  16. package/dist/browser/ContainerClient.js.map +1 -1
  17. package/dist/browser/PageBlobRangeResponse.js +10 -3
  18. package/dist/browser/PageBlobRangeResponse.js.map +1 -1
  19. package/dist/browser/Pipeline.js +27 -10
  20. package/dist/browser/Pipeline.js.map +1 -1
  21. package/dist/browser/StorageClient.js +23 -0
  22. package/dist/browser/StorageClient.js.map +1 -1
  23. package/dist/browser/StorageContextClient.js +1 -1
  24. package/dist/browser/StorageContextClient.js.map +1 -1
  25. package/dist/browser/StorageRetryPolicyFactory.js +1 -0
  26. package/dist/browser/StorageRetryPolicyFactory.js.map +1 -1
  27. package/dist/browser/generated/src/operations/appendBlob.js +1 -0
  28. package/dist/browser/generated/src/operations/appendBlob.js.map +1 -1
  29. package/dist/browser/generated/src/operations/blob.js +1 -0
  30. package/dist/browser/generated/src/operations/blob.js.map +1 -1
  31. package/dist/browser/generated/src/operations/blockBlob.js +1 -0
  32. package/dist/browser/generated/src/operations/blockBlob.js.map +1 -1
  33. package/dist/browser/generated/src/operations/container.js +1 -0
  34. package/dist/browser/generated/src/operations/container.js.map +1 -1
  35. package/dist/browser/generated/src/operations/pageBlob.js +1 -0
  36. package/dist/browser/generated/src/operations/pageBlob.js.map +1 -1
  37. package/dist/browser/generated/src/operations/service.js +1 -0
  38. package/dist/browser/generated/src/operations/service.js.map +1 -1
  39. package/dist/browser/generated/src/storageClient.js +15 -3
  40. package/dist/browser/generated/src/storageClient.js.map +1 -1
  41. package/dist/browser/internal-avro/AvroParser.js +7 -1
  42. package/dist/browser/internal-avro/AvroParser.js.map +1 -1
  43. package/dist/browser/internal-avro/AvroReadableFromBlob.js +2 -0
  44. package/dist/browser/internal-avro/AvroReadableFromBlob.js.map +1 -1
  45. package/dist/browser/internal-avro/AvroReadableFromStream.js +3 -2
  46. package/dist/browser/internal-avro/AvroReadableFromStream.js.map +1 -1
  47. package/dist/browser/internal-avro/AvroReader.js +44 -34
  48. package/dist/browser/internal-avro/AvroReader.js.map +1 -1
  49. package/dist/browser/policies/RequestPolicy.js +2 -0
  50. package/dist/browser/policies/RequestPolicy.js.map +1 -1
  51. package/dist/browser/policies/StorageRetryPolicy.js +5 -1
  52. package/dist/browser/policies/StorageRetryPolicy.js.map +1 -1
  53. package/dist/browser/policies/StorageRetryPolicyV2.js +10 -12
  54. package/dist/browser/policies/StorageRetryPolicyV2.js.map +1 -1
  55. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js +4 -0
  56. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  57. package/dist/browser/pollers/BlobStartCopyFromUrlPoller.js +7 -3
  58. package/dist/browser/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  59. package/dist/browser/sas/AccountSASPermissions.js +52 -54
  60. package/dist/browser/sas/AccountSASPermissions.js.map +1 -1
  61. package/dist/browser/sas/AccountSASResourceTypes.js +12 -14
  62. package/dist/browser/sas/AccountSASResourceTypes.js.map +1 -1
  63. package/dist/browser/sas/AccountSASServices.js +16 -18
  64. package/dist/browser/sas/AccountSASServices.js.map +1 -1
  65. package/dist/browser/sas/BlobSASPermissions.js +44 -46
  66. package/dist/browser/sas/BlobSASPermissions.js.map +1 -1
  67. package/dist/browser/sas/ContainerSASPermissions.js +52 -54
  68. package/dist/browser/sas/ContainerSASPermissions.js.map +1 -1
  69. package/dist/browser/sas/SASQueryParameters.js +117 -0
  70. package/dist/browser/sas/SASQueryParameters.js.map +1 -1
  71. package/dist/browser/utils/Batch.js +29 -21
  72. package/dist/browser/utils/Batch.js.map +1 -1
  73. package/dist/browser/utils/BlobQuickQueryStream.js +6 -1
  74. package/dist/browser/utils/BlobQuickQueryStream.js.map +1 -1
  75. package/dist/browser/utils/Mutex.js +2 -2
  76. package/dist/browser/utils/Mutex.js.map +1 -1
  77. package/dist/browser/utils/RetriableReadableStream.js +70 -62
  78. package/dist/browser/utils/RetriableReadableStream.js.map +1 -1
  79. package/dist/browser/utils/utils.common.js +24 -11
  80. package/dist/browser/utils/utils.common.js.map +1 -1
  81. package/dist/commonjs/BatchResponseParser.js +5 -0
  82. package/dist/commonjs/BatchResponseParser.js.map +1 -1
  83. package/dist/commonjs/BlobBatch.js +10 -1
  84. package/dist/commonjs/BlobBatch.js.map +1 -1
  85. package/dist/commonjs/BlobBatchClient.js +4 -1
  86. package/dist/commonjs/BlobBatchClient.js.map +1 -1
  87. package/dist/commonjs/BlobDownloadResponse.js +2 -0
  88. package/dist/commonjs/BlobDownloadResponse.js.map +1 -1
  89. package/dist/commonjs/BlobLeaseClient.js +39 -30
  90. package/dist/commonjs/BlobLeaseClient.js.map +1 -1
  91. package/dist/commonjs/BlobQueryResponse.js +2 -0
  92. package/dist/commonjs/BlobQueryResponse.js.map +1 -1
  93. package/dist/commonjs/BlobServiceClient.js +86 -81
  94. package/dist/commonjs/BlobServiceClient.js.map +1 -1
  95. package/dist/commonjs/Clients.js +351 -196
  96. package/dist/commonjs/Clients.js.map +1 -1
  97. package/dist/commonjs/ContainerClient.js +182 -135
  98. package/dist/commonjs/ContainerClient.js.map +1 -1
  99. package/dist/commonjs/PageBlobRangeResponse.js +10 -3
  100. package/dist/commonjs/PageBlobRangeResponse.js.map +1 -1
  101. package/dist/commonjs/Pipeline.js +27 -10
  102. package/dist/commonjs/Pipeline.js.map +1 -1
  103. package/dist/commonjs/StorageClient.js +23 -0
  104. package/dist/commonjs/StorageClient.js.map +1 -1
  105. package/dist/commonjs/StorageContextClient.js +1 -1
  106. package/dist/commonjs/StorageContextClient.js.map +1 -1
  107. package/dist/commonjs/StorageRetryPolicyFactory.js +1 -0
  108. package/dist/commonjs/StorageRetryPolicyFactory.js.map +1 -1
  109. package/dist/commonjs/credentials/StorageSharedKeyCredential.js +8 -0
  110. package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +1 -1
  111. package/dist/commonjs/credentials/UserDelegationKeyCredential.js +12 -0
  112. package/dist/commonjs/credentials/UserDelegationKeyCredential.js.map +1 -1
  113. package/dist/commonjs/generated/src/operations/appendBlob.js +1 -0
  114. package/dist/commonjs/generated/src/operations/appendBlob.js.map +1 -1
  115. package/dist/commonjs/generated/src/operations/blob.js +1 -0
  116. package/dist/commonjs/generated/src/operations/blob.js.map +1 -1
  117. package/dist/commonjs/generated/src/operations/blockBlob.js +1 -0
  118. package/dist/commonjs/generated/src/operations/blockBlob.js.map +1 -1
  119. package/dist/commonjs/generated/src/operations/container.js +1 -0
  120. package/dist/commonjs/generated/src/operations/container.js.map +1 -1
  121. package/dist/commonjs/generated/src/operations/pageBlob.js +1 -0
  122. package/dist/commonjs/generated/src/operations/pageBlob.js.map +1 -1
  123. package/dist/commonjs/generated/src/operations/service.js +1 -0
  124. package/dist/commonjs/generated/src/operations/service.js.map +1 -1
  125. package/dist/commonjs/generated/src/storageClient.js +15 -3
  126. package/dist/commonjs/generated/src/storageClient.js.map +1 -1
  127. package/dist/commonjs/internal-avro/AvroParser.js +7 -1
  128. package/dist/commonjs/internal-avro/AvroParser.js.map +1 -1
  129. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js +2 -0
  130. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js.map +1 -1
  131. package/dist/commonjs/internal-avro/AvroReadableFromStream.js +3 -2
  132. package/dist/commonjs/internal-avro/AvroReadableFromStream.js.map +1 -1
  133. package/dist/commonjs/internal-avro/AvroReader.js +44 -34
  134. package/dist/commonjs/internal-avro/AvroReader.js.map +1 -1
  135. package/dist/commonjs/policies/RequestPolicy.js +2 -0
  136. package/dist/commonjs/policies/RequestPolicy.js.map +1 -1
  137. package/dist/commonjs/policies/StorageRetryPolicy.js +5 -1
  138. package/dist/commonjs/policies/StorageRetryPolicy.js.map +1 -1
  139. package/dist/commonjs/policies/StorageRetryPolicyV2.js +10 -12
  140. package/dist/commonjs/policies/StorageRetryPolicyV2.js.map +1 -1
  141. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js +4 -0
  142. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  143. package/dist/commonjs/pollers/BlobStartCopyFromUrlPoller.js +7 -3
  144. package/dist/commonjs/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  145. package/dist/commonjs/sas/AccountSASPermissions.js +52 -54
  146. package/dist/commonjs/sas/AccountSASPermissions.js.map +1 -1
  147. package/dist/commonjs/sas/AccountSASResourceTypes.js +12 -14
  148. package/dist/commonjs/sas/AccountSASResourceTypes.js.map +1 -1
  149. package/dist/commonjs/sas/AccountSASServices.js +16 -18
  150. package/dist/commonjs/sas/AccountSASServices.js.map +1 -1
  151. package/dist/commonjs/sas/BlobSASPermissions.js +44 -46
  152. package/dist/commonjs/sas/BlobSASPermissions.js.map +1 -1
  153. package/dist/commonjs/sas/ContainerSASPermissions.js +52 -54
  154. package/dist/commonjs/sas/ContainerSASPermissions.js.map +1 -1
  155. package/dist/commonjs/sas/SASQueryParameters.js +117 -0
  156. package/dist/commonjs/sas/SASQueryParameters.js.map +1 -1
  157. package/dist/commonjs/tsdoc-metadata.json +11 -11
  158. package/dist/commonjs/utils/Batch.js +29 -21
  159. package/dist/commonjs/utils/Batch.js.map +1 -1
  160. package/dist/commonjs/utils/BlobQuickQueryStream.js +6 -1
  161. package/dist/commonjs/utils/BlobQuickQueryStream.js.map +1 -1
  162. package/dist/commonjs/utils/Mutex.js +2 -2
  163. package/dist/commonjs/utils/Mutex.js.map +1 -1
  164. package/dist/commonjs/utils/RetriableReadableStream.js +70 -62
  165. package/dist/commonjs/utils/RetriableReadableStream.js.map +1 -1
  166. package/dist/commonjs/utils/utils.common.js +24 -11
  167. package/dist/commonjs/utils/utils.common.js.map +1 -1
  168. package/dist/esm/BatchResponseParser.js +5 -0
  169. package/dist/esm/BatchResponseParser.js.map +1 -1
  170. package/dist/esm/BlobBatch.js +10 -1
  171. package/dist/esm/BlobBatch.js.map +1 -1
  172. package/dist/esm/BlobBatchClient.js +4 -1
  173. package/dist/esm/BlobBatchClient.js.map +1 -1
  174. package/dist/esm/BlobDownloadResponse.js +2 -0
  175. package/dist/esm/BlobDownloadResponse.js.map +1 -1
  176. package/dist/esm/BlobLeaseClient.js +39 -30
  177. package/dist/esm/BlobLeaseClient.js.map +1 -1
  178. package/dist/esm/BlobQueryResponse.js +2 -0
  179. package/dist/esm/BlobQueryResponse.js.map +1 -1
  180. package/dist/esm/BlobServiceClient.js +86 -81
  181. package/dist/esm/BlobServiceClient.js.map +1 -1
  182. package/dist/esm/Clients.js +351 -196
  183. package/dist/esm/Clients.js.map +1 -1
  184. package/dist/esm/ContainerClient.js +182 -135
  185. package/dist/esm/ContainerClient.js.map +1 -1
  186. package/dist/esm/PageBlobRangeResponse.js +10 -3
  187. package/dist/esm/PageBlobRangeResponse.js.map +1 -1
  188. package/dist/esm/Pipeline.js +27 -10
  189. package/dist/esm/Pipeline.js.map +1 -1
  190. package/dist/esm/StorageClient.js +23 -0
  191. package/dist/esm/StorageClient.js.map +1 -1
  192. package/dist/esm/StorageContextClient.js +1 -1
  193. package/dist/esm/StorageContextClient.js.map +1 -1
  194. package/dist/esm/StorageRetryPolicyFactory.js +1 -0
  195. package/dist/esm/StorageRetryPolicyFactory.js.map +1 -1
  196. package/dist/esm/credentials/StorageSharedKeyCredential.js +8 -0
  197. package/dist/esm/credentials/StorageSharedKeyCredential.js.map +1 -1
  198. package/dist/esm/credentials/UserDelegationKeyCredential.js +12 -0
  199. package/dist/esm/credentials/UserDelegationKeyCredential.js.map +1 -1
  200. package/dist/esm/generated/src/operations/appendBlob.js +1 -0
  201. package/dist/esm/generated/src/operations/appendBlob.js.map +1 -1
  202. package/dist/esm/generated/src/operations/blob.js +1 -0
  203. package/dist/esm/generated/src/operations/blob.js.map +1 -1
  204. package/dist/esm/generated/src/operations/blockBlob.js +1 -0
  205. package/dist/esm/generated/src/operations/blockBlob.js.map +1 -1
  206. package/dist/esm/generated/src/operations/container.js +1 -0
  207. package/dist/esm/generated/src/operations/container.js.map +1 -1
  208. package/dist/esm/generated/src/operations/pageBlob.js +1 -0
  209. package/dist/esm/generated/src/operations/pageBlob.js.map +1 -1
  210. package/dist/esm/generated/src/operations/service.js +1 -0
  211. package/dist/esm/generated/src/operations/service.js.map +1 -1
  212. package/dist/esm/generated/src/storageClient.js +15 -3
  213. package/dist/esm/generated/src/storageClient.js.map +1 -1
  214. package/dist/esm/internal-avro/AvroParser.js +7 -1
  215. package/dist/esm/internal-avro/AvroParser.js.map +1 -1
  216. package/dist/esm/internal-avro/AvroReadableFromBlob.js +2 -0
  217. package/dist/esm/internal-avro/AvroReadableFromBlob.js.map +1 -1
  218. package/dist/esm/internal-avro/AvroReadableFromStream.js +3 -2
  219. package/dist/esm/internal-avro/AvroReadableFromStream.js.map +1 -1
  220. package/dist/esm/internal-avro/AvroReader.js +44 -34
  221. package/dist/esm/internal-avro/AvroReader.js.map +1 -1
  222. package/dist/esm/policies/RequestPolicy.js +2 -0
  223. package/dist/esm/policies/RequestPolicy.js.map +1 -1
  224. package/dist/esm/policies/StorageRetryPolicy.js +5 -1
  225. package/dist/esm/policies/StorageRetryPolicy.js.map +1 -1
  226. package/dist/esm/policies/StorageRetryPolicyV2.js +10 -12
  227. package/dist/esm/policies/StorageRetryPolicyV2.js.map +1 -1
  228. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js +4 -0
  229. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  230. package/dist/esm/pollers/BlobStartCopyFromUrlPoller.js +7 -3
  231. package/dist/esm/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  232. package/dist/esm/sas/AccountSASPermissions.js +52 -54
  233. package/dist/esm/sas/AccountSASPermissions.js.map +1 -1
  234. package/dist/esm/sas/AccountSASResourceTypes.js +12 -14
  235. package/dist/esm/sas/AccountSASResourceTypes.js.map +1 -1
  236. package/dist/esm/sas/AccountSASServices.js +16 -18
  237. package/dist/esm/sas/AccountSASServices.js.map +1 -1
  238. package/dist/esm/sas/BlobSASPermissions.js +44 -46
  239. package/dist/esm/sas/BlobSASPermissions.js.map +1 -1
  240. package/dist/esm/sas/ContainerSASPermissions.js +52 -54
  241. package/dist/esm/sas/ContainerSASPermissions.js.map +1 -1
  242. package/dist/esm/sas/SASQueryParameters.js +117 -0
  243. package/dist/esm/sas/SASQueryParameters.js.map +1 -1
  244. package/dist/esm/utils/Batch.js +29 -21
  245. package/dist/esm/utils/Batch.js.map +1 -1
  246. package/dist/esm/utils/BlobQuickQueryStream.js +6 -1
  247. package/dist/esm/utils/BlobQuickQueryStream.js.map +1 -1
  248. package/dist/esm/utils/Mutex.js +2 -2
  249. package/dist/esm/utils/Mutex.js.map +1 -1
  250. package/dist/esm/utils/RetriableReadableStream.js +70 -62
  251. package/dist/esm/utils/RetriableReadableStream.js.map +1 -1
  252. package/dist/esm/utils/utils.common.js +24 -11
  253. package/dist/esm/utils/utils.common.js.map +1 -1
  254. package/dist/react-native/BatchResponseParser.js +5 -0
  255. package/dist/react-native/BatchResponseParser.js.map +1 -1
  256. package/dist/react-native/BlobBatch.js +10 -1
  257. package/dist/react-native/BlobBatch.js.map +1 -1
  258. package/dist/react-native/BlobBatchClient.js +4 -1
  259. package/dist/react-native/BlobBatchClient.js.map +1 -1
  260. package/dist/react-native/BlobDownloadResponse.js +2 -0
  261. package/dist/react-native/BlobDownloadResponse.js.map +1 -1
  262. package/dist/react-native/BlobLeaseClient.js +39 -30
  263. package/dist/react-native/BlobLeaseClient.js.map +1 -1
  264. package/dist/react-native/BlobQueryResponse.js +2 -0
  265. package/dist/react-native/BlobQueryResponse.js.map +1 -1
  266. package/dist/react-native/BlobServiceClient.js +86 -81
  267. package/dist/react-native/BlobServiceClient.js.map +1 -1
  268. package/dist/react-native/Clients.js +351 -196
  269. package/dist/react-native/Clients.js.map +1 -1
  270. package/dist/react-native/ContainerClient.js +182 -135
  271. package/dist/react-native/ContainerClient.js.map +1 -1
  272. package/dist/react-native/PageBlobRangeResponse.js +10 -3
  273. package/dist/react-native/PageBlobRangeResponse.js.map +1 -1
  274. package/dist/react-native/Pipeline.js +27 -10
  275. package/dist/react-native/Pipeline.js.map +1 -1
  276. package/dist/react-native/StorageClient.js +23 -0
  277. package/dist/react-native/StorageClient.js.map +1 -1
  278. package/dist/react-native/StorageContextClient.js +1 -1
  279. package/dist/react-native/StorageContextClient.js.map +1 -1
  280. package/dist/react-native/StorageRetryPolicyFactory.js +1 -0
  281. package/dist/react-native/StorageRetryPolicyFactory.js.map +1 -1
  282. package/dist/react-native/credentials/StorageSharedKeyCredential.js +8 -0
  283. package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +1 -1
  284. package/dist/react-native/credentials/UserDelegationKeyCredential.js +12 -0
  285. package/dist/react-native/credentials/UserDelegationKeyCredential.js.map +1 -1
  286. package/dist/react-native/generated/src/operations/appendBlob.js +1 -0
  287. package/dist/react-native/generated/src/operations/appendBlob.js.map +1 -1
  288. package/dist/react-native/generated/src/operations/blob.js +1 -0
  289. package/dist/react-native/generated/src/operations/blob.js.map +1 -1
  290. package/dist/react-native/generated/src/operations/blockBlob.js +1 -0
  291. package/dist/react-native/generated/src/operations/blockBlob.js.map +1 -1
  292. package/dist/react-native/generated/src/operations/container.js +1 -0
  293. package/dist/react-native/generated/src/operations/container.js.map +1 -1
  294. package/dist/react-native/generated/src/operations/pageBlob.js +1 -0
  295. package/dist/react-native/generated/src/operations/pageBlob.js.map +1 -1
  296. package/dist/react-native/generated/src/operations/service.js +1 -0
  297. package/dist/react-native/generated/src/operations/service.js.map +1 -1
  298. package/dist/react-native/generated/src/storageClient.js +15 -3
  299. package/dist/react-native/generated/src/storageClient.js.map +1 -1
  300. package/dist/react-native/internal-avro/AvroParser.js +7 -1
  301. package/dist/react-native/internal-avro/AvroParser.js.map +1 -1
  302. package/dist/react-native/internal-avro/AvroReadableFromBlob.js +2 -0
  303. package/dist/react-native/internal-avro/AvroReadableFromBlob.js.map +1 -1
  304. package/dist/react-native/internal-avro/AvroReadableFromStream.js +3 -2
  305. package/dist/react-native/internal-avro/AvroReadableFromStream.js.map +1 -1
  306. package/dist/react-native/internal-avro/AvroReader.js +44 -34
  307. package/dist/react-native/internal-avro/AvroReader.js.map +1 -1
  308. package/dist/react-native/policies/RequestPolicy.js +2 -0
  309. package/dist/react-native/policies/RequestPolicy.js.map +1 -1
  310. package/dist/react-native/policies/StorageRetryPolicy.js +5 -1
  311. package/dist/react-native/policies/StorageRetryPolicy.js.map +1 -1
  312. package/dist/react-native/policies/StorageRetryPolicyV2.js +10 -12
  313. package/dist/react-native/policies/StorageRetryPolicyV2.js.map +1 -1
  314. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js +4 -0
  315. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  316. package/dist/react-native/pollers/BlobStartCopyFromUrlPoller.js +7 -3
  317. package/dist/react-native/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  318. package/dist/react-native/sas/AccountSASPermissions.js +52 -54
  319. package/dist/react-native/sas/AccountSASPermissions.js.map +1 -1
  320. package/dist/react-native/sas/AccountSASResourceTypes.js +12 -14
  321. package/dist/react-native/sas/AccountSASResourceTypes.js.map +1 -1
  322. package/dist/react-native/sas/AccountSASServices.js +16 -18
  323. package/dist/react-native/sas/AccountSASServices.js.map +1 -1
  324. package/dist/react-native/sas/BlobSASPermissions.js +44 -46
  325. package/dist/react-native/sas/BlobSASPermissions.js.map +1 -1
  326. package/dist/react-native/sas/ContainerSASPermissions.js +52 -54
  327. package/dist/react-native/sas/ContainerSASPermissions.js.map +1 -1
  328. package/dist/react-native/sas/SASQueryParameters.js +117 -0
  329. package/dist/react-native/sas/SASQueryParameters.js.map +1 -1
  330. package/dist/react-native/utils/Batch.js +29 -21
  331. package/dist/react-native/utils/Batch.js.map +1 -1
  332. package/dist/react-native/utils/BlobQuickQueryStream.js +6 -1
  333. package/dist/react-native/utils/BlobQuickQueryStream.js.map +1 -1
  334. package/dist/react-native/utils/Mutex.js +2 -2
  335. package/dist/react-native/utils/Mutex.js.map +1 -1
  336. package/dist/react-native/utils/RetriableReadableStream.js +70 -62
  337. package/dist/react-native/utils/RetriableReadableStream.js.map +1 -1
  338. package/dist/react-native/utils/utils.common.js +24 -11
  339. package/dist/react-native/utils/utils.common.js.map +1 -1
  340. package/package.json +2 -2
@@ -1,4 +1,3 @@
1
- import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
2
1
  import { isTokenCredential } from "@azure/core-auth";
3
2
  import { getDefaultProxySettings } from "@azure/core-rest-pipeline";
4
3
  import { isNodeLike } from "@azure/core-util";
@@ -19,6 +18,10 @@ import { AccountSASServices } from "./sas/AccountSASServices.js";
19
18
  * to manipulate blob containers.
20
19
  */
21
20
  export class BlobServiceClient extends StorageClient {
21
+ /**
22
+ * serviceContext provided by protocol layer.
23
+ */
24
+ serviceContext;
22
25
  /**
23
26
  *
24
27
  * Creates an instance of BlobServiceClient from connection string.
@@ -238,7 +241,13 @@ export class BlobServiceClient extends StorageClient {
238
241
  */
239
242
  async listContainersSegment(marker, options = {}) {
240
243
  return tracingClient.withSpan("BlobServiceClient-listContainersSegment", options, async (updatedOptions) => {
241
- 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 })));
244
+ return assertResponse(await this.serviceContext.listContainersSegment({
245
+ abortSignal: options.abortSignal,
246
+ marker,
247
+ ...options,
248
+ include: typeof options.include === "string" ? [options.include] : options.include,
249
+ tracingOptions: updatedOptions.tracingOptions,
250
+ }));
242
251
  });
243
252
  }
244
253
  /**
@@ -268,14 +277,17 @@ export class BlobServiceClient extends StorageClient {
268
277
  maxPageSize: options.maxPageSize,
269
278
  tracingOptions: updatedOptions.tracingOptions,
270
279
  }));
271
- const wrappedResponse = Object.assign(Object.assign({}, response), { _response: response._response, blobs: response.blobs.map((blob) => {
272
- var _a;
280
+ const wrappedResponse = {
281
+ ...response,
282
+ _response: response._response, // _response is made non-enumerable
283
+ blobs: response.blobs.map((blob) => {
273
284
  let tagValue = "";
274
- if (((_a = blob.tags) === null || _a === void 0 ? void 0 : _a.blobTagSet.length) === 1) {
285
+ if (blob.tags?.blobTagSet.length === 1) {
275
286
  tagValue = blob.tags.blobTagSet[0].value;
276
287
  }
277
- return Object.assign(Object.assign({}, blob), { tags: toTags(blob.tags), tagValue });
278
- }) });
288
+ return { ...blob, tags: toTags(blob.tags), tagValue };
289
+ }),
290
+ };
279
291
  return wrappedResponse;
280
292
  });
281
293
  }
@@ -295,18 +307,16 @@ export class BlobServiceClient extends StorageClient {
295
307
  * items. The marker value is opaque to the client.
296
308
  * @param options - Options to find blobs by tags.
297
309
  */
298
- findBlobsByTagsSegments(tagFilterSqlExpression_1, marker_1) {
299
- return __asyncGenerator(this, arguments, function* findBlobsByTagsSegments_1(tagFilterSqlExpression, marker, options = {}) {
300
- let response;
301
- if (!!marker || marker === undefined) {
302
- do {
303
- response = yield __await(this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options));
304
- response.blobs = response.blobs || [];
305
- marker = response.continuationToken;
306
- yield yield __await(response);
307
- } while (marker);
308
- }
309
- });
310
+ async *findBlobsByTagsSegments(tagFilterSqlExpression, marker, options = {}) {
311
+ let response;
312
+ if (!!marker || marker === undefined) {
313
+ do {
314
+ response = await this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options);
315
+ response.blobs = response.blobs || [];
316
+ marker = response.continuationToken;
317
+ yield response;
318
+ } while (marker);
319
+ }
310
320
  }
311
321
  /**
312
322
  * Returns an AsyncIterableIterator for blobs.
@@ -317,26 +327,11 @@ export class BlobServiceClient extends StorageClient {
317
327
  * however, only a subset of the OData filter syntax is supported in the Blob service.
318
328
  * @param options - Options to findBlobsByTagsItems.
319
329
  */
320
- findBlobsByTagsItems(tagFilterSqlExpression_1) {
321
- return __asyncGenerator(this, arguments, function* findBlobsByTagsItems_1(tagFilterSqlExpression, options = {}) {
322
- var _a, e_1, _b, _c;
323
- let marker;
324
- try {
325
- for (var _d = true, _e = __asyncValues(this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
326
- _c = _f.value;
327
- _d = false;
328
- const segment = _c;
329
- yield __await(yield* __asyncDelegator(__asyncValues(segment.blobs)));
330
- }
331
- }
332
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
333
- finally {
334
- try {
335
- if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
336
- }
337
- finally { if (e_1) throw e_1.error; }
338
- }
339
- });
330
+ async *findBlobsByTagsItems(tagFilterSqlExpression, options = {}) {
331
+ let marker;
332
+ for await (const segment of this.findBlobsByTagsSegments(tagFilterSqlExpression, marker, options)) {
333
+ yield* segment.blobs;
334
+ }
340
335
  }
341
336
  /**
342
337
  * Returns an async iterable iterator to find all blobs with specified tag
@@ -415,7 +410,9 @@ export class BlobServiceClient extends StorageClient {
415
410
  */
416
411
  findBlobsByTags(tagFilterSqlExpression, options = {}) {
417
412
  // AsyncIterableIterator to iterate over blobs
418
- const listSegmentOptions = Object.assign({}, options);
413
+ const listSegmentOptions = {
414
+ ...options,
415
+ };
419
416
  const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);
420
417
  return {
421
418
  /**
@@ -434,7 +431,10 @@ export class BlobServiceClient extends StorageClient {
434
431
  * Return an AsyncIterableIterator that works a page at a time
435
432
  */
436
433
  byPage: (settings = {}) => {
437
- return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
434
+ return this.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, {
435
+ maxPageSize: settings.maxPageSize,
436
+ ...listSegmentOptions,
437
+ });
438
438
  },
439
439
  };
440
440
  }
@@ -450,45 +450,28 @@ export class BlobServiceClient extends StorageClient {
450
450
  * items. The marker value is opaque to the client.
451
451
  * @param options - Options to list containers operation.
452
452
  */
453
- listSegments(marker_1) {
454
- return __asyncGenerator(this, arguments, function* listSegments_1(marker, options = {}) {
455
- let listContainersSegmentResponse;
456
- if (!!marker || marker === undefined) {
457
- do {
458
- listContainersSegmentResponse = yield __await(this.listContainersSegment(marker, options));
459
- listContainersSegmentResponse.containerItems =
460
- listContainersSegmentResponse.containerItems || [];
461
- marker = listContainersSegmentResponse.continuationToken;
462
- yield yield __await(yield __await(listContainersSegmentResponse));
463
- } while (marker);
464
- }
465
- });
453
+ async *listSegments(marker, options = {}) {
454
+ let listContainersSegmentResponse;
455
+ if (!!marker || marker === undefined) {
456
+ do {
457
+ listContainersSegmentResponse = await this.listContainersSegment(marker, options);
458
+ listContainersSegmentResponse.containerItems =
459
+ listContainersSegmentResponse.containerItems || [];
460
+ marker = listContainersSegmentResponse.continuationToken;
461
+ yield await listContainersSegmentResponse;
462
+ } while (marker);
463
+ }
466
464
  }
467
465
  /**
468
466
  * Returns an AsyncIterableIterator for Container Items
469
467
  *
470
468
  * @param options - Options to list containers operation.
471
469
  */
472
- listItems() {
473
- return __asyncGenerator(this, arguments, function* listItems_1(options = {}) {
474
- var _a, e_2, _b, _c;
475
- let marker;
476
- try {
477
- for (var _d = true, _e = __asyncValues(this.listSegments(marker, options)), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
478
- _c = _f.value;
479
- _d = false;
480
- const segment = _c;
481
- yield __await(yield* __asyncDelegator(__asyncValues(segment.containerItems)));
482
- }
483
- }
484
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
485
- finally {
486
- try {
487
- if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
488
- }
489
- finally { if (e_2) throw e_2.error; }
490
- }
491
- });
470
+ async *listItems(options = {}) {
471
+ let marker;
472
+ for await (const segment of this.listSegments(marker, options)) {
473
+ yield* segment.containerItems;
474
+ }
492
475
  }
493
476
  /**
494
477
  * Returns an async iterable iterator to list all the containers
@@ -575,7 +558,10 @@ export class BlobServiceClient extends StorageClient {
575
558
  include.push("system");
576
559
  }
577
560
  // AsyncIterableIterator to iterate over containers
578
- const listSegmentOptions = Object.assign(Object.assign({}, options), (include.length > 0 ? { include } : {}));
561
+ const listSegmentOptions = {
562
+ ...options,
563
+ ...(include.length > 0 ? { include } : {}),
564
+ };
579
565
  const iter = this.listItems(listSegmentOptions);
580
566
  return {
581
567
  /**
@@ -594,7 +580,10 @@ export class BlobServiceClient extends StorageClient {
594
580
  * Return an AsyncIterableIterator that works a page at a time
595
581
  */
596
582
  byPage: (settings = {}) => {
597
- return this.listSegments(settings.continuationToken, Object.assign({ maxPageSize: settings.maxPageSize }, listSegmentOptions));
583
+ return this.listSegments(settings.continuationToken, {
584
+ maxPageSize: settings.maxPageSize,
585
+ ...listSegmentOptions,
586
+ });
598
587
  },
599
588
  };
600
589
  }
@@ -627,7 +616,15 @@ export class BlobServiceClient extends StorageClient {
627
616
  signedVersion: response.signedVersion,
628
617
  value: response.value,
629
618
  };
630
- const res = Object.assign({ _response: response._response, requestId: response.requestId, clientRequestId: response.clientRequestId, version: response.version, date: response.date, errorCode: response.errorCode }, userDelegationKey);
619
+ const res = {
620
+ _response: response._response,
621
+ requestId: response.requestId,
622
+ clientRequestId: response.clientRequestId,
623
+ version: response.version,
624
+ date: response.date,
625
+ errorCode: response.errorCode,
626
+ ...userDelegationKey,
627
+ };
631
628
  return res;
632
629
  });
633
630
  }
@@ -663,9 +660,13 @@ export class BlobServiceClient extends StorageClient {
663
660
  const now = new Date();
664
661
  expiresOn = new Date(now.getTime() + 3600 * 1000);
665
662
  }
666
- const sas = generateAccountSASQueryParameters(Object.assign({ permissions,
663
+ const sas = generateAccountSASQueryParameters({
664
+ permissions,
667
665
  expiresOn,
668
- resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).toString();
666
+ resourceTypes,
667
+ services: AccountSASServices.parse("b").toString(),
668
+ ...options,
669
+ }, this.credential).toString();
669
670
  return appendToURLQuery(this.url, sas);
670
671
  }
671
672
  /**
@@ -690,9 +691,13 @@ export class BlobServiceClient extends StorageClient {
690
691
  const now = new Date();
691
692
  expiresOn = new Date(now.getTime() + 3600 * 1000);
692
693
  }
693
- return generateAccountSASQueryParametersInternal(Object.assign({ permissions,
694
+ return generateAccountSASQueryParametersInternal({
695
+ permissions,
694
696
  expiresOn,
695
- resourceTypes, services: AccountSASServices.parse("b").toString() }, options), this.credential).stringToSign;
697
+ resourceTypes,
698
+ services: AccountSASServices.parse("b").toString(),
699
+ ...options,
700
+ }, this.credential).stringToSign;
696
701
  }
697
702
  }
698
703
  //# sourceMappingURL=BlobServiceClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlobServiceClient.js","sourceRoot":"","sources":["../../src/BlobServiceClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type {\n ServiceGetUserDelegationKeyHeaders,\n ContainerCreateResponse,\n ContainerDeleteResponse,\n ServiceGetPropertiesResponse,\n BlobServiceProperties,\n ServiceSetPropertiesResponse,\n ServiceGetStatisticsResponse,\n ServiceGetAccountInfoResponse,\n ServiceListContainersSegmentResponse,\n ContainerItem,\n UserDelegationKeyModel,\n ContainerUndeleteResponse,\n FilterBlobSegmentModel,\n ServiceFilterBlobsHeaders,\n LeaseAccessConditions,\n FilterBlobSegment,\n FilterBlobItem,\n ServiceGetPropertiesResponseInternal,\n ServiceGetStatisticsResponseInternal,\n ServiceListContainersSegmentResponseInternal,\n} from \"./generatedModels.js\";\nimport type { Service } from \"./generated/src/operationsInterfaces/index.js\";\nimport type { StoragePipelineOptions, PipelineLike } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline.js\";\nimport type { ContainerCreateOptions, ContainerDeleteMethodOptions } from \"./ContainerClient.js\";\nimport { ContainerClient } from \"./ContainerClient.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n toTags,\n} from \"./utils/utils.common.js\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential.js\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential.js\";\nimport type { PageSettings, PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { truncatedISO8061Date, assertResponse } from \"./utils/utils.common.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport { BlobBatchClient } from \"./BlobBatchClient.js\";\nimport type { CommonOptions } from \"./StorageClient.js\";\nimport { StorageClient } from \"./StorageClient.js\";\nimport { AccountSASPermissions } from \"./sas/AccountSASPermissions.js\";\nimport type { SASProtocol } from \"./sas/SASQueryParameters.js\";\nimport type { SasIPRange } from \"./sas/SasIPRange.js\";\nimport {\n generateAccountSASQueryParameters,\n generateAccountSASQueryParametersInternal,\n} from \"./sas/AccountSASSignatureValues.js\";\nimport { AccountSASServices } from \"./sas/AccountSASServices.js\";\nimport type {\n ContainerRestoreHeaders,\n ListContainersIncludeType,\n ServiceFilterBlobsResponse,\n ServiceGetAccountInfoHeaders,\n ServiceGetPropertiesHeaders,\n ServiceGetStatisticsHeaders,\n ServiceGetUserDelegationKeyResponse as ServiceGetUserDelegationKeyResponseModel,\n ServiceListContainersSegmentHeaders,\n ServiceSetPropertiesHeaders,\n} from \"./generated/src/index.js\";\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.getAccountInfo} operation.\n */\nexport interface ServiceGetAccountInfoOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the Service - Get User Delegation Key.\n */\nexport interface ServiceGetUserDelegationKeyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.listContainerSegment} operation.\n */\ninterface ServiceListContainersSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies the maximum number of containers\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 container's metadata be returned as part of the response\n * body. Possible values include: 'metadata'\n */\n include?: ListContainersIncludeType | ListContainersIncludeType[];\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.listContainers} operation.\n */\nexport interface ServiceListContainersOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies whether the container's metadata\n * should be returned as part of the response body.\n */\n includeMetadata?: boolean;\n\n /**\n * Specifies whether soft deleted containers should be included in the response.\n */\n includeDeleted?: boolean;\n /**\n * Specifies whether system containers should be included in the response.\n */\n includeSystem?: boolean;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.findBlobsByTagsSegment} operation.\n */\ninterface ServiceFindBlobsByTagsSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Specifies the maximum number of blobs\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\n/**\n * Options to configure the {@link BlobServiceClient.findBlobsByTags} operation.\n */\nexport interface ServiceFindBlobByTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * The response of {@link BlobServiceClient.findBlobsByTags} operation.\n */\nexport type ServiceFindBlobsByTagsSegmentResponse = WithResponse<\n FilterBlobSegment & ServiceFilterBlobsHeaders,\n ServiceFilterBlobsHeaders,\n FilterBlobSegmentModel\n>;\n\n/**\n * A user delegation key.\n */\nexport interface UserDelegationKey {\n /**\n * The Azure Active Directory object ID in GUID format.\n */\n signedObjectId: string;\n /**\n * The Azure Active Directory tenant ID in GUID format.\n */\n signedTenantId: string;\n /**\n * The date-time the key is active.\n */\n signedStartsOn: Date;\n /**\n * The date-time the key expires.\n */\n signedExpiresOn: Date;\n /**\n * Abbreviation of the Azure Storage service that accepts the key.\n */\n signedService: string;\n /**\n * The service version that created the key.\n */\n signedVersion: string;\n /**\n * The key as a base64 string.\n */\n value: string;\n}\n\n/**\n * Contains response data for the {@link getUserDelegationKey} operation.\n */\nexport declare type ServiceGetUserDelegationKeyResponse = WithResponse<\n UserDelegationKey & ServiceGetUserDelegationKeyHeaders,\n ServiceGetUserDelegationKeyHeaders,\n UserDelegationKeyModel\n>;\n\n/**\n * Options to configure {@link BlobServiceClient.undeleteContainer} operation.\n */\nexport interface ServiceUndeleteContainerOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Optional. Specifies the new name of the restored container.\n * Will use its original name if this is not specified.\n * @deprecated Restore container to a different name is not supported by service anymore.\n */\n destinationContainerName?: string;\n}\n\n/**\n * Options to configure {@link BlobServiceClient.renameContainer} operation.\n */\nexport interface ServiceRenameContainerOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Condition to meet for the source container.\n */\n sourceCondition?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure {@link BlobServiceClient.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 * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n}\n\n/**\n * A BlobServiceClient represents a Client to the Azure Storage Blob service allowing you\n * to manipulate blob containers.\n */\nexport class BlobServiceClient extends StorageClient {\n /**\n * serviceContext provided by protocol layer.\n */\n private serviceContext: Service;\n\n /**\n *\n * Creates an instance of BlobServiceClient from connection string.\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 - Optional. Options to configure the HTTP pipeline.\n */\n public static fromConnectionString(\n connectionString: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ): BlobServiceClient {\n options = options || {};\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNodeLike) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n const pipeline = newPipeline(sharedKeyCredential, options);\n return new BlobServiceClient(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 BlobServiceClient(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 * Creates an instance of BlobServiceClient.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n * Example using DefaultAzureCredential from `@azure/identity`:\n *\n * ```ts snippet:ReadmeSampleCreateClient_DefaultAzureCredential\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n *\n * // Enter your storage account name\n * const account = \"<account>\";\n * const defaultAzureCredential = new DefaultAzureCredential();\n *\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * defaultAzureCredential,\n * );\n * ```\n *\n * Example using an account name/key:\n *\n * ```ts snippet:ReadmeSampleCreateClient_StorageSharedKeyCredential\n * import { StorageSharedKeyCredential, BlobServiceClient } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const accountKey = \"<accountkey>\";\n *\n * // Use StorageSharedKeyCredential with storage account and account key\n * // StorageSharedKeyCredential is only available in Node.js runtime, not in browsers\n * const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * sharedKeyCredential,\n * );\n * ```\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of BlobServiceClient.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ) {\n let pipeline: PipelineLike;\n if (isPipelineLike(credentialOrPipeline)) {\n pipeline = credentialOrPipeline;\n } else if (\n (isNodeLike && 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 ContainerClient} object\n *\n * @param containerName - A container name\n * @returns A new ContainerClient object for the given container name.\n *\n * Example usage:\n *\n * ```ts snippet:BlobServiceClientGetContainerClient\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const containerClient = blobServiceClient.getContainerClient(\"<container name>\");\n * ```\n */\n public getContainerClient(containerName: string): ContainerClient {\n return new ContainerClient(\n appendToURLPath(this.url, encodeURIComponent(containerName)),\n this.pipeline,\n );\n }\n\n /**\n * Create a Blob container. @see https://learn.microsoft.com/rest/api/storageservices/create-container\n *\n * @param containerName - Name of the container to create.\n * @param options - Options to configure Container Create operation.\n * @returns Container creation response and the corresponding container client.\n */\n public async createContainer(\n containerName: string,\n options: ContainerCreateOptions = {},\n ): Promise<{\n containerClient: ContainerClient;\n containerCreateResponse: ContainerCreateResponse;\n }> {\n return tracingClient.withSpan(\n \"BlobServiceClient-createContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(containerName);\n const containerCreateResponse = await containerClient.create(updatedOptions);\n return {\n containerClient,\n containerCreateResponse,\n };\n },\n );\n }\n\n /**\n * Deletes a Blob container.\n *\n * @param containerName - Name of the container to delete.\n * @param options - Options to configure Container Delete operation.\n * @returns Container deletion response.\n */\n public async deleteContainer(\n containerName: string,\n options: ContainerDeleteMethodOptions = {},\n ): Promise<ContainerDeleteResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-deleteContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(containerName);\n return containerClient.delete(updatedOptions);\n },\n );\n }\n\n /**\n * Restore a previously deleted Blob container.\n * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container.\n *\n * @param deletedContainerName - Name of the previously deleted container.\n * @param deletedContainerVersion - Version of the previously deleted container, used to uniquely identify the deleted container.\n * @param options - Options to configure Container Restore operation.\n * @returns Container deletion response.\n */\n public async undeleteContainer(\n deletedContainerName: string,\n deletedContainerVersion: string,\n options: ServiceUndeleteContainerOptions = {},\n ): Promise<{\n containerClient: ContainerClient;\n containerUndeleteResponse: ContainerUndeleteResponse;\n }> {\n return tracingClient.withSpan(\n \"BlobServiceClient-undeleteContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(\n options.destinationContainerName || deletedContainerName,\n );\n // Hack to access a protected member.\n const containerContext = containerClient[\"storageClientContext\"].container;\n const containerUndeleteResponse = assertResponse<\n ContainerRestoreHeaders,\n ContainerRestoreHeaders\n >(\n await containerContext.restore({\n deletedContainerName,\n deletedContainerVersion,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n return { containerClient, containerUndeleteResponse };\n },\n );\n }\n\n /**\n * Gets the properties of a storage account’s Blob service, including properties\n * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-blob-service-properties\n *\n * @param options - Options to the Service Get Properties operation.\n * @returns Response data for the Service Get Properties operation.\n */\n public async getProperties(\n options: ServiceGetPropertiesOptions = {},\n ): Promise<ServiceGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetPropertiesResponseInternal, ServiceGetPropertiesHeaders>(\n await this.serviceContext.getProperties({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Sets properties for a storage account’s Blob service endpoint, including properties\n * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-blob-service-properties\n *\n * @param properties -\n * @param options - Options to the Service Set Properties operation.\n * @returns Response data for the Service Set Properties operation.\n */\n public async setProperties(\n properties: BlobServiceProperties,\n options: ServiceSetPropertiesOptions = {},\n ): Promise<ServiceSetPropertiesResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-setProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceSetPropertiesHeaders, ServiceSetPropertiesHeaders>(\n await this.serviceContext.setProperties(properties, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Blob 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/rest/api/storageservices/get-blob-service-stats\n *\n * @param options - Options to the Service Get Statistics operation.\n * @returns Response data for the Service Get Statistics operation.\n */\n public async getStatistics(\n options: ServiceGetStatisticsOptions = {},\n ): Promise<ServiceGetStatisticsResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getStatistics\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetStatisticsResponseInternal, ServiceGetStatisticsHeaders>(\n await this.serviceContext.getStatistics({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * The Get Account Information operation returns the sku name and account kind\n * for the specified account.\n * The Get Account Information operation is available on service versions beginning\n * with version 2018-03-28.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-account-information\n *\n * @param options - Options to the Service Get Account Info operation.\n * @returns Response data for the Service Get Account Info operation.\n */\n public async getAccountInfo(\n options: ServiceGetAccountInfoOptions = {},\n ): Promise<ServiceGetAccountInfoResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getAccountInfo\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetAccountInfoHeaders, ServiceGetAccountInfoHeaders>(\n await this.serviceContext.getAccountInfo({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Returns a list of the containers under the specified account.\n * @see https://learn.microsoft.com/rest/api/storageservices/list-containers2\n *\n * @param marker - A string value that identifies the portion of\n * the list of containers 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 containers 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 the Service List Container Segment operation.\n * @returns Response data for the Service List Container Segment operation.\n */\n private async listContainersSegment(\n marker?: string,\n options: ServiceListContainersSegmentOptions = {},\n ): Promise<ServiceListContainersSegmentResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-listContainersSegment\",\n options,\n async (updatedOptions) => {\n return assertResponse<\n ServiceListContainersSegmentResponseInternal,\n ServiceListContainersSegmentHeaders\n >(\n await this.serviceContext.listContainersSegment({\n abortSignal: options.abortSignal,\n marker,\n ...options,\n include: typeof options.include === \"string\" ? [options.include] : options.include,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * The Filter Blobs operation enables callers to list blobs across all containers whose tags\n * match a given search expression. Filter blobs searches across all containers within a\n * storage account but can be scoped within the expression to a single container.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param marker - A string value that identifies the portion of\n * the list of blobs 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 blobs 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 find blobs by tags.\n */\n private async findBlobsByTagsSegment(\n tagFilterSqlExpression: string,\n marker?: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): Promise<ServiceFindBlobsByTagsSegmentResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-findBlobsByTagsSegment\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n ServiceFilterBlobsResponse,\n ServiceFilterBlobsHeaders,\n FilterBlobSegmentModel\n >(\n await this.serviceContext.filterBlobs({\n abortSignal: options.abortSignal,\n where: tagFilterSqlExpression,\n marker,\n maxPageSize: options.maxPageSize,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n const wrappedResponse: ServiceFindBlobsByTagsSegmentResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n blobs: response.blobs.map((blob) => {\n let tagValue = \"\";\n if (blob.tags?.blobTagSet.length === 1) {\n tagValue = blob.tags.blobTagSet[0].value;\n }\n return { ...blob, tags: toTags(blob.tags), tagValue };\n }),\n };\n return wrappedResponse;\n },\n );\n }\n\n /**\n * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param marker - A string value that identifies the portion of\n * the list of blobs 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 blobs 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 find blobs by tags.\n */\n private async *findBlobsByTagsSegments(\n tagFilterSqlExpression: string,\n marker?: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): AsyncIterableIterator<ServiceFindBlobsByTagsSegmentResponse> {\n let response;\n if (!!marker || marker === undefined) {\n do {\n response = await this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options);\n response.blobs = response.blobs || [];\n marker = response.continuationToken;\n yield response;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for blobs.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param options - Options to findBlobsByTagsItems.\n */\n private async *findBlobsByTagsItems(\n tagFilterSqlExpression: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): AsyncIterableIterator<FilterBlobItem> {\n let marker: string | undefined;\n for await (const segment of this.findBlobsByTagsSegments(\n tagFilterSqlExpression,\n marker,\n options,\n )) {\n yield* segment.blobs;\n }\n }\n\n /**\n * Returns an async iterable iterator to find all blobs with specified tag\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the blobs in pages.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-blob-service-properties\n *\n * ```ts snippet:BlobServiceClientFindBlobsByTags\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * // Use for await to iterate the blobs\n * let i = 1;\n * for await (const blob of blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\")) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n *\n * // Use iter.next() to iterate the blobs\n * i = 1;\n * const iter = blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\");\n * let { value, done } = await iter.next();\n * while (!done) {\n * console.log(`Blob ${i++}: ${value.name}`);\n * ({ value, done } = await iter.next());\n * }\n *\n * // Use byPage() to iterate the blobs\n * i = 1;\n * for await (const page of blobServiceClient\n * .findBlobsByTags(\"tagkey='tagvalue'\")\n * .byPage({ maxPageSize: 20 })) {\n * for (const blob of page.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n *\n * // Use paging with a marker\n * i = 1;\n * let iterator = blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\").byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n * // Prints 2 blob names\n * if (response.blobs) {\n * for (const blob of response.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n * // Gets next marker\n * let marker = response.continuationToken;\n * // Passing next marker as continuationToken\n * iterator = blobServiceClient\n * .findBlobsByTags(\"tagkey='tagvalue'\")\n * .byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints blob names\n * if (response.blobs) {\n * for (const blob of response.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n * ```\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param options - Options to find blobs by tags.\n */\n public findBlobsByTags(\n tagFilterSqlExpression: string,\n options: ServiceFindBlobByTagsOptions = {},\n ): PagedAsyncIterableIterator<FilterBlobItem, ServiceFindBlobsByTagsSegmentResponse> {\n // AsyncIterableIterator to iterate over blobs\n const listSegmentOptions: ServiceFindBlobsByTagsSegmentOptions = {\n ...options,\n };\n\n const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);\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.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...listSegmentOptions,\n });\n },\n };\n }\n\n /**\n * Returns an AsyncIterableIterator for ServiceListContainersSegmentResponses\n *\n * @param marker - A string value that identifies the portion of\n * the list of containers 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 containers 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 containers operation.\n */\n private async *listSegments(\n marker?: string,\n options: ServiceListContainersSegmentOptions = {},\n ): AsyncIterableIterator<ServiceListContainersSegmentResponse> {\n let listContainersSegmentResponse;\n if (!!marker || marker === undefined) {\n do {\n listContainersSegmentResponse = await this.listContainersSegment(marker, options);\n listContainersSegmentResponse.containerItems =\n listContainersSegmentResponse.containerItems || [];\n marker = listContainersSegmentResponse.continuationToken;\n yield await listContainersSegmentResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for Container Items\n *\n * @param options - Options to list containers operation.\n */\n private async *listItems(\n options: ServiceListContainersSegmentOptions = {},\n ): AsyncIterableIterator<ContainerItem> {\n let marker: string | undefined;\n for await (const segment of this.listSegments(marker, options)) {\n yield* segment.containerItems;\n }\n }\n\n /**\n * Returns an async iterable iterator to list all the containers\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the containers in pages.\n *\n * ```ts snippet:BlobServiceClientListContainers\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * // Use for await to iterate the containers\n * let i = 1;\n * for await (const container of blobServiceClient.listContainers()) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n *\n * // Use iter.next() to iterate the containers\n * i = 1;\n * const iter = blobServiceClient.listContainers();\n * let { value, done } = await iter.next();\n * while (!done) {\n * console.log(`Container ${i++}: ${value.name}`);\n * ({ value, done } = await iter.next());\n * }\n *\n * // Use byPage() to iterate the containers\n * i = 1;\n * for await (const page of blobServiceClient.listContainers().byPage({ maxPageSize: 20 })) {\n * for (const container of page.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n *\n * // Use paging with a marker\n * i = 1;\n * let iterator = blobServiceClient.listContainers().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 container names\n * if (response.containerItems) {\n * for (const container of response.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n * // Passing next marker as continuationToken\n * iterator = blobServiceClient\n * .listContainers()\n * .byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 container names\n * if (response.containerItems) {\n * for (const container of response.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n * ```\n *\n * @param options - Options to list containers.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listContainers(\n options: ServiceListContainersOptions = {},\n ): PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n const include: ListContainersIncludeType[] = [];\n if (options.includeDeleted) {\n include.push(\"deleted\");\n }\n if (options.includeMetadata) {\n include.push(\"metadata\");\n }\n if (options.includeSystem) {\n include.push(\"system\");\n }\n\n // AsyncIterableIterator to iterate over containers\n const listSegmentOptions: ServiceListContainersSegmentOptions = {\n ...options,\n ...(include.length > 0 ? { include } : {}),\n };\n\n const iter = this.listItems(listSegmentOptions);\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 ...listSegmentOptions,\n });\n },\n };\n }\n\n /**\n * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential).\n *\n * Retrieves a user delegation key for the Blob service. This is only a valid operation when using\n * bearer token authentication.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-user-delegation-key\n *\n * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time\n * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time\n */\n public async getUserDelegationKey(\n startsOn: Date,\n expiresOn: Date,\n options: ServiceGetUserDelegationKeyOptions = {},\n ): Promise<ServiceGetUserDelegationKeyResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getUserDelegationKey\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n ServiceGetUserDelegationKeyResponseModel,\n ServiceGetUserDelegationKeyHeaders,\n UserDelegationKeyModel\n >(\n await this.serviceContext.getUserDelegationKey(\n {\n startsOn: truncatedISO8061Date(startsOn, false),\n expiresOn: truncatedISO8061Date(expiresOn, false),\n },\n {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n },\n ),\n );\n\n const userDelegationKey = {\n signedObjectId: response.signedObjectId,\n signedTenantId: response.signedTenantId,\n signedStartsOn: new Date(response.signedStartsOn),\n signedExpiresOn: new Date(response.signedExpiresOn),\n signedService: response.signedService,\n signedVersion: response.signedVersion,\n value: response.value,\n };\n\n const res: ServiceGetUserDelegationKeyResponse = {\n _response: response._response,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n version: response.version,\n date: response.date,\n errorCode: response.errorCode,\n ...userDelegationKey,\n };\n\n return res;\n },\n );\n }\n\n /**\n * Creates a BlobBatchClient object to conduct batch operations.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n *\n * @returns A new BlobBatchClient object for this service.\n */\n public getBlobBatchClient(): BlobBatchClient {\n return new BlobBatchClient(this.url, this.pipeline);\n }\n\n /**\n * Only available for BlobServiceClient constructed with a shared key credential.\n *\n * Generates a Blob 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/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 provided.\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(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for BlobServiceClient constructed with a shared key credential.\n *\n * Generates string to sign for a Blob account Shared Access Signature (SAS) URI based on\n * the client properties and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/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 provided.\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(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n"]}
1
+ {"version":3,"file":"BlobServiceClient.js","sourceRoot":"","sources":["../../src/BlobServiceClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type {\n ServiceGetUserDelegationKeyHeaders,\n ContainerCreateResponse,\n ContainerDeleteResponse,\n ServiceGetPropertiesResponse,\n BlobServiceProperties,\n ServiceSetPropertiesResponse,\n ServiceGetStatisticsResponse,\n ServiceGetAccountInfoResponse,\n ServiceListContainersSegmentResponse,\n ContainerItem,\n UserDelegationKeyModel,\n ContainerUndeleteResponse,\n FilterBlobSegmentModel,\n ServiceFilterBlobsHeaders,\n LeaseAccessConditions,\n FilterBlobSegment,\n FilterBlobItem,\n ServiceGetPropertiesResponseInternal,\n ServiceGetStatisticsResponseInternal,\n ServiceListContainersSegmentResponseInternal,\n} from \"./generatedModels.js\";\nimport type { Service } from \"./generated/src/operationsInterfaces/index.js\";\nimport type { StoragePipelineOptions, PipelineLike } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline.js\";\nimport type { ContainerCreateOptions, ContainerDeleteMethodOptions } from \"./ContainerClient.js\";\nimport { ContainerClient } from \"./ContainerClient.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n toTags,\n} from \"./utils/utils.common.js\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential.js\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential.js\";\nimport type { PageSettings, PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { truncatedISO8061Date, assertResponse } from \"./utils/utils.common.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport { BlobBatchClient } from \"./BlobBatchClient.js\";\nimport type { CommonOptions } from \"./StorageClient.js\";\nimport { StorageClient } from \"./StorageClient.js\";\nimport { AccountSASPermissions } from \"./sas/AccountSASPermissions.js\";\nimport type { SASProtocol } from \"./sas/SASQueryParameters.js\";\nimport type { SasIPRange } from \"./sas/SasIPRange.js\";\nimport {\n generateAccountSASQueryParameters,\n generateAccountSASQueryParametersInternal,\n} from \"./sas/AccountSASSignatureValues.js\";\nimport { AccountSASServices } from \"./sas/AccountSASServices.js\";\nimport type {\n ContainerRestoreHeaders,\n ListContainersIncludeType,\n ServiceFilterBlobsResponse,\n ServiceGetAccountInfoHeaders,\n ServiceGetPropertiesHeaders,\n ServiceGetStatisticsHeaders,\n ServiceGetUserDelegationKeyResponse as ServiceGetUserDelegationKeyResponseModel,\n ServiceListContainersSegmentHeaders,\n ServiceSetPropertiesHeaders,\n} from \"./generated/src/index.js\";\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.getAccountInfo} operation.\n */\nexport interface ServiceGetAccountInfoOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.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 &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the Service - Get User Delegation Key.\n */\nexport interface ServiceGetUserDelegationKeyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.listContainerSegment} operation.\n */\ninterface ServiceListContainersSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies the maximum number of containers\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 container's metadata be returned as part of the response\n * body. Possible values include: 'metadata'\n */\n include?: ListContainersIncludeType | ListContainersIncludeType[];\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.listContainers} operation.\n */\nexport interface ServiceListContainersOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Filters the results to return only containers\n * whose name begins with the specified prefix.\n */\n prefix?: string;\n /**\n * Specifies whether the container's metadata\n * should be returned as part of the response body.\n */\n includeMetadata?: boolean;\n\n /**\n * Specifies whether soft deleted containers should be included in the response.\n */\n includeDeleted?: boolean;\n /**\n * Specifies whether system containers should be included in the response.\n */\n includeSystem?: boolean;\n}\n\n/**\n * Options to configure the {@link BlobServiceClient.findBlobsByTagsSegment} operation.\n */\ninterface ServiceFindBlobsByTagsSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Specifies the maximum number of blobs\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\n/**\n * Options to configure the {@link BlobServiceClient.findBlobsByTags} operation.\n */\nexport interface ServiceFindBlobByTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * The response of {@link BlobServiceClient.findBlobsByTags} operation.\n */\nexport type ServiceFindBlobsByTagsSegmentResponse = WithResponse<\n FilterBlobSegment & ServiceFilterBlobsHeaders,\n ServiceFilterBlobsHeaders,\n FilterBlobSegmentModel\n>;\n\n/**\n * A user delegation key.\n */\nexport interface UserDelegationKey {\n /**\n * The Azure Active Directory object ID in GUID format.\n */\n signedObjectId: string;\n /**\n * The Azure Active Directory tenant ID in GUID format.\n */\n signedTenantId: string;\n /**\n * The date-time the key is active.\n */\n signedStartsOn: Date;\n /**\n * The date-time the key expires.\n */\n signedExpiresOn: Date;\n /**\n * Abbreviation of the Azure Storage service that accepts the key.\n */\n signedService: string;\n /**\n * The service version that created the key.\n */\n signedVersion: string;\n /**\n * The key as a base64 string.\n */\n value: string;\n}\n\n/**\n * Contains response data for the {@link getUserDelegationKey} operation.\n */\nexport declare type ServiceGetUserDelegationKeyResponse = WithResponse<\n UserDelegationKey & ServiceGetUserDelegationKeyHeaders,\n ServiceGetUserDelegationKeyHeaders,\n UserDelegationKeyModel\n>;\n\n/**\n * Options to configure {@link BlobServiceClient.undeleteContainer} operation.\n */\nexport interface ServiceUndeleteContainerOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Optional. Specifies the new name of the restored container.\n * Will use its original name if this is not specified.\n * @deprecated Restore container to a different name is not supported by service anymore.\n */\n destinationContainerName?: string;\n}\n\n/**\n * Options to configure {@link BlobServiceClient.renameContainer} operation.\n */\nexport interface ServiceRenameContainerOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Condition to meet for the source container.\n */\n sourceCondition?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure {@link BlobServiceClient.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 * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n}\n\n/**\n * A BlobServiceClient represents a Client to the Azure Storage Blob service allowing you\n * to manipulate blob containers.\n */\nexport class BlobServiceClient extends StorageClient {\n /**\n * serviceContext provided by protocol layer.\n */\n private serviceContext: Service;\n\n /**\n *\n * Creates an instance of BlobServiceClient from connection string.\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 - Optional. Options to configure the HTTP pipeline.\n */\n public static fromConnectionString(\n connectionString: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ): BlobServiceClient {\n options = options || {};\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNodeLike) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n const pipeline = newPipeline(sharedKeyCredential, options);\n return new BlobServiceClient(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 BlobServiceClient(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 * Creates an instance of BlobServiceClient.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n * Example using DefaultAzureCredential from `@azure/identity`:\n *\n * ```ts snippet:ReadmeSampleCreateClient_DefaultAzureCredential\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n *\n * // Enter your storage account name\n * const account = \"<account>\";\n * const defaultAzureCredential = new DefaultAzureCredential();\n *\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * defaultAzureCredential,\n * );\n * ```\n *\n * Example using an account name/key:\n *\n * ```ts snippet:ReadmeSampleCreateClient_StorageSharedKeyCredential\n * import { StorageSharedKeyCredential, BlobServiceClient } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const accountKey = \"<accountkey>\";\n *\n * // Use StorageSharedKeyCredential with storage account and account key\n * // StorageSharedKeyCredential is only available in Node.js runtime, not in browsers\n * const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * sharedKeyCredential,\n * );\n * ```\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of BlobServiceClient.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ) {\n let pipeline: PipelineLike;\n if (isPipelineLike(credentialOrPipeline)) {\n pipeline = credentialOrPipeline;\n } else if (\n (isNodeLike && 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 ContainerClient} object\n *\n * @param containerName - A container name\n * @returns A new ContainerClient object for the given container name.\n *\n * Example usage:\n *\n * ```ts snippet:BlobServiceClientGetContainerClient\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const containerClient = blobServiceClient.getContainerClient(\"<container name>\");\n * ```\n */\n public getContainerClient(containerName: string): ContainerClient {\n return new ContainerClient(\n appendToURLPath(this.url, encodeURIComponent(containerName)),\n this.pipeline,\n );\n }\n\n /**\n * Create a Blob container. @see https://learn.microsoft.com/rest/api/storageservices/create-container\n *\n * @param containerName - Name of the container to create.\n * @param options - Options to configure Container Create operation.\n * @returns Container creation response and the corresponding container client.\n */\n public async createContainer(\n containerName: string,\n options: ContainerCreateOptions = {},\n ): Promise<{\n containerClient: ContainerClient;\n containerCreateResponse: ContainerCreateResponse;\n }> {\n return tracingClient.withSpan(\n \"BlobServiceClient-createContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(containerName);\n const containerCreateResponse = await containerClient.create(updatedOptions);\n return {\n containerClient,\n containerCreateResponse,\n };\n },\n );\n }\n\n /**\n * Deletes a Blob container.\n *\n * @param containerName - Name of the container to delete.\n * @param options - Options to configure Container Delete operation.\n * @returns Container deletion response.\n */\n public async deleteContainer(\n containerName: string,\n options: ContainerDeleteMethodOptions = {},\n ): Promise<ContainerDeleteResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-deleteContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(containerName);\n return containerClient.delete(updatedOptions);\n },\n );\n }\n\n /**\n * Restore a previously deleted Blob container.\n * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container.\n *\n * @param deletedContainerName - Name of the previously deleted container.\n * @param deletedContainerVersion - Version of the previously deleted container, used to uniquely identify the deleted container.\n * @param options - Options to configure Container Restore operation.\n * @returns Container deletion response.\n */\n public async undeleteContainer(\n deletedContainerName: string,\n deletedContainerVersion: string,\n options: ServiceUndeleteContainerOptions = {},\n ): Promise<{\n containerClient: ContainerClient;\n containerUndeleteResponse: ContainerUndeleteResponse;\n }> {\n return tracingClient.withSpan(\n \"BlobServiceClient-undeleteContainer\",\n options,\n async (updatedOptions) => {\n const containerClient = this.getContainerClient(\n options.destinationContainerName || deletedContainerName,\n );\n // Hack to access a protected member.\n const containerContext = containerClient[\"storageClientContext\"].container;\n const containerUndeleteResponse = assertResponse<\n ContainerRestoreHeaders,\n ContainerRestoreHeaders\n >(\n await containerContext.restore({\n deletedContainerName,\n deletedContainerVersion,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n return { containerClient, containerUndeleteResponse };\n },\n );\n }\n\n /**\n * Gets the properties of a storage account’s Blob service, including properties\n * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-blob-service-properties\n *\n * @param options - Options to the Service Get Properties operation.\n * @returns Response data for the Service Get Properties operation.\n */\n public async getProperties(\n options: ServiceGetPropertiesOptions = {},\n ): Promise<ServiceGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetPropertiesResponseInternal, ServiceGetPropertiesHeaders>(\n await this.serviceContext.getProperties({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Sets properties for a storage account’s Blob service endpoint, including properties\n * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-blob-service-properties\n *\n * @param properties -\n * @param options - Options to the Service Set Properties operation.\n * @returns Response data for the Service Set Properties operation.\n */\n public async setProperties(\n properties: BlobServiceProperties,\n options: ServiceSetPropertiesOptions = {},\n ): Promise<ServiceSetPropertiesResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-setProperties\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceSetPropertiesHeaders, ServiceSetPropertiesHeaders>(\n await this.serviceContext.setProperties(properties, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Blob 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/rest/api/storageservices/get-blob-service-stats\n *\n * @param options - Options to the Service Get Statistics operation.\n * @returns Response data for the Service Get Statistics operation.\n */\n public async getStatistics(\n options: ServiceGetStatisticsOptions = {},\n ): Promise<ServiceGetStatisticsResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getStatistics\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetStatisticsResponseInternal, ServiceGetStatisticsHeaders>(\n await this.serviceContext.getStatistics({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * The Get Account Information operation returns the sku name and account kind\n * for the specified account.\n * The Get Account Information operation is available on service versions beginning\n * with version 2018-03-28.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-account-information\n *\n * @param options - Options to the Service Get Account Info operation.\n * @returns Response data for the Service Get Account Info operation.\n */\n public async getAccountInfo(\n options: ServiceGetAccountInfoOptions = {},\n ): Promise<ServiceGetAccountInfoResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getAccountInfo\",\n options,\n async (updatedOptions) => {\n return assertResponse<ServiceGetAccountInfoHeaders, ServiceGetAccountInfoHeaders>(\n await this.serviceContext.getAccountInfo({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Returns a list of the containers under the specified account.\n * @see https://learn.microsoft.com/rest/api/storageservices/list-containers2\n *\n * @param marker - A string value that identifies the portion of\n * the list of containers 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 containers 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 the Service List Container Segment operation.\n * @returns Response data for the Service List Container Segment operation.\n */\n private async listContainersSegment(\n marker?: string,\n options: ServiceListContainersSegmentOptions = {},\n ): Promise<ServiceListContainersSegmentResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-listContainersSegment\",\n options,\n async (updatedOptions) => {\n return assertResponse<\n ServiceListContainersSegmentResponseInternal,\n ServiceListContainersSegmentHeaders\n >(\n await this.serviceContext.listContainersSegment({\n abortSignal: options.abortSignal,\n marker,\n ...options,\n include: typeof options.include === \"string\" ? [options.include] : options.include,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * The Filter Blobs operation enables callers to list blobs across all containers whose tags\n * match a given search expression. Filter blobs searches across all containers within a\n * storage account but can be scoped within the expression to a single container.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param marker - A string value that identifies the portion of\n * the list of blobs 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 blobs 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 find blobs by tags.\n */\n private async findBlobsByTagsSegment(\n tagFilterSqlExpression: string,\n marker?: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): Promise<ServiceFindBlobsByTagsSegmentResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-findBlobsByTagsSegment\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n ServiceFilterBlobsResponse,\n ServiceFilterBlobsHeaders,\n FilterBlobSegmentModel\n >(\n await this.serviceContext.filterBlobs({\n abortSignal: options.abortSignal,\n where: tagFilterSqlExpression,\n marker,\n maxPageSize: options.maxPageSize,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n const wrappedResponse: ServiceFindBlobsByTagsSegmentResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n blobs: response.blobs.map((blob) => {\n let tagValue = \"\";\n if (blob.tags?.blobTagSet.length === 1) {\n tagValue = blob.tags.blobTagSet[0].value;\n }\n return { ...blob, tags: toTags(blob.tags), tagValue };\n }),\n };\n return wrappedResponse;\n },\n );\n }\n\n /**\n * Returns an AsyncIterableIterator for ServiceFindBlobsByTagsSegmentResponse.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param marker - A string value that identifies the portion of\n * the list of blobs 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 blobs 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 find blobs by tags.\n */\n private async *findBlobsByTagsSegments(\n tagFilterSqlExpression: string,\n marker?: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): AsyncIterableIterator<ServiceFindBlobsByTagsSegmentResponse> {\n let response;\n if (!!marker || marker === undefined) {\n do {\n response = await this.findBlobsByTagsSegment(tagFilterSqlExpression, marker, options);\n response.blobs = response.blobs || [];\n marker = response.continuationToken;\n yield response;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for blobs.\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param options - Options to findBlobsByTagsItems.\n */\n private async *findBlobsByTagsItems(\n tagFilterSqlExpression: string,\n options: ServiceFindBlobsByTagsSegmentOptions = {},\n ): AsyncIterableIterator<FilterBlobItem> {\n let marker: string | undefined;\n for await (const segment of this.findBlobsByTagsSegments(\n tagFilterSqlExpression,\n marker,\n options,\n )) {\n yield* segment.blobs;\n }\n }\n\n /**\n * Returns an async iterable iterator to find all blobs with specified tag\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the blobs in pages.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-blob-service-properties\n *\n * ```ts snippet:BlobServiceClientFindBlobsByTags\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * // Use for await to iterate the blobs\n * let i = 1;\n * for await (const blob of blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\")) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n *\n * // Use iter.next() to iterate the blobs\n * i = 1;\n * const iter = blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\");\n * let { value, done } = await iter.next();\n * while (!done) {\n * console.log(`Blob ${i++}: ${value.name}`);\n * ({ value, done } = await iter.next());\n * }\n *\n * // Use byPage() to iterate the blobs\n * i = 1;\n * for await (const page of blobServiceClient\n * .findBlobsByTags(\"tagkey='tagvalue'\")\n * .byPage({ maxPageSize: 20 })) {\n * for (const blob of page.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n *\n * // Use paging with a marker\n * i = 1;\n * let iterator = blobServiceClient.findBlobsByTags(\"tagkey='tagvalue'\").byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n * // Prints 2 blob names\n * if (response.blobs) {\n * for (const blob of response.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n * // Gets next marker\n * let marker = response.continuationToken;\n * // Passing next marker as continuationToken\n * iterator = blobServiceClient\n * .findBlobsByTags(\"tagkey='tagvalue'\")\n * .byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints blob names\n * if (response.blobs) {\n * for (const blob of response.blobs) {\n * console.log(`Blob ${i++}: ${blob.name}`);\n * }\n * }\n * ```\n *\n * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.\n * The given expression must evaluate to true for a blob to be returned in the results.\n * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;\n * however, only a subset of the OData filter syntax is supported in the Blob service.\n * @param options - Options to find blobs by tags.\n */\n public findBlobsByTags(\n tagFilterSqlExpression: string,\n options: ServiceFindBlobByTagsOptions = {},\n ): PagedAsyncIterableIterator<FilterBlobItem, ServiceFindBlobsByTagsSegmentResponse> {\n // AsyncIterableIterator to iterate over blobs\n const listSegmentOptions: ServiceFindBlobsByTagsSegmentOptions = {\n ...options,\n };\n\n const iter = this.findBlobsByTagsItems(tagFilterSqlExpression, listSegmentOptions);\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.findBlobsByTagsSegments(tagFilterSqlExpression, settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...listSegmentOptions,\n });\n },\n };\n }\n\n /**\n * Returns an AsyncIterableIterator for ServiceListContainersSegmentResponses\n *\n * @param marker - A string value that identifies the portion of\n * the list of containers 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 containers 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 containers operation.\n */\n private async *listSegments(\n marker?: string,\n options: ServiceListContainersSegmentOptions = {},\n ): AsyncIterableIterator<ServiceListContainersSegmentResponse> {\n let listContainersSegmentResponse;\n if (!!marker || marker === undefined) {\n do {\n listContainersSegmentResponse = await this.listContainersSegment(marker, options);\n listContainersSegmentResponse.containerItems =\n listContainersSegmentResponse.containerItems || [];\n marker = listContainersSegmentResponse.continuationToken;\n yield await listContainersSegmentResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator for Container Items\n *\n * @param options - Options to list containers operation.\n */\n private async *listItems(\n options: ServiceListContainersSegmentOptions = {},\n ): AsyncIterableIterator<ContainerItem> {\n let marker: string | undefined;\n for await (const segment of this.listSegments(marker, options)) {\n yield* segment.containerItems;\n }\n }\n\n /**\n * Returns an async iterable iterator to list all the containers\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the containers in pages.\n *\n * ```ts snippet:BlobServiceClientListContainers\n * import { BlobServiceClient } from \"@azure/storage-blob\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * // Use for await to iterate the containers\n * let i = 1;\n * for await (const container of blobServiceClient.listContainers()) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n *\n * // Use iter.next() to iterate the containers\n * i = 1;\n * const iter = blobServiceClient.listContainers();\n * let { value, done } = await iter.next();\n * while (!done) {\n * console.log(`Container ${i++}: ${value.name}`);\n * ({ value, done } = await iter.next());\n * }\n *\n * // Use byPage() to iterate the containers\n * i = 1;\n * for await (const page of blobServiceClient.listContainers().byPage({ maxPageSize: 20 })) {\n * for (const container of page.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n *\n * // Use paging with a marker\n * i = 1;\n * let iterator = blobServiceClient.listContainers().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 container names\n * if (response.containerItems) {\n * for (const container of response.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n * // Passing next marker as continuationToken\n * iterator = blobServiceClient\n * .listContainers()\n * .byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 container names\n * if (response.containerItems) {\n * for (const container of response.containerItems) {\n * console.log(`Container ${i++}: ${container.name}`);\n * }\n * }\n * ```\n *\n * @param options - Options to list containers.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listContainers(\n options: ServiceListContainersOptions = {},\n ): PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse> {\n if (options.prefix === \"\") {\n options.prefix = undefined;\n }\n\n const include: ListContainersIncludeType[] = [];\n if (options.includeDeleted) {\n include.push(\"deleted\");\n }\n if (options.includeMetadata) {\n include.push(\"metadata\");\n }\n if (options.includeSystem) {\n include.push(\"system\");\n }\n\n // AsyncIterableIterator to iterate over containers\n const listSegmentOptions: ServiceListContainersSegmentOptions = {\n ...options,\n ...(include.length > 0 ? { include } : {}),\n };\n\n const iter = this.listItems(listSegmentOptions);\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 ...listSegmentOptions,\n });\n },\n };\n }\n\n /**\n * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential).\n *\n * Retrieves a user delegation key for the Blob service. This is only a valid operation when using\n * bearer token authentication.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-user-delegation-key\n *\n * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time\n * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time\n */\n public async getUserDelegationKey(\n startsOn: Date,\n expiresOn: Date,\n options: ServiceGetUserDelegationKeyOptions = {},\n ): Promise<ServiceGetUserDelegationKeyResponse> {\n return tracingClient.withSpan(\n \"BlobServiceClient-getUserDelegationKey\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n ServiceGetUserDelegationKeyResponseModel,\n ServiceGetUserDelegationKeyHeaders,\n UserDelegationKeyModel\n >(\n await this.serviceContext.getUserDelegationKey(\n {\n startsOn: truncatedISO8061Date(startsOn, false),\n expiresOn: truncatedISO8061Date(expiresOn, false),\n },\n {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n },\n ),\n );\n\n const userDelegationKey = {\n signedObjectId: response.signedObjectId,\n signedTenantId: response.signedTenantId,\n signedStartsOn: new Date(response.signedStartsOn),\n signedExpiresOn: new Date(response.signedExpiresOn),\n signedService: response.signedService,\n signedVersion: response.signedVersion,\n value: response.value,\n };\n\n const res: ServiceGetUserDelegationKeyResponse = {\n _response: response._response,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n version: response.version,\n date: response.date,\n errorCode: response.errorCode,\n ...userDelegationKey,\n };\n\n return res;\n },\n );\n }\n\n /**\n * Creates a BlobBatchClient object to conduct batch operations.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n *\n * @returns A new BlobBatchClient object for this service.\n */\n public getBlobBatchClient(): BlobBatchClient {\n return new BlobBatchClient(this.url, this.pipeline);\n }\n\n /**\n * Only available for BlobServiceClient constructed with a shared key credential.\n *\n * Generates a Blob 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/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 provided.\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(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for BlobServiceClient constructed with a shared key credential.\n *\n * Generates string to sign for a Blob account Shared Access Signature (SAS) URI based on\n * the client properties and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/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 provided.\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(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n"]}