@azure/storage-blob 12.31.0 → 12.32.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/dist/browser/BatchUtils.d.ts +1 -1
  2. package/dist/browser/BatchUtils.d.ts.map +1 -0
  3. package/dist/browser/BatchUtils.js +1 -1
  4. package/dist/browser/BatchUtils.js.map +1 -0
  5. package/dist/browser/BlobDownloadResponse.d.ts +5 -2
  6. package/dist/browser/BlobDownloadResponse.d.ts.map +1 -0
  7. package/dist/browser/BlobDownloadResponse.js +9 -5
  8. package/dist/browser/BlobDownloadResponse.js.map +1 -0
  9. package/dist/browser/BlobQueryResponse.d.ts +1 -1
  10. package/dist/browser/BlobQueryResponse.d.ts.map +1 -0
  11. package/dist/browser/BlobQueryResponse.js +1 -1
  12. package/dist/browser/BlobQueryResponse.js.map +1 -0
  13. package/dist/browser/BlobServiceClient.d.ts +36 -5
  14. package/dist/browser/BlobServiceClient.d.ts.map +1 -1
  15. package/dist/browser/BlobServiceClient.js +29 -17
  16. package/dist/browser/BlobServiceClient.js.map +1 -1
  17. package/dist/browser/Clients.d.ts +68 -14
  18. package/dist/browser/Clients.d.ts.map +1 -1
  19. package/dist/browser/Clients.js +97 -28
  20. package/dist/browser/Clients.js.map +1 -1
  21. package/dist/browser/ContainerClient.d.ts +6 -4
  22. package/dist/browser/ContainerClient.d.ts.map +1 -1
  23. package/dist/browser/ContainerClient.js +8 -6
  24. package/dist/browser/ContainerClient.js.map +1 -1
  25. package/dist/browser/Pipeline.d.ts +2 -3
  26. package/dist/browser/Pipeline.d.ts.map +1 -1
  27. package/dist/browser/Pipeline.js.map +1 -1
  28. package/dist/browser/generated/src/models/index.d.ts +59 -4
  29. package/dist/browser/generated/src/models/index.d.ts.map +1 -1
  30. package/dist/browser/generated/src/models/index.js +2 -2
  31. package/dist/browser/generated/src/models/index.js.map +1 -1
  32. package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
  33. package/dist/browser/generated/src/models/mappers.js +65 -0
  34. package/dist/browser/generated/src/models/mappers.js.map +1 -1
  35. package/dist/browser/generated/src/models/parameters.d.ts +7 -0
  36. package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
  37. package/dist/browser/generated/src/models/parameters.js +71 -1
  38. package/dist/browser/generated/src/models/parameters.js.map +1 -1
  39. package/dist/browser/generated/src/operations/appendBlob.js +5 -0
  40. package/dist/browser/generated/src/operations/appendBlob.js.map +1 -1
  41. package/dist/browser/generated/src/operations/blob.js +3 -0
  42. package/dist/browser/generated/src/operations/blob.js.map +1 -1
  43. package/dist/browser/generated/src/operations/blockBlob.js +10 -0
  44. package/dist/browser/generated/src/operations/blockBlob.js.map +1 -1
  45. package/dist/browser/generated/src/operations/pageBlob.js +5 -0
  46. package/dist/browser/generated/src/operations/pageBlob.js.map +1 -1
  47. package/dist/browser/generated/src/storageClient.js +2 -2
  48. package/dist/browser/generated/src/storageClient.js.map +1 -1
  49. package/dist/browser/generatedModels.d.ts +4 -4
  50. package/dist/browser/generatedModels.d.ts.map +1 -1
  51. package/dist/browser/generatedModels.js.map +1 -1
  52. package/dist/browser/index.d.ts +9 -9
  53. package/dist/browser/index.d.ts.map +1 -0
  54. package/dist/browser/index.js +1 -2
  55. package/dist/browser/index.js.map +1 -0
  56. package/dist/browser/internal-avro/index.d.ts +9 -2
  57. package/dist/browser/internal-avro/index.d.ts.map +1 -0
  58. package/dist/browser/internal-avro/index.js +14 -1
  59. package/dist/browser/internal-avro/index.js.map +1 -0
  60. package/dist/browser/models.d.ts +43 -0
  61. package/dist/browser/models.d.ts.map +1 -1
  62. package/dist/browser/models.js.map +1 -1
  63. package/dist/browser/sas/BlobSASSignatureValues.d.ts +11 -1
  64. package/dist/browser/sas/BlobSASSignatureValues.d.ts.map +1 -1
  65. package/dist/browser/sas/BlobSASSignatureValues.js +133 -2
  66. package/dist/browser/sas/BlobSASSignatureValues.js.map +1 -1
  67. package/dist/browser/sas/SASQueryParameters.d.ts +23 -2
  68. package/dist/browser/sas/SASQueryParameters.d.ts.map +1 -1
  69. package/dist/browser/sas/SASQueryParameters.js +34 -2
  70. package/dist/browser/sas/SASQueryParameters.js.map +1 -1
  71. package/dist/browser/utils/RetriableReadableStream.d.ts.map +1 -1
  72. package/dist/browser/utils/RetriableReadableStream.js +1 -0
  73. package/dist/browser/utils/RetriableReadableStream.js.map +1 -1
  74. package/dist/browser/utils/constants.d.ts.map +1 -1
  75. package/dist/browser/utils/constants.js +2 -2
  76. package/dist/browser/utils/constants.js.map +1 -1
  77. package/dist/browser/utils/utils.common.d.ts +16 -1
  78. package/dist/browser/utils/utils.common.d.ts.map +1 -1
  79. package/dist/browser/utils/utils.common.js +26 -0
  80. package/dist/browser/utils/utils.common.js.map +1 -1
  81. package/dist/browser/utils/utils.d.ts +12 -6
  82. package/dist/browser/utils/utils.d.ts.map +1 -0
  83. package/dist/browser/utils/utils.js +11 -11
  84. package/dist/browser/utils/utils.js.map +1 -0
  85. package/dist/commonjs/BatchResponse.js +15 -5
  86. package/dist/commonjs/BatchResponse.js.map +7 -1
  87. package/dist/commonjs/BatchResponseParser.js +127 -136
  88. package/dist/commonjs/BatchResponseParser.js.map +7 -1
  89. package/dist/commonjs/BatchUtils.js +38 -15
  90. package/dist/commonjs/BatchUtils.js.map +7 -1
  91. package/dist/commonjs/BlobBatch.js +280 -258
  92. package/dist/commonjs/BlobBatch.js.map +7 -1
  93. package/dist/commonjs/BlobBatchClient.js +188 -169
  94. package/dist/commonjs/BlobBatchClient.js.map +7 -1
  95. package/dist/commonjs/BlobDownloadResponse.d.ts +2 -1
  96. package/dist/commonjs/BlobDownloadResponse.d.ts.map +1 -1
  97. package/dist/commonjs/BlobDownloadResponse.js +487 -467
  98. package/dist/commonjs/BlobDownloadResponse.js.map +7 -1
  99. package/dist/commonjs/BlobLeaseClient.js +226 -196
  100. package/dist/commonjs/BlobLeaseClient.js.map +7 -1
  101. package/dist/commonjs/BlobQueryResponse.common.js +378 -365
  102. package/dist/commonjs/BlobQueryResponse.common.js.map +7 -1
  103. package/dist/commonjs/BlobQueryResponse.js +387 -371
  104. package/dist/commonjs/BlobQueryResponse.js.map +7 -1
  105. package/dist/commonjs/BlobServiceClient.d.ts +36 -5
  106. package/dist/commonjs/BlobServiceClient.d.ts.map +1 -1
  107. package/dist/commonjs/BlobServiceClient.js +784 -684
  108. package/dist/commonjs/BlobServiceClient.js.map +7 -1
  109. package/dist/commonjs/Clients.d.ts +68 -14
  110. package/dist/commonjs/Clients.d.ts.map +1 -1
  111. package/dist/commonjs/Clients.js +3120 -2804
  112. package/dist/commonjs/Clients.js.map +7 -1
  113. package/dist/commonjs/ContainerClient.d.ts +6 -4
  114. package/dist/commonjs/ContainerClient.d.ts.map +1 -1
  115. package/dist/commonjs/ContainerClient.js +1348 -1253
  116. package/dist/commonjs/ContainerClient.js.map +7 -1
  117. package/dist/commonjs/PageBlobRangeResponse.js +45 -31
  118. package/dist/commonjs/PageBlobRangeResponse.js.map +7 -1
  119. package/dist/commonjs/Pipeline.d.ts +2 -3
  120. package/dist/commonjs/Pipeline.d.ts.map +1 -1
  121. package/dist/commonjs/Pipeline.js +244 -244
  122. package/dist/commonjs/Pipeline.js.map +7 -1
  123. package/dist/commonjs/Range.js +35 -22
  124. package/dist/commonjs/Range.js.map +7 -1
  125. package/dist/commonjs/StorageClient.js +67 -54
  126. package/dist/commonjs/StorageClient.js.map +7 -1
  127. package/dist/commonjs/StorageContextClient.js +34 -19
  128. package/dist/commonjs/StorageContextClient.js.map +7 -1
  129. package/dist/commonjs/generated/src/index.js +32 -16
  130. package/dist/commonjs/generated/src/index.js.map +7 -1
  131. package/dist/commonjs/generated/src/models/index.d.ts +59 -4
  132. package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
  133. package/dist/commonjs/generated/src/models/index.js +164 -267
  134. package/dist/commonjs/generated/src/models/index.js.map +7 -1
  135. package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
  136. package/dist/commonjs/generated/src/models/mappers.js +8767 -8334
  137. package/dist/commonjs/generated/src/models/mappers.js.map +7 -1
  138. package/dist/commonjs/generated/src/models/parameters.d.ts +7 -0
  139. package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
  140. package/dist/commonjs/generated/src/models/parameters.js +2074 -1679
  141. package/dist/commonjs/generated/src/models/parameters.js.map +7 -1
  142. package/dist/commonjs/generated/src/operations/appendBlob.js +253 -214
  143. package/dist/commonjs/generated/src/operations/appendBlob.js.map +7 -1
  144. package/dist/commonjs/generated/src/operations/blob.js +1043 -961
  145. package/dist/commonjs/generated/src/operations/blob.js.map +7 -1
  146. package/dist/commonjs/generated/src/operations/blockBlob.js +406 -353
  147. package/dist/commonjs/generated/src/operations/blockBlob.js.map +7 -1
  148. package/dist/commonjs/generated/src/operations/container.js +735 -665
  149. package/dist/commonjs/generated/src/operations/container.js.map +7 -1
  150. package/dist/commonjs/generated/src/operations/index.js +31 -17
  151. package/dist/commonjs/generated/src/operations/index.js.map +7 -1
  152. package/dist/commonjs/generated/src/operations/pageBlob.js +491 -434
  153. package/dist/commonjs/generated/src/operations/pageBlob.js.map +7 -1
  154. package/dist/commonjs/generated/src/operations/service.js +352 -303
  155. package/dist/commonjs/generated/src/operations/service.js.map +7 -1
  156. package/dist/commonjs/generated/src/operationsInterfaces/appendBlob.js +15 -10
  157. package/dist/commonjs/generated/src/operationsInterfaces/appendBlob.js.map +7 -1
  158. package/dist/commonjs/generated/src/operationsInterfaces/blob.js +15 -10
  159. package/dist/commonjs/generated/src/operationsInterfaces/blob.js.map +7 -1
  160. package/dist/commonjs/generated/src/operationsInterfaces/blockBlob.js +15 -10
  161. package/dist/commonjs/generated/src/operationsInterfaces/blockBlob.js.map +7 -1
  162. package/dist/commonjs/generated/src/operationsInterfaces/container.js +15 -10
  163. package/dist/commonjs/generated/src/operationsInterfaces/container.js.map +7 -1
  164. package/dist/commonjs/generated/src/operationsInterfaces/index.js +31 -17
  165. package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +7 -1
  166. package/dist/commonjs/generated/src/operationsInterfaces/pageBlob.js +15 -10
  167. package/dist/commonjs/generated/src/operationsInterfaces/pageBlob.js.map +7 -1
  168. package/dist/commonjs/generated/src/operationsInterfaces/service.js +15 -10
  169. package/dist/commonjs/generated/src/operationsInterfaces/service.js.map +7 -1
  170. package/dist/commonjs/generated/src/storageClient.js +81 -63
  171. package/dist/commonjs/generated/src/storageClient.js.map +7 -1
  172. package/dist/commonjs/generatedModels.d.ts +4 -4
  173. package/dist/commonjs/generatedModels.d.ts.map +1 -1
  174. package/dist/commonjs/generatedModels.js +30 -11
  175. package/dist/commonjs/generatedModels.js.map +7 -1
  176. package/dist/commonjs/index.d.ts +14 -14
  177. package/dist/commonjs/index.d.ts.map +1 -1
  178. package/dist/commonjs/index.js +106 -52
  179. package/dist/commonjs/index.js.map +7 -1
  180. package/dist/commonjs/internal-avro/AvroConstants.js +36 -10
  181. package/dist/commonjs/internal-avro/AvroConstants.js.map +7 -1
  182. package/dist/commonjs/internal-avro/AvroParser.js +307 -297
  183. package/dist/commonjs/internal-avro/AvroParser.js.map +7 -1
  184. package/dist/commonjs/internal-avro/AvroReadable.js +26 -7
  185. package/dist/commonjs/internal-avro/AvroReadable.js.map +7 -1
  186. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js +69 -50
  187. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js.map +7 -1
  188. package/dist/commonjs/internal-avro/AvroReadableFromStream.js +96 -84
  189. package/dist/commonjs/internal-avro/AvroReadableFromStream.js.map +7 -1
  190. package/dist/commonjs/internal-avro/AvroReader.js +118 -110
  191. package/dist/commonjs/internal-avro/AvroReader.js.map +7 -1
  192. package/dist/commonjs/internal-avro/index.d.ts +1 -1
  193. package/dist/commonjs/internal-avro/index.d.ts.map +1 -1
  194. package/dist/commonjs/internal-avro/index.js +33 -12
  195. package/dist/commonjs/internal-avro/index.js.map +7 -1
  196. package/dist/commonjs/internal-avro/utils/utils.common.js +33 -17
  197. package/dist/commonjs/internal-avro/utils/utils.common.js.map +7 -1
  198. package/dist/commonjs/log.js +28 -11
  199. package/dist/commonjs/log.js.map +7 -1
  200. package/dist/commonjs/models.d.ts +43 -0
  201. package/dist/commonjs/models.d.ts.map +1 -1
  202. package/dist/commonjs/models.js +74 -115
  203. package/dist/commonjs/models.js.map +7 -1
  204. package/dist/commonjs/pollers/BlobStartCopyFromUrlPoller.js +116 -126
  205. package/dist/commonjs/pollers/BlobStartCopyFromUrlPoller.js.map +7 -1
  206. package/dist/commonjs/sas/AccountSASPermissions.js +233 -226
  207. package/dist/commonjs/sas/AccountSASPermissions.js.map +7 -1
  208. package/dist/commonjs/sas/AccountSASResourceTypes.js +80 -70
  209. package/dist/commonjs/sas/AccountSASResourceTypes.js.map +7 -1
  210. package/dist/commonjs/sas/AccountSASServices.js +88 -78
  211. package/dist/commonjs/sas/AccountSASServices.js.map +7 -1
  212. package/dist/commonjs/sas/AccountSASSignatureValues.js +119 -100
  213. package/dist/commonjs/sas/AccountSASSignatureValues.js.map +7 -1
  214. package/dist/commonjs/sas/BlobSASPermissions.js +204 -194
  215. package/dist/commonjs/sas/BlobSASPermissions.js.map +7 -1
  216. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts +11 -1
  217. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts.map +1 -1
  218. package/dist/commonjs/sas/BlobSASSignatureValues.js +822 -641
  219. package/dist/commonjs/sas/BlobSASSignatureValues.js.map +7 -1
  220. package/dist/commonjs/sas/ContainerSASPermissions.js +232 -220
  221. package/dist/commonjs/sas/ContainerSASPermissions.js.map +7 -1
  222. package/dist/commonjs/sas/SASQueryParameters.d.ts +23 -2
  223. package/dist/commonjs/sas/SASQueryParameters.d.ts.map +1 -1
  224. package/dist/commonjs/sas/SASQueryParameters.js +423 -361
  225. package/dist/commonjs/sas/SASQueryParameters.js.map +7 -1
  226. package/dist/commonjs/sas/SasIPRange.js +27 -14
  227. package/dist/commonjs/sas/SasIPRange.js.map +7 -1
  228. package/dist/commonjs/tsdoc-metadata.json +1 -1
  229. package/dist/commonjs/utils/Batch.js +134 -127
  230. package/dist/commonjs/utils/Batch.js.map +7 -1
  231. package/dist/commonjs/utils/BlobQuickQueryStream.js +129 -115
  232. package/dist/commonjs/utils/BlobQuickQueryStream.js.map +7 -1
  233. package/dist/commonjs/utils/Mutex.js +78 -64
  234. package/dist/commonjs/utils/Mutex.js.map +7 -1
  235. package/dist/commonjs/utils/RetriableReadableStream.d.ts.map +1 -1
  236. package/dist/commonjs/utils/RetriableReadableStream.js +128 -125
  237. package/dist/commonjs/utils/RetriableReadableStream.js.map +7 -1
  238. package/dist/commonjs/utils/SharedKeyComparator.js +437 -65
  239. package/dist/commonjs/utils/SharedKeyComparator.js.map +7 -1
  240. package/dist/commonjs/utils/constants.d.ts.map +1 -1
  241. package/dist/commonjs/utils/constants.js +290 -223
  242. package/dist/commonjs/utils/constants.js.map +7 -1
  243. package/dist/commonjs/utils/tracing.js +32 -16
  244. package/dist/commonjs/utils/tracing.js.map +7 -1
  245. package/dist/commonjs/utils/utils.common.d.ts +16 -1
  246. package/dist/commonjs/utils/utils.common.d.ts.map +1 -1
  247. package/dist/commonjs/utils/utils.common.js +566 -740
  248. package/dist/commonjs/utils/utils.common.js.map +7 -1
  249. package/dist/commonjs/utils/utils.js +131 -128
  250. package/dist/commonjs/utils/utils.js.map +7 -1
  251. package/dist/esm/BlobDownloadResponse.d.ts +2 -1
  252. package/dist/esm/BlobDownloadResponse.d.ts.map +1 -1
  253. package/dist/esm/BlobDownloadResponse.js +8 -1
  254. package/dist/esm/BlobDownloadResponse.js.map +1 -1
  255. package/dist/esm/BlobServiceClient.d.ts +36 -5
  256. package/dist/esm/BlobServiceClient.d.ts.map +1 -1
  257. package/dist/esm/BlobServiceClient.js +29 -17
  258. package/dist/esm/BlobServiceClient.js.map +1 -1
  259. package/dist/esm/Clients.d.ts +68 -14
  260. package/dist/esm/Clients.d.ts.map +1 -1
  261. package/dist/esm/Clients.js +97 -28
  262. package/dist/esm/Clients.js.map +1 -1
  263. package/dist/esm/ContainerClient.d.ts +6 -4
  264. package/dist/esm/ContainerClient.d.ts.map +1 -1
  265. package/dist/esm/ContainerClient.js +8 -6
  266. package/dist/esm/ContainerClient.js.map +1 -1
  267. package/dist/esm/Pipeline.d.ts +2 -3
  268. package/dist/esm/Pipeline.d.ts.map +1 -1
  269. package/dist/esm/Pipeline.js.map +1 -1
  270. package/dist/esm/generated/src/models/index.d.ts +59 -4
  271. package/dist/esm/generated/src/models/index.d.ts.map +1 -1
  272. package/dist/esm/generated/src/models/index.js +2 -2
  273. package/dist/esm/generated/src/models/index.js.map +1 -1
  274. package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
  275. package/dist/esm/generated/src/models/mappers.js +65 -0
  276. package/dist/esm/generated/src/models/mappers.js.map +1 -1
  277. package/dist/esm/generated/src/models/parameters.d.ts +7 -0
  278. package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
  279. package/dist/esm/generated/src/models/parameters.js +71 -1
  280. package/dist/esm/generated/src/models/parameters.js.map +1 -1
  281. package/dist/esm/generated/src/operations/appendBlob.js +5 -0
  282. package/dist/esm/generated/src/operations/appendBlob.js.map +1 -1
  283. package/dist/esm/generated/src/operations/blob.js +3 -0
  284. package/dist/esm/generated/src/operations/blob.js.map +1 -1
  285. package/dist/esm/generated/src/operations/blockBlob.js +10 -0
  286. package/dist/esm/generated/src/operations/blockBlob.js.map +1 -1
  287. package/dist/esm/generated/src/operations/pageBlob.js +5 -0
  288. package/dist/esm/generated/src/operations/pageBlob.js.map +1 -1
  289. package/dist/esm/generated/src/storageClient.js +2 -2
  290. package/dist/esm/generated/src/storageClient.js.map +1 -1
  291. package/dist/esm/generatedModels.d.ts +4 -4
  292. package/dist/esm/generatedModels.d.ts.map +1 -1
  293. package/dist/esm/generatedModels.js.map +1 -1
  294. package/dist/esm/index.d.ts +14 -14
  295. package/dist/esm/index.d.ts.map +1 -1
  296. package/dist/esm/index.js +0 -1
  297. package/dist/esm/index.js.map +1 -1
  298. package/dist/esm/internal-avro/index.d.ts +1 -1
  299. package/dist/esm/internal-avro/index.d.ts.map +1 -1
  300. package/dist/esm/internal-avro/index.js.map +1 -1
  301. package/dist/esm/models.d.ts +43 -0
  302. package/dist/esm/models.d.ts.map +1 -1
  303. package/dist/esm/models.js.map +1 -1
  304. package/dist/esm/sas/BlobSASSignatureValues.d.ts +11 -1
  305. package/dist/esm/sas/BlobSASSignatureValues.d.ts.map +1 -1
  306. package/dist/esm/sas/BlobSASSignatureValues.js +133 -2
  307. package/dist/esm/sas/BlobSASSignatureValues.js.map +1 -1
  308. package/dist/esm/sas/SASQueryParameters.d.ts +23 -2
  309. package/dist/esm/sas/SASQueryParameters.d.ts.map +1 -1
  310. package/dist/esm/sas/SASQueryParameters.js +34 -2
  311. package/dist/esm/sas/SASQueryParameters.js.map +1 -1
  312. package/dist/esm/utils/RetriableReadableStream.d.ts.map +1 -1
  313. package/dist/esm/utils/RetriableReadableStream.js +1 -0
  314. package/dist/esm/utils/RetriableReadableStream.js.map +1 -1
  315. package/dist/esm/utils/constants.d.ts.map +1 -1
  316. package/dist/esm/utils/constants.js +2 -2
  317. package/dist/esm/utils/constants.js.map +1 -1
  318. package/dist/esm/utils/utils.common.d.ts +16 -1
  319. package/dist/esm/utils/utils.common.d.ts.map +1 -1
  320. package/dist/esm/utils/utils.common.js +26 -0
  321. package/dist/esm/utils/utils.common.js.map +1 -1
  322. package/dist/react-native/BlobDownloadResponse.d.ts +5 -2
  323. package/dist/react-native/BlobDownloadResponse.d.ts.map +1 -0
  324. package/dist/react-native/BlobDownloadResponse.js +9 -5
  325. package/dist/react-native/BlobDownloadResponse.js.map +1 -0
  326. package/dist/react-native/BlobQueryResponse.d.ts +1 -1
  327. package/dist/react-native/BlobQueryResponse.d.ts.map +1 -0
  328. package/dist/react-native/BlobQueryResponse.js +1 -1
  329. package/dist/react-native/BlobQueryResponse.js.map +1 -0
  330. package/dist/react-native/BlobServiceClient.d.ts +36 -5
  331. package/dist/react-native/BlobServiceClient.d.ts.map +1 -1
  332. package/dist/react-native/BlobServiceClient.js +29 -17
  333. package/dist/react-native/BlobServiceClient.js.map +1 -1
  334. package/dist/react-native/Clients.d.ts +68 -14
  335. package/dist/react-native/Clients.d.ts.map +1 -1
  336. package/dist/react-native/Clients.js +97 -28
  337. package/dist/react-native/Clients.js.map +1 -1
  338. package/dist/react-native/ContainerClient.d.ts +6 -4
  339. package/dist/react-native/ContainerClient.d.ts.map +1 -1
  340. package/dist/react-native/ContainerClient.js +8 -6
  341. package/dist/react-native/ContainerClient.js.map +1 -1
  342. package/dist/react-native/Pipeline.d.ts +2 -3
  343. package/dist/react-native/Pipeline.d.ts.map +1 -1
  344. package/dist/react-native/Pipeline.js.map +1 -1
  345. package/dist/react-native/generated/src/models/index.d.ts +59 -4
  346. package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
  347. package/dist/react-native/generated/src/models/index.js +2 -2
  348. package/dist/react-native/generated/src/models/index.js.map +1 -1
  349. package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
  350. package/dist/react-native/generated/src/models/mappers.js +65 -0
  351. package/dist/react-native/generated/src/models/mappers.js.map +1 -1
  352. package/dist/react-native/generated/src/models/parameters.d.ts +7 -0
  353. package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
  354. package/dist/react-native/generated/src/models/parameters.js +71 -1
  355. package/dist/react-native/generated/src/models/parameters.js.map +1 -1
  356. package/dist/react-native/generated/src/operations/appendBlob.js +5 -0
  357. package/dist/react-native/generated/src/operations/appendBlob.js.map +1 -1
  358. package/dist/react-native/generated/src/operations/blob.js +3 -0
  359. package/dist/react-native/generated/src/operations/blob.js.map +1 -1
  360. package/dist/react-native/generated/src/operations/blockBlob.js +10 -0
  361. package/dist/react-native/generated/src/operations/blockBlob.js.map +1 -1
  362. package/dist/react-native/generated/src/operations/pageBlob.js +5 -0
  363. package/dist/react-native/generated/src/operations/pageBlob.js.map +1 -1
  364. package/dist/react-native/generated/src/storageClient.js +2 -2
  365. package/dist/react-native/generated/src/storageClient.js.map +1 -1
  366. package/dist/react-native/generatedModels.d.ts +4 -4
  367. package/dist/react-native/generatedModels.d.ts.map +1 -1
  368. package/dist/react-native/generatedModels.js.map +1 -1
  369. package/dist/react-native/index.d.ts +14 -14
  370. package/dist/react-native/index.d.ts.map +1 -1
  371. package/dist/react-native/index.js +0 -1
  372. package/dist/react-native/index.js.map +1 -1
  373. package/dist/react-native/internal-avro/index.d.ts +1 -1
  374. package/dist/react-native/internal-avro/index.d.ts.map +1 -1
  375. package/dist/react-native/internal-avro/index.js.map +1 -1
  376. package/dist/react-native/models.d.ts +43 -0
  377. package/dist/react-native/models.d.ts.map +1 -1
  378. package/dist/react-native/models.js.map +1 -1
  379. package/dist/react-native/sas/BlobSASSignatureValues.d.ts +11 -1
  380. package/dist/react-native/sas/BlobSASSignatureValues.d.ts.map +1 -1
  381. package/dist/react-native/sas/BlobSASSignatureValues.js +133 -2
  382. package/dist/react-native/sas/BlobSASSignatureValues.js.map +1 -1
  383. package/dist/react-native/sas/SASQueryParameters.d.ts +23 -2
  384. package/dist/react-native/sas/SASQueryParameters.d.ts.map +1 -1
  385. package/dist/react-native/sas/SASQueryParameters.js +34 -2
  386. package/dist/react-native/sas/SASQueryParameters.js.map +1 -1
  387. package/dist/react-native/utils/RetriableReadableStream.d.ts.map +1 -1
  388. package/dist/react-native/utils/RetriableReadableStream.js +1 -0
  389. package/dist/react-native/utils/RetriableReadableStream.js.map +1 -1
  390. package/dist/react-native/utils/constants.d.ts.map +1 -1
  391. package/dist/react-native/utils/constants.js +2 -2
  392. package/dist/react-native/utils/constants.js.map +1 -1
  393. package/dist/react-native/utils/utils.common.d.ts +16 -1
  394. package/dist/react-native/utils/utils.common.d.ts.map +1 -1
  395. package/dist/react-native/utils/utils.common.js +26 -0
  396. package/dist/react-native/utils/utils.common.js.map +1 -1
  397. package/dist/react-native/utils/utils.d.ts +12 -6
  398. package/dist/react-native/utils/utils.d.ts.map +1 -0
  399. package/dist/react-native/utils/utils.js +11 -11
  400. package/dist/react-native/utils/utils.js.map +1 -0
  401. package/package.json +3 -20
  402. package/dist/browser/BatchUtils-browser.d.mts.map +0 -1
  403. package/dist/browser/BatchUtils-browser.mjs.map +0 -1
  404. package/dist/browser/BlobDownloadResponse-browser.d.mts.map +0 -1
  405. package/dist/browser/BlobDownloadResponse-browser.mjs.map +0 -1
  406. package/dist/browser/BlobQueryResponse-browser.d.mts.map +0 -1
  407. package/dist/browser/BlobQueryResponse-browser.mjs.map +0 -1
  408. package/dist/browser/credentials/StorageSharedKeyCredential-react-native.d.mts +0 -3
  409. package/dist/browser/credentials/StorageSharedKeyCredential-react-native.d.mts.map +0 -1
  410. package/dist/browser/credentials/StorageSharedKeyCredential-react-native.mjs +0 -5
  411. package/dist/browser/credentials/StorageSharedKeyCredential-react-native.mjs.map +0 -1
  412. package/dist/browser/index-browser.d.mts.map +0 -1
  413. package/dist/browser/index-browser.mjs.map +0 -1
  414. package/dist/browser/internal-avro/index-browser.d.mts.map +0 -1
  415. package/dist/browser/internal-avro/index-browser.mjs.map +0 -1
  416. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts +0 -17
  417. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts.map +0 -1
  418. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs +0 -18
  419. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs.map +0 -1
  420. package/dist/browser/utils/utils-browser.d.mts.map +0 -1
  421. package/dist/browser/utils/utils-browser.mjs.map +0 -1
  422. package/dist/esm/credentials/StorageSharedKeyCredential-react-native.d.mts +0 -3
  423. package/dist/esm/credentials/StorageSharedKeyCredential-react-native.d.mts.map +0 -1
  424. package/dist/esm/credentials/StorageSharedKeyCredential-react-native.mjs +0 -5
  425. package/dist/esm/credentials/StorageSharedKeyCredential-react-native.mjs.map +0 -1
  426. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts +0 -17
  427. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts.map +0 -1
  428. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs +0 -18
  429. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs.map +0 -1
  430. package/dist/react-native/BlobDownloadResponse-react-native.d.mts.map +0 -1
  431. package/dist/react-native/BlobDownloadResponse-react-native.mjs.map +0 -1
  432. package/dist/react-native/BlobQueryResponse-react-native.d.mts.map +0 -1
  433. package/dist/react-native/BlobQueryResponse-react-native.mjs.map +0 -1
  434. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.d.mts +0 -3
  435. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.d.mts.map +0 -1
  436. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.mjs +0 -5
  437. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.mjs.map +0 -1
  438. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts +0 -17
  439. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts.map +0 -1
  440. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs +0 -18
  441. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs.map +0 -1
  442. package/dist/react-native/utils/utils-react-native.d.mts.map +0 -1
  443. package/dist/react-native/utils/utils-react-native.mjs.map +0 -1
@@ -1 +1,7 @@
1
- {"version":3,"file":"BlobBatch.js","sourceRoot":"","sources":["../../src/BlobBatch.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,gDAA8C;AAE9C,gDAAqD;AAOrD,kEAImC;AACnC,gDAA8C;AAC9C,0DAI+B;AAE/B,6CAA0C;AAE1C,+CAAyC;AACzC,+CAAyC;AACzC,6DAAiF;AACjF,8CAA+C;AAC/C,uDAM8B;AAC9B,mDAAmD;AACnD,oDAA4F;AAmB5F;;;GAGG;AACH,MAAa,SAAS;IACZ,YAAY,CAAoB;IACvB,KAAK,GAAW,OAAO,CAAC;IACjC,SAAS,CAAyC;IAE1D;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,uBAAuB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,UAA2B,EAC3B,sBAA2C;QAE3C,MAAM,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,sBAAsB,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,MAAM,gBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,SAAqC;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAClB,yFAAyF,IAAI,CAAC,SAAS,cAAc,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAqCM,KAAK,CAAC,UAAU,CACrB,eAAoC,EACpC,mBAKa,EACb,OAA2B;QAE3B,IAAI,GAAW,CAAC;QAChB,IAAI,UAA8E,CAAC;QAEnF,IACE,OAAO,eAAe,KAAK,QAAQ;YACnC,CAAC,CAAC,sBAAU,IAAI,mBAAmB,YAAY,2CAA0B,CAAC;gBACxE,mBAAmB,YAAY,oCAAmB;gBAClD,IAAA,6BAAiB,EAAC,mBAAmB,CAAC,CAAC,EACzC,CAAC;YACD,iBAAiB;YACjB,GAAG,GAAG,eAAe,CAAC;YACtB,UAAU,GAAG,mBAAmB,CAAC;QACnC,CAAC;aAAM,IAAI,eAAe,YAAY,uBAAU,EAAE,CAAC;YACjD,kBAAkB;YAClB,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;YAC1B,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;YACxC,OAAO,GAAG,mBAAwC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,UAAU,CAClB,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,OAAO,0BAAa,CAAC,QAAQ,CAC3B,kCAAkC,EAClC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5B,MAAM,IAAI,CAAC,qBAAqB,CAC9B;gBACE,GAAG,EAAE,GAAG;gBACR,UAAU,EAAE,UAAU;aACvB,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,uBAAU,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAC5E,cAAc,CACf,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAgDM,KAAK,CAAC,iBAAiB,CAC5B,eAAoC,EACpC,gBAIc,EACd,aAA+C,EAC/C,OAA4B;QAE5B,IAAI,GAAW,CAAC;QAChB,IAAI,UAA8E,CAAC;QACnF,IAAI,IAAgB,CAAC;QAErB,IACE,OAAO,eAAe,KAAK,QAAQ;YACnC,CAAC,CAAC,sBAAU,IAAI,gBAAgB,YAAY,2CAA0B,CAAC;gBACrE,gBAAgB,YAAY,oCAAmB;gBAC/C,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,CAAC,EACtC,CAAC;YACD,iBAAiB;YACjB,GAAG,GAAG,eAAe,CAAC;YACtB,UAAU,GAAG,gBAGM,CAAC;YACpB,IAAI,GAAG,aAA2B,CAAC;QACrC,CAAC;aAAM,IAAI,eAAe,YAAY,uBAAU,EAAE,CAAC;YACjD,kBAAkB;YAClB,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;YAC1B,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;YACxC,IAAI,GAAG,gBAA8B,CAAC;YACtC,OAAO,GAAG,aAAmC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,UAAU,CAClB,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,OAAO,0BAAa,CAAC,QAAQ,CAC3B,mCAAmC,EACnC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,qBAAqB,CAC9B;gBACE,GAAG,EAAE,GAAG;gBACR,UAAU,EAAE,UAAU;aACvB,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,uBAAU,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CACnF,IAAI,EACJ,cAAc,CACf,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAnQD,8BAmQC;AAED;;;GAGG;AACH,MAAM,iBAAiB;IACb,cAAc,CAAS;IACvB,IAAI,CAAS;IACb,WAAW,CAA+B;IACjC,QAAQ,CAAS;IACjB,gBAAgB,CAAS;IACzB,oBAAoB,CAAS;IAC7B,kBAAkB,CAAS;IAE5C;QACE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEf,MAAM,QAAQ,GAAG,IAAA,sBAAU,GAAE,CAAC;QAE9B,kBAAkB;QAClB,IAAI,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC;QACpC,oBAAoB;QACpB,iCAAiC;QACjC,oCAAoC;QACpC,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,QAAQ,GAAG,+BAAgB,GAAG,8BAAe,CAAC,YAAY,qBAAqB,+BAAgB,GAAG,8BAAe,CAAC,yBAAyB,UAAU,CAAC;QACxL,4CAA4C;QAC5C,IAAI,CAAC,oBAAoB,GAAG,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzE,sBAAsB;QACtB,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEjD,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CACnB,UAA8E;QAE9E,MAAM,YAAY,GAAG,IAAA,wCAAmB,GAAE,CAAC;QAC3C,YAAY,CAAC,SAAS,CACpB,IAAA,iCAAmB,EAAC;YAClB,YAAY,EAAZ,uBAAY;YACZ,iBAAiB,EAAE;gBACjB,GAAG,EAAE;oBACH,UAAU,EAAE,GAAG;iBAChB;aACF;SACF,CAAC,EACF,EAAE,KAAK,EAAE,WAAW,EAAE,CACvB,CAAC;QACF,gEAAgE;QAChE,YAAY,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAClD,yFAAyF;QACzF,YAAY,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,IAAI,IAAA,6BAAiB,EAAC,UAAU,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,SAAS,CACpB,IAAA,oDAA+B,EAAC;gBAC9B,UAAU;gBACV,MAAM,EAAE,iCAAkB;gBAC1B,kBAAkB,EAAE,EAAE,2BAA2B,EAAE,+CAAiC,EAAE;aACvF,CAAC,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,YAAY,2CAA0B,EAAE,CAAC;YAC5D,YAAY,CAAC,SAAS,CACpB,IAAA,iDAAgC,EAAC;gBAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,UAAU,EAAG,UAAkB,CAAC,UAAU;aAC3C,CAAC,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,sBAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,qCAAqC;QACpC,QAAgB,CAAC,WAAW,GAAG,UAAU,CAAC;QAC1C,QAAgB,CAAC,aAAa,GAAG,YAAY,CAAC;QAE/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,sBAAsB,CAAC,OAAwB;QACpD,gCAAgC;QAChC,IAAI,CAAC,IAAI,IAAI;YACX,IAAI,CAAC,gBAAgB,EAAE,8BAA8B;YACrD,GAAG,8BAAe,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE,2BAA2B;YACpF,EAAE,EAAE,4CAA4C;YAChD,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAA,oCAAkB,EAChD,OAAO,CAAC,GAAG,CACZ,IAAI,+BAAgB,GAAG,+BAAgB,EAAE,EAAE,qCAAqC;SAClF,CAAC,IAAI,CAAC,+BAAgB,CAAC,CAAC;QAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG,+BAAgB,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,+BAAgB,CAAC,CAAC,0DAA0D;QACzF,wDAAwD;QACxD,8BAA8B;IAChC,CAAC;IAEM,gBAAgB,CAAC,UAA2B;QACjD,IAAI,IAAI,CAAC,cAAc,IAAI,gCAAiB,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAAC,iBAAiB,gCAAiB,iCAAiC,CAAC,CAAC;QAC5F,CAAC;QAED,8CAA8C;QAC9C,MAAM,IAAI,GAAG,IAAA,4BAAU,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,UAAU,CAAC,iCAAiC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEM,iBAAiB,CAAC,UAA2B;QAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,wFAAwF;IACjF,kBAAkB;QACvB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,+BAAgB,EAAE,CAAC;IACrE,CAAC;IAEM,uBAAuB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,YAA+B;IACjE,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,KAAK,CAAC,WAAW,CAAC,OAAwB;YACxC,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAE7C,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAA,sCAAiB,GAAE;aAC7B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,IAAA,wBAAM,EAAC,IAAI,EAAE,8BAAe,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC/C,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;gBACzB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,2DAA2D;YACpG,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"@azure/core-util\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport {\n bearerTokenAuthenticationPolicy,\n createEmptyPipeline,\n createHttpHeaders,\n} from \"@azure/core-rest-pipeline\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport {\n AnonymousCredential,\n StorageSharedKeyCredential,\n storageSharedKeyCredentialPolicy,\n} from \"@azure/storage-common\";\nimport type { BlobDeleteOptions, BlobSetTierOptions } from \"./Clients.js\";\nimport { BlobClient } from \"./Clients.js\";\nimport type { AccessTier } from \"./generatedModels.js\";\nimport { Mutex } from \"./utils/Mutex.js\";\nimport { Pipeline } from \"./Pipeline.js\";\nimport { getURLPath, getURLPathAndQuery, iEqual } from \"./utils/utils.common.js\";\nimport { stringifyXML } from \"@azure/core-xml\";\nimport {\n HeaderConstants,\n BATCH_MAX_REQUEST,\n HTTP_VERSION_1_1,\n HTTP_LINE_ENDING,\n StorageOAuthScopes,\n} from \"./utils/constants.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport { authorizeRequestOnTenantChallenge, serializationPolicy } from \"@azure/core-client\";\n\n/**\n * A request associated with a batch operation.\n */\nexport interface BatchSubRequest {\n /**\n * The URL of the resource to request operation.\n */\n url: string;\n\n /**\n * The credential used for sub request.\n * Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service.\n * You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n */\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n}\n\n/**\n * A BlobBatch represents an aggregated set of operations on blobs.\n * Currently, only `delete` and `setAccessTier` are supported.\n */\nexport class BlobBatch {\n private batchRequest: InnerBatchRequest;\n private readonly batch: string = \"batch\";\n private batchType: \"delete\" | \"setAccessTier\" | undefined;\n\n constructor() {\n this.batchRequest = new InnerBatchRequest();\n }\n\n /**\n * Get the value of Content-Type for a batch request.\n * The value must be multipart/mixed with a batch boundary.\n * Example: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252\n */\n public getMultiPartContentType(): string {\n return this.batchRequest.getMultipartContentType();\n }\n\n /**\n * Get assembled HTTP request body for sub requests.\n */\n public getHttpRequestBody(): string {\n return this.batchRequest.getHttpRequestBody();\n }\n\n /**\n * Get sub requests that are added into the batch request.\n */\n public getSubRequests(): Map<number, BatchSubRequest> {\n return this.batchRequest.getSubRequests();\n }\n\n private async addSubRequestInternal(\n subRequest: BatchSubRequest,\n assembleSubRequestFunc: () => Promise<void>,\n ): Promise<void> {\n await Mutex.lock(this.batch);\n\n try {\n this.batchRequest.preAddSubRequest(subRequest);\n await assembleSubRequestFunc();\n this.batchRequest.postAddSubRequest(subRequest);\n } finally {\n await Mutex.unlock(this.batch);\n }\n }\n\n private setBatchType(batchType: \"delete\" | \"setAccessTier\"): void {\n if (!this.batchType) {\n this.batchType = batchType;\n }\n if (this.batchType !== batchType) {\n throw new RangeError(\n `BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`,\n );\n }\n }\n\n /**\n * The deleteBlob operation marks the specified blob or snapshot for deletion.\n * The blob is later deleted during garbage collection.\n * Only one kind of operation is allowed per batch request.\n *\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param url - The url of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options -\n */\n public async deleteBlob(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: BlobDeleteOptions,\n ): Promise<void>;\n\n /**\n * The deleteBlob operation marks the specified blob or snapshot for deletion.\n * The blob is later deleted during garbage collection.\n * Only one kind of operation is allowed per batch request.\n *\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClient - The BlobClient.\n * @param options -\n */\n public async deleteBlob(blobClient: BlobClient, options?: BlobDeleteOptions): Promise<void>;\n\n public async deleteBlob(\n urlOrBlobClient: string | BlobClient,\n credentialOrOptions:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | BlobDeleteOptions\n | undefined,\n options?: BlobDeleteOptions,\n ): Promise<void> {\n let url: string;\n let credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n\n if (\n typeof urlOrBlobClient === \"string\" &&\n ((isNodeLike && credentialOrOptions instanceof StorageSharedKeyCredential) ||\n credentialOrOptions instanceof AnonymousCredential ||\n isTokenCredential(credentialOrOptions))\n ) {\n // First overload\n url = urlOrBlobClient;\n credential = credentialOrOptions;\n } else if (urlOrBlobClient instanceof BlobClient) {\n // Second overload\n url = urlOrBlobClient.url;\n credential = urlOrBlobClient.credential;\n options = credentialOrOptions as BlobDeleteOptions;\n } else {\n throw new RangeError(\n \"Invalid arguments. Either url and credential, or BlobClient need be provided.\",\n );\n }\n\n if (!options) {\n options = {};\n }\n\n return tracingClient.withSpan(\n \"BatchDeleteRequest-addSubRequest\",\n options,\n async (updatedOptions) => {\n this.setBatchType(\"delete\");\n await this.addSubRequestInternal(\n {\n url: url,\n credential: credential,\n },\n async () => {\n await new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(\n updatedOptions,\n );\n },\n );\n },\n );\n }\n\n /**\n * The setBlobAccessTier operation sets the tier on a blob.\n * The operation is allowed on block blobs in a blob storage or general purpose v2 account.\n * Only one kind of operation is allowed per batch request.\n *\n * A block blob's tier determines Hot/Cool/Archive storage type.\n * This operation does not update the blob's ETag.\n * For detailed information about block blob level tiering\n * see [hot, cool, and archive access tiers](https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers).\n * The operation will be authenticated and authorized\n * with specified credential. See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param url - The url of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param tier -\n * @param options -\n */\n public async setBlobAccessTier(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n tier: AccessTier,\n options?: BlobSetTierOptions,\n ): Promise<void>;\n\n /**\n * The setBlobAccessTier operation sets the tier on a blob.\n * The operation is allowed on block blobs in a blob storage or general purpose v2 account.\n * Only one kind of operation is allowed per batch request.\n *\n * A block blob's tier determines Hot/Cool/Archive storage type.\n * This operation does not update the blob's ETag.\n * For detailed information about block blob level tiering\n * see [hot, cool, and archive access tiers](https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers).\n * The operation will be authenticated and authorized\n * with specified credential. See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClient - The BlobClient.\n * @param tier -\n * @param options -\n */\n public async setBlobAccessTier(\n blobClient: BlobClient,\n tier: AccessTier,\n options?: BlobSetTierOptions,\n ): Promise<void>;\n\n public async setBlobAccessTier(\n urlOrBlobClient: string | BlobClient,\n credentialOrTier:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | AccessTier,\n tierOrOptions?: AccessTier | BlobSetTierOptions,\n options?: BlobSetTierOptions,\n ): Promise<void> {\n let url: string;\n let credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n let tier: AccessTier;\n\n if (\n typeof urlOrBlobClient === \"string\" &&\n ((isNodeLike && credentialOrTier instanceof StorageSharedKeyCredential) ||\n credentialOrTier instanceof AnonymousCredential ||\n isTokenCredential(credentialOrTier))\n ) {\n // First overload\n url = urlOrBlobClient;\n credential = credentialOrTier as\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential;\n tier = tierOrOptions as AccessTier;\n } else if (urlOrBlobClient instanceof BlobClient) {\n // Second overload\n url = urlOrBlobClient.url;\n credential = urlOrBlobClient.credential;\n tier = credentialOrTier as AccessTier;\n options = tierOrOptions as BlobSetTierOptions;\n } else {\n throw new RangeError(\n \"Invalid arguments. Either url and credential, or BlobClient need be provided.\",\n );\n }\n\n if (!options) {\n options = {};\n }\n\n return tracingClient.withSpan(\n \"BatchSetTierRequest-addSubRequest\",\n options,\n async (updatedOptions) => {\n this.setBatchType(\"setAccessTier\");\n await this.addSubRequestInternal(\n {\n url: url,\n credential: credential,\n },\n async () => {\n await new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(\n tier,\n updatedOptions,\n );\n },\n );\n },\n );\n }\n}\n\n/**\n * Inner batch request class which is responsible for assembling and serializing sub requests.\n * See https://learn.microsoft.com/rest/api/storageservices/blob-batch#request-body for how requests are assembled.\n */\nclass InnerBatchRequest {\n private operationCount: number;\n private body: string;\n private subRequests: Map<number, BatchSubRequest>;\n private readonly boundary: string;\n private readonly subRequestPrefix: string;\n private readonly multipartContentType: string;\n private readonly batchRequestEnding: string;\n\n constructor() {\n this.operationCount = 0;\n this.body = \"\";\n\n const tempGuid = randomUUID();\n\n // batch_{batchid}\n this.boundary = `batch_${tempGuid}`;\n // --batch_{batchid}\n // Content-Type: application/http\n // Content-Transfer-Encoding: binary\n this.subRequestPrefix = `--${this.boundary}${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`;\n // multipart/mixed; boundary=batch_{batchid}\n this.multipartContentType = `multipart/mixed; boundary=${this.boundary}`;\n // --batch_{batchid}--\n this.batchRequestEnding = `--${this.boundary}--`;\n\n this.subRequests = new Map();\n }\n\n /**\n * Create pipeline to assemble sub requests. The idea here is to use existing\n * credential and serialization/deserialization components, with additional policies to\n * filter unnecessary headers, assemble sub requests into request's body\n * and intercept request from going to wire.\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 */\n public createPipeline(\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n ): Pipeline {\n const corePipeline = createEmptyPipeline();\n corePipeline.addPolicy(\n serializationPolicy({\n stringifyXML,\n serializerOptions: {\n xml: {\n xmlCharKey: \"#\",\n },\n },\n }),\n { phase: \"Serialize\" },\n );\n // Use batch header filter policy to exclude unnecessary headers\n corePipeline.addPolicy(batchHeaderFilterPolicy());\n // Use batch assemble policy to assemble request and intercept request from going to wire\n corePipeline.addPolicy(batchRequestAssemblePolicy(this), { afterPhase: \"Sign\" });\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n const pipeline = new Pipeline([]);\n // attach the v2 pipeline to this one\n (pipeline as any)._credential = credential;\n (pipeline as any)._corePipeline = corePipeline;\n\n return pipeline;\n }\n\n public appendSubRequestToBody(request: PipelineRequest) {\n // Start to assemble sub request\n this.body += [\n this.subRequestPrefix, // sub request constant prefix\n `${HeaderConstants.CONTENT_ID}: ${this.operationCount}`, // sub request's content ID\n \"\", // empty line after sub request's content ID\n `${request.method.toString()} ${getURLPathAndQuery(\n request.url,\n )} ${HTTP_VERSION_1_1}${HTTP_LINE_ENDING}`, // sub request start line with method\n ].join(HTTP_LINE_ENDING);\n\n for (const [name, value] of request.headers) {\n this.body += `${name}: ${value}${HTTP_LINE_ENDING}`;\n }\n\n this.body += HTTP_LINE_ENDING; // sub request's headers need be ending with an empty line\n // No body to assemble for current batch request support\n // End to assemble sub request\n }\n\n public preAddSubRequest(subRequest: BatchSubRequest) {\n if (this.operationCount >= BATCH_MAX_REQUEST) {\n throw new RangeError(`Cannot exceed ${BATCH_MAX_REQUEST} sub requests in a single batch`);\n }\n\n // Fast fail if url for sub request is invalid\n const path = getURLPath(subRequest.url);\n if (!path || path === \"\") {\n throw new RangeError(`Invalid url for sub request: '${subRequest.url}'`);\n }\n }\n\n public postAddSubRequest(subRequest: BatchSubRequest) {\n this.subRequests.set(this.operationCount, subRequest);\n this.operationCount++;\n }\n\n // Return the http request body with assembling the ending line to the sub request body.\n public getHttpRequestBody(): string {\n return `${this.body}${this.batchRequestEnding}${HTTP_LINE_ENDING}`;\n }\n\n public getMultipartContentType(): string {\n return this.multipartContentType;\n }\n\n public getSubRequests(): Map<number, BatchSubRequest> {\n return this.subRequests;\n }\n}\n\nfunction batchRequestAssemblePolicy(batchRequest: InnerBatchRequest): PipelinePolicy {\n return {\n name: \"batchRequestAssemblePolicy\",\n async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n batchRequest.appendSubRequestToBody(request);\n\n return {\n request,\n status: 200,\n headers: createHttpHeaders(),\n };\n },\n };\n}\n\nfunction batchHeaderFilterPolicy(): PipelinePolicy {\n return {\n name: \"batchHeaderFilterPolicy\",\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n let xMsHeaderName = \"\";\n\n for (const [name] of request.headers) {\n if (iEqual(name, HeaderConstants.X_MS_VERSION)) {\n xMsHeaderName = name;\n }\n }\n\n if (xMsHeaderName !== \"\") {\n request.headers.delete(xMsHeaderName); // The subrequests should not have the x-ms-version header.\n }\n\n return next(request);\n },\n };\n}\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["/mnt/vss/_work/1/s/sdk/storage/storage-blob/src/BlobBatch.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"@azure/core-util\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport {\n bearerTokenAuthenticationPolicy,\n createEmptyPipeline,\n createHttpHeaders,\n} from \"@azure/core-rest-pipeline\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport {\n AnonymousCredential,\n StorageSharedKeyCredential,\n storageSharedKeyCredentialPolicy,\n} from \"@azure/storage-common\";\nimport type { BlobDeleteOptions, BlobSetTierOptions } from \"./Clients.js\";\nimport { BlobClient } from \"./Clients.js\";\nimport type { AccessTier } from \"./generatedModels.js\";\nimport { Mutex } from \"./utils/Mutex.js\";\nimport { Pipeline } from \"./Pipeline.js\";\nimport { getURLPath, getURLPathAndQuery, iEqual } from \"./utils/utils.common.js\";\nimport { stringifyXML } from \"@azure/core-xml\";\nimport {\n HeaderConstants,\n BATCH_MAX_REQUEST,\n HTTP_VERSION_1_1,\n HTTP_LINE_ENDING,\n StorageOAuthScopes,\n} from \"./utils/constants.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport { authorizeRequestOnTenantChallenge, serializationPolicy } from \"@azure/core-client\";\n\n/**\n * A request associated with a batch operation.\n */\nexport interface BatchSubRequest {\n /**\n * The URL of the resource to request operation.\n */\n url: string;\n\n /**\n * The credential used for sub request.\n * Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service.\n * You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n */\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n}\n\n/**\n * A BlobBatch represents an aggregated set of operations on blobs.\n * Currently, only `delete` and `setAccessTier` are supported.\n */\nexport class BlobBatch {\n private batchRequest: InnerBatchRequest;\n private readonly batch: string = \"batch\";\n private batchType: \"delete\" | \"setAccessTier\" | undefined;\n\n constructor() {\n this.batchRequest = new InnerBatchRequest();\n }\n\n /**\n * Get the value of Content-Type for a batch request.\n * The value must be multipart/mixed with a batch boundary.\n * Example: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252\n */\n public getMultiPartContentType(): string {\n return this.batchRequest.getMultipartContentType();\n }\n\n /**\n * Get assembled HTTP request body for sub requests.\n */\n public getHttpRequestBody(): string {\n return this.batchRequest.getHttpRequestBody();\n }\n\n /**\n * Get sub requests that are added into the batch request.\n */\n public getSubRequests(): Map<number, BatchSubRequest> {\n return this.batchRequest.getSubRequests();\n }\n\n private async addSubRequestInternal(\n subRequest: BatchSubRequest,\n assembleSubRequestFunc: () => Promise<void>,\n ): Promise<void> {\n await Mutex.lock(this.batch);\n\n try {\n this.batchRequest.preAddSubRequest(subRequest);\n await assembleSubRequestFunc();\n this.batchRequest.postAddSubRequest(subRequest);\n } finally {\n await Mutex.unlock(this.batch);\n }\n }\n\n private setBatchType(batchType: \"delete\" | \"setAccessTier\"): void {\n if (!this.batchType) {\n this.batchType = batchType;\n }\n if (this.batchType !== batchType) {\n throw new RangeError(\n `BlobBatch only supports one operation type per batch and it already is being used for ${this.batchType} operations.`,\n );\n }\n }\n\n /**\n * The deleteBlob operation marks the specified blob or snapshot for deletion.\n * The blob is later deleted during garbage collection.\n * Only one kind of operation is allowed per batch request.\n *\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param url - The url of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options -\n */\n public async deleteBlob(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n options?: BlobDeleteOptions,\n ): Promise<void>;\n\n /**\n * The deleteBlob operation marks the specified blob or snapshot for deletion.\n * The blob is later deleted during garbage collection.\n * Only one kind of operation is allowed per batch request.\n *\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClient - The BlobClient.\n * @param options -\n */\n public async deleteBlob(blobClient: BlobClient, options?: BlobDeleteOptions): Promise<void>;\n\n public async deleteBlob(\n urlOrBlobClient: string | BlobClient,\n credentialOrOptions:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | BlobDeleteOptions\n | undefined,\n options?: BlobDeleteOptions,\n ): Promise<void> {\n let url: string;\n let credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n\n if (\n typeof urlOrBlobClient === \"string\" &&\n ((isNodeLike && credentialOrOptions instanceof StorageSharedKeyCredential) ||\n credentialOrOptions instanceof AnonymousCredential ||\n isTokenCredential(credentialOrOptions))\n ) {\n // First overload\n url = urlOrBlobClient;\n credential = credentialOrOptions;\n } else if (urlOrBlobClient instanceof BlobClient) {\n // Second overload\n url = urlOrBlobClient.url;\n credential = urlOrBlobClient.credential;\n options = credentialOrOptions as BlobDeleteOptions;\n } else {\n throw new RangeError(\n \"Invalid arguments. Either url and credential, or BlobClient need be provided.\",\n );\n }\n\n if (!options) {\n options = {};\n }\n\n return tracingClient.withSpan(\n \"BatchDeleteRequest-addSubRequest\",\n options,\n async (updatedOptions) => {\n this.setBatchType(\"delete\");\n await this.addSubRequestInternal(\n {\n url: url,\n credential: credential,\n },\n async () => {\n await new BlobClient(url, this.batchRequest.createPipeline(credential)).delete(\n updatedOptions,\n );\n },\n );\n },\n );\n }\n\n /**\n * The setBlobAccessTier operation sets the tier on a blob.\n * The operation is allowed on block blobs in a blob storage or general purpose v2 account.\n * Only one kind of operation is allowed per batch request.\n *\n * A block blob's tier determines Hot/Cool/Archive storage type.\n * This operation does not update the blob's ETag.\n * For detailed information about block blob level tiering\n * see [hot, cool, and archive access tiers](https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers).\n * The operation will be authenticated and authorized\n * with specified credential. See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param url - The url of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param tier -\n * @param options -\n */\n public async setBlobAccessTier(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n tier: AccessTier,\n options?: BlobSetTierOptions,\n ): Promise<void>;\n\n /**\n * The setBlobAccessTier operation sets the tier on a blob.\n * The operation is allowed on block blobs in a blob storage or general purpose v2 account.\n * Only one kind of operation is allowed per batch request.\n *\n * A block blob's tier determines Hot/Cool/Archive storage type.\n * This operation does not update the blob's ETag.\n * For detailed information about block blob level tiering\n * see [hot, cool, and archive access tiers](https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers).\n * The operation will be authenticated and authorized\n * with specified credential. See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClient - The BlobClient.\n * @param tier -\n * @param options -\n */\n public async setBlobAccessTier(\n blobClient: BlobClient,\n tier: AccessTier,\n options?: BlobSetTierOptions,\n ): Promise<void>;\n\n public async setBlobAccessTier(\n urlOrBlobClient: string | BlobClient,\n credentialOrTier:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | AccessTier,\n tierOrOptions?: AccessTier | BlobSetTierOptions,\n options?: BlobSetTierOptions,\n ): Promise<void> {\n let url: string;\n let credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n let tier: AccessTier;\n\n if (\n typeof urlOrBlobClient === \"string\" &&\n ((isNodeLike && credentialOrTier instanceof StorageSharedKeyCredential) ||\n credentialOrTier instanceof AnonymousCredential ||\n isTokenCredential(credentialOrTier))\n ) {\n // First overload\n url = urlOrBlobClient;\n credential = credentialOrTier as\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential;\n tier = tierOrOptions as AccessTier;\n } else if (urlOrBlobClient instanceof BlobClient) {\n // Second overload\n url = urlOrBlobClient.url;\n credential = urlOrBlobClient.credential;\n tier = credentialOrTier as AccessTier;\n options = tierOrOptions as BlobSetTierOptions;\n } else {\n throw new RangeError(\n \"Invalid arguments. Either url and credential, or BlobClient need be provided.\",\n );\n }\n\n if (!options) {\n options = {};\n }\n\n return tracingClient.withSpan(\n \"BatchSetTierRequest-addSubRequest\",\n options,\n async (updatedOptions) => {\n this.setBatchType(\"setAccessTier\");\n await this.addSubRequestInternal(\n {\n url: url,\n credential: credential,\n },\n async () => {\n await new BlobClient(url, this.batchRequest.createPipeline(credential)).setAccessTier(\n tier,\n updatedOptions,\n );\n },\n );\n },\n );\n }\n}\n\n/**\n * Inner batch request class which is responsible for assembling and serializing sub requests.\n * See https://learn.microsoft.com/rest/api/storageservices/blob-batch#request-body for how requests are assembled.\n */\nclass InnerBatchRequest {\n private operationCount: number;\n private body: string;\n private subRequests: Map<number, BatchSubRequest>;\n private readonly boundary: string;\n private readonly subRequestPrefix: string;\n private readonly multipartContentType: string;\n private readonly batchRequestEnding: string;\n\n constructor() {\n this.operationCount = 0;\n this.body = \"\";\n\n const tempGuid = randomUUID();\n\n // batch_{batchid}\n this.boundary = `batch_${tempGuid}`;\n // --batch_{batchid}\n // Content-Type: application/http\n // Content-Transfer-Encoding: binary\n this.subRequestPrefix = `--${this.boundary}${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`;\n // multipart/mixed; boundary=batch_{batchid}\n this.multipartContentType = `multipart/mixed; boundary=${this.boundary}`;\n // --batch_{batchid}--\n this.batchRequestEnding = `--${this.boundary}--`;\n\n this.subRequests = new Map();\n }\n\n /**\n * Create pipeline to assemble sub requests. The idea here is to use existing\n * credential and serialization/deserialization components, with additional policies to\n * filter unnecessary headers, assemble sub requests into request's body\n * and intercept request from going to wire.\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 */\n public createPipeline(\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n ): Pipeline {\n const corePipeline = createEmptyPipeline();\n corePipeline.addPolicy(\n serializationPolicy({\n stringifyXML,\n serializerOptions: {\n xml: {\n xmlCharKey: \"#\",\n },\n },\n }),\n { phase: \"Serialize\" },\n );\n // Use batch header filter policy to exclude unnecessary headers\n corePipeline.addPolicy(batchHeaderFilterPolicy());\n // Use batch assemble policy to assemble request and intercept request from going to wire\n corePipeline.addPolicy(batchRequestAssemblePolicy(this), { afterPhase: \"Sign\" });\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n const pipeline = new Pipeline([]);\n // attach the v2 pipeline to this one\n (pipeline as any)._credential = credential;\n (pipeline as any)._corePipeline = corePipeline;\n\n return pipeline;\n }\n\n public appendSubRequestToBody(request: PipelineRequest) {\n // Start to assemble sub request\n this.body += [\n this.subRequestPrefix, // sub request constant prefix\n `${HeaderConstants.CONTENT_ID}: ${this.operationCount}`, // sub request's content ID\n \"\", // empty line after sub request's content ID\n `${request.method.toString()} ${getURLPathAndQuery(\n request.url,\n )} ${HTTP_VERSION_1_1}${HTTP_LINE_ENDING}`, // sub request start line with method\n ].join(HTTP_LINE_ENDING);\n\n for (const [name, value] of request.headers) {\n this.body += `${name}: ${value}${HTTP_LINE_ENDING}`;\n }\n\n this.body += HTTP_LINE_ENDING; // sub request's headers need be ending with an empty line\n // No body to assemble for current batch request support\n // End to assemble sub request\n }\n\n public preAddSubRequest(subRequest: BatchSubRequest) {\n if (this.operationCount >= BATCH_MAX_REQUEST) {\n throw new RangeError(`Cannot exceed ${BATCH_MAX_REQUEST} sub requests in a single batch`);\n }\n\n // Fast fail if url for sub request is invalid\n const path = getURLPath(subRequest.url);\n if (!path || path === \"\") {\n throw new RangeError(`Invalid url for sub request: '${subRequest.url}'`);\n }\n }\n\n public postAddSubRequest(subRequest: BatchSubRequest) {\n this.subRequests.set(this.operationCount, subRequest);\n this.operationCount++;\n }\n\n // Return the http request body with assembling the ending line to the sub request body.\n public getHttpRequestBody(): string {\n return `${this.body}${this.batchRequestEnding}${HTTP_LINE_ENDING}`;\n }\n\n public getMultipartContentType(): string {\n return this.multipartContentType;\n }\n\n public getSubRequests(): Map<number, BatchSubRequest> {\n return this.subRequests;\n }\n}\n\nfunction batchRequestAssemblePolicy(batchRequest: InnerBatchRequest): PipelinePolicy {\n return {\n name: \"batchRequestAssemblePolicy\",\n async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n batchRequest.appendSubRequestToBody(request);\n\n return {\n request,\n status: 200,\n headers: createHttpHeaders(),\n };\n },\n };\n}\n\nfunction batchHeaderFilterPolicy(): PipelinePolicy {\n return {\n name: \"batchHeaderFilterPolicy\",\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n let xMsHeaderName = \"\";\n\n for (const [name] of request.headers) {\n if (iEqual(name, HeaderConstants.X_MS_VERSION)) {\n xMsHeaderName = name;\n }\n }\n\n if (xMsHeaderName !== \"\") {\n request.headers.delete(xMsHeaderName); // The subrequests should not have the x-ms-version header.\n }\n\n return next(request);\n },\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_core_util"]
7
+ }
@@ -1,176 +1,195 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.BlobBatchClient = void 0;
6
- const BatchResponseParser_js_1 = require("./BatchResponseParser.js");
7
- const BatchUtils_js_1 = require("./BatchUtils.js");
8
- const BlobBatch_js_1 = require("./BlobBatch.js");
9
- const tracing_js_1 = require("./utils/tracing.js");
10
- const storage_common_1 = require("@azure/storage-common");
11
- const StorageContextClient_js_1 = require("./StorageContextClient.js");
12
- const Pipeline_js_1 = require("./Pipeline.js");
13
- const utils_common_js_1 = require("./utils/utils.common.js");
14
- /**
15
- * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.
16
- *
17
- * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch
18
- */
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var BlobBatchClient_exports = {};
19
+ __export(BlobBatchClient_exports, {
20
+ BlobBatchClient: () => BlobBatchClient
21
+ });
22
+ module.exports = __toCommonJS(BlobBatchClient_exports);
23
+ var import_BatchResponseParser = require("./BatchResponseParser.js");
24
+ var import_BatchUtils = require("./BatchUtils.js");
25
+ var import_BlobBatch = require("./BlobBatch.js");
26
+ var import_tracing = require("./utils/tracing.js");
27
+ var import_storage_common = require("@azure/storage-common");
28
+ var import_StorageContextClient = require("./StorageContextClient.js");
29
+ var import_Pipeline = require("./Pipeline.js");
30
+ var import_utils_common = require("./utils/utils.common.js");
19
31
  class BlobBatchClient {
20
- serviceOrContainerContext;
21
- constructor(url, credentialOrPipeline,
22
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
23
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
24
- options) {
25
- let pipeline;
26
- if ((0, Pipeline_js_1.isPipelineLike)(credentialOrPipeline)) {
27
- pipeline = credentialOrPipeline;
28
- }
29
- else if (!credentialOrPipeline) {
30
- // no credential provided
31
- pipeline = (0, Pipeline_js_1.newPipeline)(new storage_common_1.AnonymousCredential(), options);
32
- }
33
- else {
34
- pipeline = (0, Pipeline_js_1.newPipeline)(credentialOrPipeline, options);
35
- }
36
- const storageClientContext = new StorageContextClient_js_1.StorageContextClient(url, (0, Pipeline_js_1.getCoreClientOptions)(pipeline));
37
- const path = (0, utils_common_js_1.getURLPath)(url);
38
- if (path && path !== "/") {
39
- // Container scoped.
40
- this.serviceOrContainerContext = storageClientContext.container;
41
- }
42
- else {
43
- this.serviceOrContainerContext = storageClientContext.service;
44
- }
32
+ serviceOrContainerContext;
33
+ constructor(url, credentialOrPipeline, options) {
34
+ let pipeline;
35
+ if ((0, import_Pipeline.isPipelineLike)(credentialOrPipeline)) {
36
+ pipeline = credentialOrPipeline;
37
+ } else if (!credentialOrPipeline) {
38
+ pipeline = (0, import_Pipeline.newPipeline)(new import_storage_common.AnonymousCredential(), options);
39
+ } else {
40
+ pipeline = (0, import_Pipeline.newPipeline)(credentialOrPipeline, options);
45
41
  }
46
- /**
47
- * Creates a {@link BlobBatch}.
48
- * A BlobBatch represents an aggregated set of operations on blobs.
49
- */
50
- createBatch() {
51
- return new BlobBatch_js_1.BlobBatch();
42
+ const storageClientContext = new import_StorageContextClient.StorageContextClient(url, (0, import_Pipeline.getCoreClientOptions)(pipeline));
43
+ const path = (0, import_utils_common.getURLPath)(url);
44
+ if (path && path !== "/") {
45
+ this.serviceOrContainerContext = storageClientContext.container;
46
+ } else {
47
+ this.serviceOrContainerContext = storageClientContext.service;
52
48
  }
53
- async deleteBlobs(urlsOrBlobClients, credentialOrOptions,
54
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
55
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
56
- options) {
57
- const batch = new BlobBatch_js_1.BlobBatch();
58
- for (const urlOrBlobClient of urlsOrBlobClients) {
59
- if (typeof urlOrBlobClient === "string") {
60
- await batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options);
61
- }
62
- else {
63
- await batch.deleteBlob(urlOrBlobClient, credentialOrOptions);
64
- }
65
- }
66
- return this.submitBatch(batch);
49
+ }
50
+ /**
51
+ * Creates a {@link BlobBatch}.
52
+ * A BlobBatch represents an aggregated set of operations on blobs.
53
+ */
54
+ createBatch() {
55
+ return new import_BlobBatch.BlobBatch();
56
+ }
57
+ async deleteBlobs(urlsOrBlobClients, credentialOrOptions, options) {
58
+ const batch = new import_BlobBatch.BlobBatch();
59
+ for (const urlOrBlobClient of urlsOrBlobClients) {
60
+ if (typeof urlOrBlobClient === "string") {
61
+ await batch.deleteBlob(urlOrBlobClient, credentialOrOptions, options);
62
+ } else {
63
+ await batch.deleteBlob(urlOrBlobClient, credentialOrOptions);
64
+ }
67
65
  }
68
- async setBlobsAccessTier(urlsOrBlobClients, credentialOrTier, tierOrOptions,
69
- // Legacy, no fix for eslint error without breaking. Disable it for this interface.
70
- /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/
71
- options) {
72
- const batch = new BlobBatch_js_1.BlobBatch();
73
- for (const urlOrBlobClient of urlsOrBlobClients) {
74
- if (typeof urlOrBlobClient === "string") {
75
- await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions, options);
76
- }
77
- else {
78
- await batch.setBlobAccessTier(urlOrBlobClient, credentialOrTier, tierOrOptions);
79
- }
80
- }
81
- return this.submitBatch(batch);
66
+ return this.submitBatch(batch);
67
+ }
68
+ async setBlobsAccessTier(urlsOrBlobClients, credentialOrTier, tierOrOptions, options) {
69
+ const batch = new import_BlobBatch.BlobBatch();
70
+ for (const urlOrBlobClient of urlsOrBlobClients) {
71
+ if (typeof urlOrBlobClient === "string") {
72
+ await batch.setBlobAccessTier(
73
+ urlOrBlobClient,
74
+ credentialOrTier,
75
+ tierOrOptions,
76
+ options
77
+ );
78
+ } else {
79
+ await batch.setBlobAccessTier(
80
+ urlOrBlobClient,
81
+ credentialOrTier,
82
+ tierOrOptions
83
+ );
84
+ }
82
85
  }
83
- /**
84
- * Submit batch request which consists of multiple subrequests.
85
- *
86
- * Get `blobBatchClient` and other details before running the snippets.
87
- * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`
88
- *
89
- * Example usage:
90
- *
91
- * ```ts snippet:BlobBatchClientSubmitBatch
92
- * import { DefaultAzureCredential } from "@azure/identity";
93
- * import { BlobServiceClient, BlobBatch } from "@azure/storage-blob";
94
- *
95
- * const account = "<account>";
96
- * const credential = new DefaultAzureCredential();
97
- * const blobServiceClient = new BlobServiceClient(
98
- * `https://${account}.blob.core.windows.net`,
99
- * credential,
100
- * );
101
- *
102
- * const containerName = "<container name>";
103
- * const containerClient = blobServiceClient.getContainerClient(containerName);
104
- * const blobBatchClient = containerClient.getBlobBatchClient();
105
- *
106
- * const batchRequest = new BlobBatch();
107
- * await batchRequest.deleteBlob("<blob-url-1>", credential);
108
- * await batchRequest.deleteBlob("<blob-url-2>", credential, {
109
- * deleteSnapshots: "include",
110
- * });
111
- * const batchResp = await blobBatchClient.submitBatch(batchRequest);
112
- * console.log(batchResp.subResponsesSucceededCount);
113
- * ```
114
- *
115
- * Example using a lease:
116
- *
117
- * ```ts snippet:BlobBatchClientSubmitBatchWithLease
118
- * import { DefaultAzureCredential } from "@azure/identity";
119
- * import { BlobServiceClient, BlobBatch } from "@azure/storage-blob";
120
- *
121
- * const account = "<account>";
122
- * const credential = new DefaultAzureCredential();
123
- * const blobServiceClient = new BlobServiceClient(
124
- * `https://${account}.blob.core.windows.net`,
125
- * credential,
126
- * );
127
- *
128
- * const containerName = "<container name>";
129
- * const containerClient = blobServiceClient.getContainerClient(containerName);
130
- * const blobBatchClient = containerClient.getBlobBatchClient();
131
- * const blobClient = containerClient.getBlobClient("<blob name>");
132
- *
133
- * const batchRequest = new BlobBatch();
134
- * await batchRequest.setBlobAccessTier(blobClient, "Cool");
135
- * await batchRequest.setBlobAccessTier(blobClient, "Cool", {
136
- * conditions: { leaseId: "<lease-id>" },
137
- * });
138
- * const batchResp = await blobBatchClient.submitBatch(batchRequest);
139
- * console.log(batchResp.subResponsesSucceededCount);
140
- * ```
141
- *
142
- * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch
143
- *
144
- * @param batchRequest - A set of Delete or SetTier operations.
145
- * @param options -
146
- */
147
- async submitBatch(batchRequest, options = {}) {
148
- if (!batchRequest || batchRequest.getSubRequests().size === 0) {
149
- throw new RangeError("Batch request should contain one or more sub requests.");
150
- }
151
- return tracing_js_1.tracingClient.withSpan("BlobBatchClient-submitBatch", options, async (updatedOptions) => {
152
- const batchRequestBody = batchRequest.getHttpRequestBody();
153
- // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.
154
- const rawBatchResponse = (0, utils_common_js_1.assertResponse)((await this.serviceOrContainerContext.submitBatch((0, BatchUtils_js_1.utf8ByteLength)(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, {
155
- ...updatedOptions,
156
- })));
157
- // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).
158
- const batchResponseParser = new BatchResponseParser_js_1.BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests());
159
- const responseSummary = await batchResponseParser.parseBatchResponse();
160
- const res = {
161
- _response: rawBatchResponse._response,
162
- contentType: rawBatchResponse.contentType,
163
- errorCode: rawBatchResponse.errorCode,
164
- requestId: rawBatchResponse.requestId,
165
- clientRequestId: rawBatchResponse.clientRequestId,
166
- version: rawBatchResponse.version,
167
- subResponses: responseSummary.subResponses,
168
- subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,
169
- subResponsesFailedCount: responseSummary.subResponsesFailedCount,
170
- };
171
- return res;
172
- });
86
+ return this.submitBatch(batch);
87
+ }
88
+ /**
89
+ * Submit batch request which consists of multiple subrequests.
90
+ *
91
+ * Get `blobBatchClient` and other details before running the snippets.
92
+ * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`
93
+ *
94
+ * Example usage:
95
+ *
96
+ * ```ts snippet:BlobBatchClientSubmitBatch
97
+ * import { DefaultAzureCredential } from "@azure/identity";
98
+ * import { BlobServiceClient, BlobBatch } from "@azure/storage-blob";
99
+ *
100
+ * const account = "<account>";
101
+ * const credential = new DefaultAzureCredential();
102
+ * const blobServiceClient = new BlobServiceClient(
103
+ * `https://${account}.blob.core.windows.net`,
104
+ * credential,
105
+ * );
106
+ *
107
+ * const containerName = "<container name>";
108
+ * const containerClient = blobServiceClient.getContainerClient(containerName);
109
+ * const blobBatchClient = containerClient.getBlobBatchClient();
110
+ *
111
+ * const batchRequest = new BlobBatch();
112
+ * await batchRequest.deleteBlob("<blob-url-1>", credential);
113
+ * await batchRequest.deleteBlob("<blob-url-2>", credential, {
114
+ * deleteSnapshots: "include",
115
+ * });
116
+ * const batchResp = await blobBatchClient.submitBatch(batchRequest);
117
+ * console.log(batchResp.subResponsesSucceededCount);
118
+ * ```
119
+ *
120
+ * Example using a lease:
121
+ *
122
+ * ```ts snippet:BlobBatchClientSubmitBatchWithLease
123
+ * import { DefaultAzureCredential } from "@azure/identity";
124
+ * import { BlobServiceClient, BlobBatch } from "@azure/storage-blob";
125
+ *
126
+ * const account = "<account>";
127
+ * const credential = new DefaultAzureCredential();
128
+ * const blobServiceClient = new BlobServiceClient(
129
+ * `https://${account}.blob.core.windows.net`,
130
+ * credential,
131
+ * );
132
+ *
133
+ * const containerName = "<container name>";
134
+ * const containerClient = blobServiceClient.getContainerClient(containerName);
135
+ * const blobBatchClient = containerClient.getBlobBatchClient();
136
+ * const blobClient = containerClient.getBlobClient("<blob name>");
137
+ *
138
+ * const batchRequest = new BlobBatch();
139
+ * await batchRequest.setBlobAccessTier(blobClient, "Cool");
140
+ * await batchRequest.setBlobAccessTier(blobClient, "Cool", {
141
+ * conditions: { leaseId: "<lease-id>" },
142
+ * });
143
+ * const batchResp = await blobBatchClient.submitBatch(batchRequest);
144
+ * console.log(batchResp.subResponsesSucceededCount);
145
+ * ```
146
+ *
147
+ * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch
148
+ *
149
+ * @param batchRequest - A set of Delete or SetTier operations.
150
+ * @param options -
151
+ */
152
+ async submitBatch(batchRequest, options = {}) {
153
+ if (!batchRequest || batchRequest.getSubRequests().size === 0) {
154
+ throw new RangeError("Batch request should contain one or more sub requests.");
173
155
  }
156
+ return import_tracing.tracingClient.withSpan(
157
+ "BlobBatchClient-submitBatch",
158
+ options,
159
+ async (updatedOptions) => {
160
+ const batchRequestBody = batchRequest.getHttpRequestBody();
161
+ const rawBatchResponse = (0, import_utils_common.assertResponse)(
162
+ await this.serviceOrContainerContext.submitBatch(
163
+ (0, import_BatchUtils.utf8ByteLength)(batchRequestBody),
164
+ batchRequest.getMultiPartContentType(),
165
+ batchRequestBody,
166
+ {
167
+ ...updatedOptions
168
+ }
169
+ )
170
+ );
171
+ const batchResponseParser = new import_BatchResponseParser.BatchResponseParser(
172
+ rawBatchResponse,
173
+ batchRequest.getSubRequests()
174
+ );
175
+ const responseSummary = await batchResponseParser.parseBatchResponse();
176
+ const res = {
177
+ _response: rawBatchResponse._response,
178
+ contentType: rawBatchResponse.contentType,
179
+ errorCode: rawBatchResponse.errorCode,
180
+ requestId: rawBatchResponse.requestId,
181
+ clientRequestId: rawBatchResponse.clientRequestId,
182
+ version: rawBatchResponse.version,
183
+ subResponses: responseSummary.subResponses,
184
+ subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,
185
+ subResponsesFailedCount: responseSummary.subResponsesFailedCount
186
+ };
187
+ return res;
188
+ }
189
+ );
190
+ }
174
191
  }
175
- exports.BlobBatchClient = BlobBatchClient;
176
- //# sourceMappingURL=BlobBatchClient.js.map
192
+ // Annotate the CommonJS export names for ESM import in node:
193
+ 0 && (module.exports = {
194
+ BlobBatchClient
195
+ });
@@ -1 +1,7 @@
1
- {"version":3,"file":"BlobBatchClient.js","sourceRoot":"","sources":["../../src/BlobBatchClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AccessTier,\n ServiceSubmitBatchHeaders,\n ServiceSubmitBatchOptionalParamsModel,\n ServiceSubmitBatchResponseModel,\n ServiceSubmitBatchResponseInternal,\n} from \"./generatedModels.js\";\nimport type { ParsedBatchResponse } from \"./BatchResponse.js\";\nimport { BatchResponseParser } from \"./BatchResponseParser.js\";\nimport { utf8ByteLength } from \"./BatchUtils.js\";\nimport { BlobBatch } from \"./BlobBatch.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { Service, Container } from \"./generated/src/operationsInterfaces/index.js\";\nimport { AnonymousCredential, type StorageSharedKeyCredential } from \"@azure/storage-common\";\nimport type { BlobDeleteOptions, BlobClient, BlobSetTierOptions } from \"./Clients.js\";\nimport { StorageContextClient } from \"./StorageContextClient.js\";\nimport type { PipelineLike, StoragePipelineOptions } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike, getCoreClientOptions } from \"./Pipeline.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport { assertResponse, getURLPath } from \"./utils/utils.common.js\";\n\n/**\n * Options to configure the Service - Submit Batch Optional Params.\n */\nexport interface BlobBatchSubmitBatchOptionalParams extends ServiceSubmitBatchOptionalParamsModel {}\n\n/**\n * Contains response data for blob batch operations.\n */\nexport declare type BlobBatchSubmitBatchResponse = WithResponse<\n ParsedBatchResponse & ServiceSubmitBatchHeaders,\n ServiceSubmitBatchHeaders\n>;\n\n/**\n * Contains response data for the {@link deleteBlobs} operation.\n */\nexport declare type BlobBatchDeleteBlobsResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * Contains response data for the {@link setBlobsAccessTier} operation.\n */\nexport declare type BlobBatchSetBlobsAccessTierResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n */\nexport class BlobBatchClient {\n private serviceOrContainerContext: Service | Container;\n\n /**\n * Creates an instance of BlobBatchClient.\n *\n * @param url - A url pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of BlobBatchClient.\n *\n * @param url - A url pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ) {\n let pipeline: PipelineLike;\n if (isPipelineLike(credentialOrPipeline)) {\n pipeline = credentialOrPipeline;\n } else if (!credentialOrPipeline) {\n // no credential provided\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n pipeline = newPipeline(credentialOrPipeline, options);\n }\n\n const storageClientContext = new StorageContextClient(url, getCoreClientOptions(pipeline));\n\n const path = getURLPath(url);\n if (path && path !== \"/\") {\n // Container scoped.\n this.serviceOrContainerContext = storageClientContext.container;\n } else {\n this.serviceOrContainerContext = storageClientContext.service;\n }\n }\n\n /**\n * Creates a {@link BlobBatch}.\n * A BlobBatch represents an aggregated set of operations on blobs.\n */\n public createBatch(): BlobBatch {\n return new BlobBatch();\n }\n\n /**\n * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operations will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param urls - The urls of the blob resources to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options -\n */\n public async deleteBlobs(\n urls: string[],\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse>;\n\n /**\n * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation(subrequest) will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClients - The BlobClients for the blobs to delete.\n * @param options -\n */\n public async deleteBlobs(\n blobClients: BlobClient[],\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse>;\n\n public async deleteBlobs(\n urlsOrBlobClients: string[] | BlobClient[],\n credentialOrOptions:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | BlobDeleteOptions\n | undefined,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse> {\n const batch = new BlobBatch();\n for (const urlOrBlobClient of urlsOrBlobClients) {\n if (typeof urlOrBlobClient === \"string\") {\n await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as TokenCredential, options);\n } else {\n await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as BlobDeleteOptions);\n }\n }\n return this.submitBatch(batch);\n }\n\n /**\n * Create multiple set tier operations to set the tier on a blob.\n * The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * See [set blob tier details](https://learn.microsoft.com/rest/api/storageservices/set-blob-tier).\n * The operation(subrequest) will be authenticated and authorized\n * with specified credential.See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param urls - The urls of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param tier -\n * @param options -\n */\n public async setBlobsAccessTier(\n urls: string[],\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n tier: AccessTier,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n /**\n * Create multiple set tier operations to set the tier on a blob.\n * The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * See [set blob tier details](https://learn.microsoft.com/rest/api/storageservices/set-blob-tier).\n * The operation(subrequest) will be authenticated and authorized\n * with specified credential.See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClients - The BlobClients for the blobs which should have a new tier set.\n * @param tier -\n * @param options -\n */\n public async setBlobsAccessTier(\n blobClients: BlobClient[],\n tier: AccessTier,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n public async setBlobsAccessTier(\n urlsOrBlobClients: string[] | BlobClient[],\n credentialOrTier:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | AccessTier,\n tierOrOptions?: AccessTier | BlobSetTierOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse> {\n const batch = new BlobBatch();\n for (const urlOrBlobClient of urlsOrBlobClients) {\n if (typeof urlOrBlobClient === \"string\") {\n await batch.setBlobAccessTier(\n urlOrBlobClient,\n credentialOrTier as TokenCredential,\n tierOrOptions as AccessTier,\n options,\n );\n } else {\n await batch.setBlobAccessTier(\n urlOrBlobClient,\n credentialOrTier as AccessTier,\n tierOrOptions as BlobSetTierOptions,\n );\n }\n }\n return this.submitBatch(batch);\n }\n\n /**\n * Submit batch request which consists of multiple subrequests.\n *\n * Get `blobBatchClient` and other details before running the snippets.\n * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`\n *\n * Example usage:\n *\n * ```ts snippet:BlobBatchClientSubmitBatch\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient, BlobBatch } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const credential = new DefaultAzureCredential();\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * credential,\n * );\n *\n * const containerName = \"<container name>\";\n * const containerClient = blobServiceClient.getContainerClient(containerName);\n * const blobBatchClient = containerClient.getBlobBatchClient();\n *\n * const batchRequest = new BlobBatch();\n * await batchRequest.deleteBlob(\"<blob-url-1>\", credential);\n * await batchRequest.deleteBlob(\"<blob-url-2>\", credential, {\n * deleteSnapshots: \"include\",\n * });\n * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n * console.log(batchResp.subResponsesSucceededCount);\n * ```\n *\n * Example using a lease:\n *\n * ```ts snippet:BlobBatchClientSubmitBatchWithLease\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient, BlobBatch } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const credential = new DefaultAzureCredential();\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * credential,\n * );\n *\n * const containerName = \"<container name>\";\n * const containerClient = blobServiceClient.getContainerClient(containerName);\n * const blobBatchClient = containerClient.getBlobBatchClient();\n * const blobClient = containerClient.getBlobClient(\"<blob name>\");\n *\n * const batchRequest = new BlobBatch();\n * await batchRequest.setBlobAccessTier(blobClient, \"Cool\");\n * await batchRequest.setBlobAccessTier(blobClient, \"Cool\", {\n * conditions: { leaseId: \"<lease-id>\" },\n * });\n * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n * console.log(batchResp.subResponsesSucceededCount);\n * ```\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n *\n * @param batchRequest - A set of Delete or SetTier operations.\n * @param options -\n */\n public async submitBatch(\n batchRequest: BlobBatch,\n options: BlobBatchSubmitBatchOptionalParams = {},\n ): Promise<BlobBatchSubmitBatchResponse> {\n if (!batchRequest || batchRequest.getSubRequests().size === 0) {\n throw new RangeError(\"Batch request should contain one or more sub requests.\");\n }\n\n return tracingClient.withSpan(\n \"BlobBatchClient-submitBatch\",\n options,\n async (updatedOptions) => {\n const batchRequestBody = batchRequest.getHttpRequestBody();\n\n // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.\n const rawBatchResponse: ServiceSubmitBatchResponseModel = assertResponse(\n (await this.serviceOrContainerContext.submitBatch(\n utf8ByteLength(batchRequestBody),\n batchRequest.getMultiPartContentType(),\n batchRequestBody,\n {\n ...updatedOptions,\n },\n )) as ServiceSubmitBatchResponseInternal,\n );\n\n // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).\n const batchResponseParser = new BatchResponseParser(\n rawBatchResponse,\n batchRequest.getSubRequests(),\n );\n const responseSummary = await batchResponseParser.parseBatchResponse();\n\n const res: BlobBatchSubmitBatchResponse = {\n _response: rawBatchResponse._response,\n contentType: rawBatchResponse.contentType,\n errorCode: rawBatchResponse.errorCode,\n requestId: rawBatchResponse.requestId,\n clientRequestId: rawBatchResponse.clientRequestId,\n version: rawBatchResponse.version,\n subResponses: responseSummary.subResponses,\n subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,\n subResponsesFailedCount: responseSummary.subResponsesFailedCount,\n };\n\n return res;\n },\n );\n }\n}\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["/mnt/vss/_work/1/s/sdk/storage/storage-blob/src/BlobBatchClient.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AccessTier,\n ServiceSubmitBatchHeaders,\n ServiceSubmitBatchOptionalParamsModel,\n ServiceSubmitBatchResponseModel,\n ServiceSubmitBatchResponseInternal,\n} from \"./generatedModels.js\";\nimport type { ParsedBatchResponse } from \"./BatchResponse.js\";\nimport { BatchResponseParser } from \"./BatchResponseParser.js\";\nimport { utf8ByteLength } from \"./BatchUtils.js\";\nimport { BlobBatch } from \"./BlobBatch.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { Service, Container } from \"./generated/src/operationsInterfaces/index.js\";\nimport { AnonymousCredential, type StorageSharedKeyCredential } from \"@azure/storage-common\";\nimport type { BlobDeleteOptions, BlobClient, BlobSetTierOptions } from \"./Clients.js\";\nimport { StorageContextClient } from \"./StorageContextClient.js\";\nimport type { PipelineLike, StoragePipelineOptions } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike, getCoreClientOptions } from \"./Pipeline.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport { assertResponse, getURLPath } from \"./utils/utils.common.js\";\n\n/**\n * Options to configure the Service - Submit Batch Optional Params.\n */\nexport interface BlobBatchSubmitBatchOptionalParams extends ServiceSubmitBatchOptionalParamsModel {}\n\n/**\n * Contains response data for blob batch operations.\n */\nexport declare type BlobBatchSubmitBatchResponse = WithResponse<\n ParsedBatchResponse & ServiceSubmitBatchHeaders,\n ServiceSubmitBatchHeaders\n>;\n\n/**\n * Contains response data for the {@link deleteBlobs} operation.\n */\nexport declare type BlobBatchDeleteBlobsResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * Contains response data for the {@link setBlobsAccessTier} operation.\n */\nexport declare type BlobBatchSetBlobsAccessTierResponse = BlobBatchSubmitBatchResponse;\n\n/**\n * A BlobBatchClient allows you to make batched requests to the Azure Storage Blob service.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n */\nexport class BlobBatchClient {\n private serviceOrContainerContext: Service | Container;\n\n /**\n * Creates an instance of BlobBatchClient.\n *\n * @param url - A url pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of BlobBatchClient.\n *\n * @param url - A url pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions,\n ) {\n let pipeline: PipelineLike;\n if (isPipelineLike(credentialOrPipeline)) {\n pipeline = credentialOrPipeline;\n } else if (!credentialOrPipeline) {\n // no credential provided\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n pipeline = newPipeline(credentialOrPipeline, options);\n }\n\n const storageClientContext = new StorageContextClient(url, getCoreClientOptions(pipeline));\n\n const path = getURLPath(url);\n if (path && path !== \"/\") {\n // Container scoped.\n this.serviceOrContainerContext = storageClientContext.container;\n } else {\n this.serviceOrContainerContext = storageClientContext.service;\n }\n }\n\n /**\n * Creates a {@link BlobBatch}.\n * A BlobBatch represents an aggregated set of operations on blobs.\n */\n public createBatch(): BlobBatch {\n return new BlobBatch();\n }\n\n /**\n * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operations will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param urls - The urls of the blob resources to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options -\n */\n public async deleteBlobs(\n urls: string[],\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse>;\n\n /**\n * Create multiple delete operations to mark the specified blobs or snapshots for deletion.\n * Note that in order to delete a blob, you must delete all of its snapshots.\n * You can delete both at the same time. See [delete operation details](https://learn.microsoft.com/rest/api/storageservices/delete-blob).\n * The operation(subrequest) will be authenticated and authorized with specified credential.\n * See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClients - The BlobClients for the blobs to delete.\n * @param options -\n */\n public async deleteBlobs(\n blobClients: BlobClient[],\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse>;\n\n public async deleteBlobs(\n urlsOrBlobClients: string[] | BlobClient[],\n credentialOrOptions:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | BlobDeleteOptions\n | undefined,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobDeleteOptions,\n ): Promise<BlobBatchDeleteBlobsResponse> {\n const batch = new BlobBatch();\n for (const urlOrBlobClient of urlsOrBlobClients) {\n if (typeof urlOrBlobClient === \"string\") {\n await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as TokenCredential, options);\n } else {\n await batch.deleteBlob(urlOrBlobClient, credentialOrOptions as BlobDeleteOptions);\n }\n }\n return this.submitBatch(batch);\n }\n\n /**\n * Create multiple set tier operations to set the tier on a blob.\n * The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * See [set blob tier details](https://learn.microsoft.com/rest/api/storageservices/set-blob-tier).\n * The operation(subrequest) will be authenticated and authorized\n * with specified credential.See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param urls - The urls of the blob resource to delete.\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param tier -\n * @param options -\n */\n public async setBlobsAccessTier(\n urls: string[],\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n tier: AccessTier,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n /**\n * Create multiple set tier operations to set the tier on a blob.\n * The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * See [set blob tier details](https://learn.microsoft.com/rest/api/storageservices/set-blob-tier).\n * The operation(subrequest) will be authenticated and authorized\n * with specified credential.See [blob batch authorization details](https://learn.microsoft.com/rest/api/storageservices/blob-batch#authorization).\n *\n * @param blobClients - The BlobClients for the blobs which should have a new tier set.\n * @param tier -\n * @param options -\n */\n public async setBlobsAccessTier(\n blobClients: BlobClient[],\n tier: AccessTier,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse>;\n\n public async setBlobsAccessTier(\n urlsOrBlobClients: string[] | BlobClient[],\n credentialOrTier:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | AccessTier,\n tierOrOptions?: AccessTier | BlobSetTierOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: BlobSetTierOptions,\n ): Promise<BlobBatchSetBlobsAccessTierResponse> {\n const batch = new BlobBatch();\n for (const urlOrBlobClient of urlsOrBlobClients) {\n if (typeof urlOrBlobClient === \"string\") {\n await batch.setBlobAccessTier(\n urlOrBlobClient,\n credentialOrTier as TokenCredential,\n tierOrOptions as AccessTier,\n options,\n );\n } else {\n await batch.setBlobAccessTier(\n urlOrBlobClient,\n credentialOrTier as AccessTier,\n tierOrOptions as BlobSetTierOptions,\n );\n }\n }\n return this.submitBatch(batch);\n }\n\n /**\n * Submit batch request which consists of multiple subrequests.\n *\n * Get `blobBatchClient` and other details before running the snippets.\n * `blobServiceClient.getBlobBatchClient()` gives the `blobBatchClient`\n *\n * Example usage:\n *\n * ```ts snippet:BlobBatchClientSubmitBatch\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient, BlobBatch } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const credential = new DefaultAzureCredential();\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * credential,\n * );\n *\n * const containerName = \"<container name>\";\n * const containerClient = blobServiceClient.getContainerClient(containerName);\n * const blobBatchClient = containerClient.getBlobBatchClient();\n *\n * const batchRequest = new BlobBatch();\n * await batchRequest.deleteBlob(\"<blob-url-1>\", credential);\n * await batchRequest.deleteBlob(\"<blob-url-2>\", credential, {\n * deleteSnapshots: \"include\",\n * });\n * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n * console.log(batchResp.subResponsesSucceededCount);\n * ```\n *\n * Example using a lease:\n *\n * ```ts snippet:BlobBatchClientSubmitBatchWithLease\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { BlobServiceClient, BlobBatch } from \"@azure/storage-blob\";\n *\n * const account = \"<account>\";\n * const credential = new DefaultAzureCredential();\n * const blobServiceClient = new BlobServiceClient(\n * `https://${account}.blob.core.windows.net`,\n * credential,\n * );\n *\n * const containerName = \"<container name>\";\n * const containerClient = blobServiceClient.getContainerClient(containerName);\n * const blobBatchClient = containerClient.getBlobBatchClient();\n * const blobClient = containerClient.getBlobClient(\"<blob name>\");\n *\n * const batchRequest = new BlobBatch();\n * await batchRequest.setBlobAccessTier(blobClient, \"Cool\");\n * await batchRequest.setBlobAccessTier(blobClient, \"Cool\", {\n * conditions: { leaseId: \"<lease-id>\" },\n * });\n * const batchResp = await blobBatchClient.submitBatch(batchRequest);\n * console.log(batchResp.subResponsesSucceededCount);\n * ```\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/blob-batch\n *\n * @param batchRequest - A set of Delete or SetTier operations.\n * @param options -\n */\n public async submitBatch(\n batchRequest: BlobBatch,\n options: BlobBatchSubmitBatchOptionalParams = {},\n ): Promise<BlobBatchSubmitBatchResponse> {\n if (!batchRequest || batchRequest.getSubRequests().size === 0) {\n throw new RangeError(\"Batch request should contain one or more sub requests.\");\n }\n\n return tracingClient.withSpan(\n \"BlobBatchClient-submitBatch\",\n options,\n async (updatedOptions) => {\n const batchRequestBody = batchRequest.getHttpRequestBody();\n\n // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now.\n const rawBatchResponse: ServiceSubmitBatchResponseModel = assertResponse(\n (await this.serviceOrContainerContext.submitBatch(\n utf8ByteLength(batchRequestBody),\n batchRequest.getMultiPartContentType(),\n batchRequestBody,\n {\n ...updatedOptions,\n },\n )) as ServiceSubmitBatchResponseInternal,\n );\n\n // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202).\n const batchResponseParser = new BatchResponseParser(\n rawBatchResponse,\n batchRequest.getSubRequests(),\n );\n const responseSummary = await batchResponseParser.parseBatchResponse();\n\n const res: BlobBatchSubmitBatchResponse = {\n _response: rawBatchResponse._response,\n contentType: rawBatchResponse.contentType,\n errorCode: rawBatchResponse.errorCode,\n requestId: rawBatchResponse.requestId,\n clientRequestId: rawBatchResponse.clientRequestId,\n version: rawBatchResponse.version,\n subResponses: responseSummary.subResponses,\n subResponsesSucceededCount: responseSummary.subResponsesSucceededCount,\n subResponsesFailedCount: responseSummary.subResponsesFailedCount,\n };\n\n return res;\n },\n );\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,4 +1,4 @@
1
- import type { NodeJSReadableStream } from "@azure/storage-common";
1
+ import { type NodeJSReadableStream } from "@azure/storage-common";
2
2
  import type { BlobImmutabilityPolicyMode } from "./generatedModels.js";
3
3
  import type { BlobDownloadHeaders, BlobType, CopyStatusType, LeaseDurationType, LeaseStateType, LeaseStatusType } from "./generatedModels.js";
4
4
  import type { BlobDownloadResponseParsed, Metadata, ObjectReplicationPolicy } from "./models.js";
@@ -334,6 +334,7 @@ export declare class BlobDownloadResponse implements BlobDownloadResponseParsed
334
334
  * @readonly
335
335
  */
336
336
  get legalHold(): boolean | undefined;
337
+ get structuredBodyType(): string | undefined;
337
338
  /**
338
339
  * The response body as a browser Blob.
339
340
  * Always undefined in node.js.