@azure/storage-blob 12.29.1 → 12.30.0-alpha.20251111.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 (418) hide show
  1. package/dist/browser/BlobBatch.d.ts +1 -2
  2. package/dist/browser/BlobBatch.d.ts.map +1 -1
  3. package/dist/browser/BlobBatch.js +1 -3
  4. package/dist/browser/BlobBatch.js.map +1 -1
  5. package/dist/browser/BlobBatchClient.d.ts +1 -2
  6. package/dist/browser/BlobBatchClient.d.ts.map +1 -1
  7. package/dist/browser/BlobBatchClient.js +1 -1
  8. package/dist/browser/BlobBatchClient.js.map +1 -1
  9. package/dist/browser/BlobServiceClient.d.ts +1 -2
  10. package/dist/browser/BlobServiceClient.d.ts.map +1 -1
  11. package/dist/browser/BlobServiceClient.js +1 -2
  12. package/dist/browser/BlobServiceClient.js.map +1 -1
  13. package/dist/browser/Clients.d.ts +1 -2
  14. package/dist/browser/Clients.d.ts.map +1 -1
  15. package/dist/browser/Clients.js +1 -2
  16. package/dist/browser/Clients.js.map +1 -1
  17. package/dist/browser/ContainerClient.d.ts +1 -2
  18. package/dist/browser/ContainerClient.d.ts.map +1 -1
  19. package/dist/browser/ContainerClient.js +1 -2
  20. package/dist/browser/ContainerClient.js.map +1 -1
  21. package/dist/browser/Pipeline.d.ts +2 -3
  22. package/dist/browser/Pipeline.d.ts.map +1 -1
  23. package/dist/browser/Pipeline.js +1 -9
  24. package/dist/browser/Pipeline.js.map +1 -1
  25. package/dist/browser/StorageClient.d.ts +1 -2
  26. package/dist/browser/StorageClient.d.ts.map +1 -1
  27. package/dist/browser/StorageClient.js.map +1 -1
  28. package/dist/browser/index-browser.d.mts.map +1 -1
  29. package/dist/browser/index-browser.mjs.map +1 -1
  30. package/dist/browser/index.d.ts +1 -7
  31. package/dist/browser/index.js +2 -7
  32. package/dist/browser/sas/AccountSASSignatureValues.d.ts +1 -1
  33. package/dist/browser/sas/AccountSASSignatureValues.d.ts.map +1 -1
  34. package/dist/browser/sas/AccountSASSignatureValues.js.map +1 -1
  35. package/dist/browser/sas/BlobSASSignatureValues.d.ts +1 -1
  36. package/dist/browser/sas/BlobSASSignatureValues.d.ts.map +1 -1
  37. package/dist/browser/sas/BlobSASSignatureValues.js +1 -1
  38. package/dist/browser/sas/BlobSASSignatureValues.js.map +1 -1
  39. package/dist/browser/utils/constants.js +1 -1
  40. package/dist/browser/utils/constants.js.map +1 -1
  41. package/dist/commonjs/BlobBatch.d.ts +1 -2
  42. package/dist/commonjs/BlobBatch.d.ts.map +1 -1
  43. package/dist/commonjs/BlobBatch.js +7 -9
  44. package/dist/commonjs/BlobBatch.js.map +1 -1
  45. package/dist/commonjs/BlobBatchClient.d.ts +1 -2
  46. package/dist/commonjs/BlobBatchClient.d.ts.map +1 -1
  47. package/dist/commonjs/BlobBatchClient.js +2 -2
  48. package/dist/commonjs/BlobBatchClient.js.map +1 -1
  49. package/dist/commonjs/BlobServiceClient.d.ts +1 -2
  50. package/dist/commonjs/BlobServiceClient.d.ts.map +1 -1
  51. package/dist/commonjs/BlobServiceClient.js +8 -9
  52. package/dist/commonjs/BlobServiceClient.js.map +1 -1
  53. package/dist/commonjs/Clients.d.ts +1 -2
  54. package/dist/commonjs/Clients.d.ts.map +1 -1
  55. package/dist/commonjs/Clients.js +25 -26
  56. package/dist/commonjs/Clients.js.map +1 -1
  57. package/dist/commonjs/ContainerClient.d.ts +1 -2
  58. package/dist/commonjs/ContainerClient.d.ts.map +1 -1
  59. package/dist/commonjs/ContainerClient.js +8 -9
  60. package/dist/commonjs/ContainerClient.js.map +1 -1
  61. package/dist/commonjs/Pipeline.d.ts +2 -3
  62. package/dist/commonjs/Pipeline.d.ts.map +1 -1
  63. package/dist/commonjs/Pipeline.js +12 -20
  64. package/dist/commonjs/Pipeline.js.map +1 -1
  65. package/dist/commonjs/StorageClient.d.ts +1 -2
  66. package/dist/commonjs/StorageClient.d.ts.map +1 -1
  67. package/dist/commonjs/StorageClient.js.map +1 -1
  68. package/dist/commonjs/index.d.ts +1 -10
  69. package/dist/commonjs/index.d.ts.map +1 -1
  70. package/dist/commonjs/index.js +14 -12
  71. package/dist/commonjs/index.js.map +1 -1
  72. package/dist/commonjs/sas/AccountSASSignatureValues.d.ts +1 -1
  73. package/dist/commonjs/sas/AccountSASSignatureValues.d.ts.map +1 -1
  74. package/dist/commonjs/sas/AccountSASSignatureValues.js.map +1 -1
  75. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts +1 -1
  76. package/dist/commonjs/sas/BlobSASSignatureValues.d.ts.map +1 -1
  77. package/dist/commonjs/sas/BlobSASSignatureValues.js +2 -2
  78. package/dist/commonjs/sas/BlobSASSignatureValues.js.map +1 -1
  79. package/dist/commonjs/tsdoc-metadata.json +1 -1
  80. package/dist/commonjs/utils/constants.js +1 -1
  81. package/dist/commonjs/utils/constants.js.map +1 -1
  82. package/dist/esm/BlobBatch.d.ts +1 -2
  83. package/dist/esm/BlobBatch.d.ts.map +1 -1
  84. package/dist/esm/BlobBatch.js +1 -3
  85. package/dist/esm/BlobBatch.js.map +1 -1
  86. package/dist/esm/BlobBatchClient.d.ts +1 -2
  87. package/dist/esm/BlobBatchClient.d.ts.map +1 -1
  88. package/dist/esm/BlobBatchClient.js +1 -1
  89. package/dist/esm/BlobBatchClient.js.map +1 -1
  90. package/dist/esm/BlobServiceClient.d.ts +1 -2
  91. package/dist/esm/BlobServiceClient.d.ts.map +1 -1
  92. package/dist/esm/BlobServiceClient.js +1 -2
  93. package/dist/esm/BlobServiceClient.js.map +1 -1
  94. package/dist/esm/Clients.d.ts +1 -2
  95. package/dist/esm/Clients.d.ts.map +1 -1
  96. package/dist/esm/Clients.js +1 -2
  97. package/dist/esm/Clients.js.map +1 -1
  98. package/dist/esm/ContainerClient.d.ts +1 -2
  99. package/dist/esm/ContainerClient.d.ts.map +1 -1
  100. package/dist/esm/ContainerClient.js +1 -2
  101. package/dist/esm/ContainerClient.js.map +1 -1
  102. package/dist/esm/Pipeline.d.ts +2 -3
  103. package/dist/esm/Pipeline.d.ts.map +1 -1
  104. package/dist/esm/Pipeline.js +1 -9
  105. package/dist/esm/Pipeline.js.map +1 -1
  106. package/dist/esm/StorageClient.d.ts +1 -2
  107. package/dist/esm/StorageClient.d.ts.map +1 -1
  108. package/dist/esm/StorageClient.js.map +1 -1
  109. package/dist/esm/index.d.ts +1 -10
  110. package/dist/esm/index.d.ts.map +1 -1
  111. package/dist/esm/index.js +1 -10
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/sas/AccountSASSignatureValues.d.ts +1 -1
  114. package/dist/esm/sas/AccountSASSignatureValues.d.ts.map +1 -1
  115. package/dist/esm/sas/AccountSASSignatureValues.js.map +1 -1
  116. package/dist/esm/sas/BlobSASSignatureValues.d.ts +1 -1
  117. package/dist/esm/sas/BlobSASSignatureValues.d.ts.map +1 -1
  118. package/dist/esm/sas/BlobSASSignatureValues.js +1 -1
  119. package/dist/esm/sas/BlobSASSignatureValues.js.map +1 -1
  120. package/dist/esm/utils/constants.js +1 -1
  121. package/dist/esm/utils/constants.js.map +1 -1
  122. package/dist/react-native/BlobBatch.d.ts +1 -2
  123. package/dist/react-native/BlobBatch.d.ts.map +1 -1
  124. package/dist/react-native/BlobBatch.js +1 -3
  125. package/dist/react-native/BlobBatch.js.map +1 -1
  126. package/dist/react-native/BlobBatchClient.d.ts +1 -2
  127. package/dist/react-native/BlobBatchClient.d.ts.map +1 -1
  128. package/dist/react-native/BlobBatchClient.js +1 -1
  129. package/dist/react-native/BlobBatchClient.js.map +1 -1
  130. package/dist/react-native/BlobServiceClient.d.ts +1 -2
  131. package/dist/react-native/BlobServiceClient.d.ts.map +1 -1
  132. package/dist/react-native/BlobServiceClient.js +1 -2
  133. package/dist/react-native/BlobServiceClient.js.map +1 -1
  134. package/dist/react-native/Clients.d.ts +1 -2
  135. package/dist/react-native/Clients.d.ts.map +1 -1
  136. package/dist/react-native/Clients.js +1 -2
  137. package/dist/react-native/Clients.js.map +1 -1
  138. package/dist/react-native/ContainerClient.d.ts +1 -2
  139. package/dist/react-native/ContainerClient.d.ts.map +1 -1
  140. package/dist/react-native/ContainerClient.js +1 -2
  141. package/dist/react-native/ContainerClient.js.map +1 -1
  142. package/dist/react-native/Pipeline.d.ts +2 -3
  143. package/dist/react-native/Pipeline.d.ts.map +1 -1
  144. package/dist/react-native/Pipeline.js +1 -9
  145. package/dist/react-native/Pipeline.js.map +1 -1
  146. package/dist/react-native/StorageClient.d.ts +1 -2
  147. package/dist/react-native/StorageClient.d.ts.map +1 -1
  148. package/dist/react-native/StorageClient.js.map +1 -1
  149. package/dist/react-native/index.d.ts +1 -10
  150. package/dist/react-native/index.d.ts.map +1 -1
  151. package/dist/react-native/index.js +1 -10
  152. package/dist/react-native/index.js.map +1 -1
  153. package/dist/react-native/sas/AccountSASSignatureValues.d.ts +1 -1
  154. package/dist/react-native/sas/AccountSASSignatureValues.d.ts.map +1 -1
  155. package/dist/react-native/sas/AccountSASSignatureValues.js.map +1 -1
  156. package/dist/react-native/sas/BlobSASSignatureValues.d.ts +1 -1
  157. package/dist/react-native/sas/BlobSASSignatureValues.d.ts.map +1 -1
  158. package/dist/react-native/sas/BlobSASSignatureValues.js +1 -1
  159. package/dist/react-native/sas/BlobSASSignatureValues.js.map +1 -1
  160. package/dist/react-native/utils/constants.js +1 -1
  161. package/dist/react-native/utils/constants.js.map +1 -1
  162. package/package.json +18 -18
  163. package/dist/browser/StorageBrowserPolicyFactory.d.ts +0 -16
  164. package/dist/browser/StorageBrowserPolicyFactory.d.ts.map +0 -1
  165. package/dist/browser/StorageBrowserPolicyFactory.js +0 -19
  166. package/dist/browser/StorageBrowserPolicyFactory.js.map +0 -1
  167. package/dist/browser/StorageRetryPolicyFactory.d.ts +0 -66
  168. package/dist/browser/StorageRetryPolicyFactory.d.ts.map +0 -1
  169. package/dist/browser/StorageRetryPolicyFactory.js +0 -28
  170. package/dist/browser/StorageRetryPolicyFactory.js.map +0 -1
  171. package/dist/browser/credentials/AnonymousCredential.d.ts +0 -19
  172. package/dist/browser/credentials/AnonymousCredential.d.ts.map +0 -1
  173. package/dist/browser/credentials/AnonymousCredential.js +0 -22
  174. package/dist/browser/credentials/AnonymousCredential.js.map +0 -1
  175. package/dist/browser/credentials/Credential.d.ts +0 -20
  176. package/dist/browser/credentials/Credential.d.ts.map +0 -1
  177. package/dist/browser/credentials/Credential.js +0 -18
  178. package/dist/browser/credentials/Credential.js.map +0 -1
  179. package/dist/browser/credentials/StorageSharedKeyCredential-browser.d.mts.map +0 -1
  180. package/dist/browser/credentials/StorageSharedKeyCredential-browser.mjs.map +0 -1
  181. package/dist/browser/credentials/StorageSharedKeyCredential.d.ts +0 -3
  182. package/dist/browser/credentials/StorageSharedKeyCredential.js +0 -5
  183. package/dist/browser/policies/AnonymousCredentialPolicy.d.ts +0 -15
  184. package/dist/browser/policies/AnonymousCredentialPolicy.d.ts.map +0 -1
  185. package/dist/browser/policies/AnonymousCredentialPolicy.js +0 -20
  186. package/dist/browser/policies/AnonymousCredentialPolicy.js.map +0 -1
  187. package/dist/browser/policies/CredentialPolicy.d.ts +0 -22
  188. package/dist/browser/policies/CredentialPolicy.d.ts.map +0 -1
  189. package/dist/browser/policies/CredentialPolicy.js +0 -29
  190. package/dist/browser/policies/CredentialPolicy.js.map +0 -1
  191. package/dist/browser/policies/RequestPolicy.d.ts +0 -45
  192. package/dist/browser/policies/RequestPolicy.d.ts.map +0 -1
  193. package/dist/browser/policies/RequestPolicy.js +0 -42
  194. package/dist/browser/policies/RequestPolicy.js.map +0 -1
  195. package/dist/browser/policies/StorageBrowserPolicy.d.ts +0 -28
  196. package/dist/browser/policies/StorageBrowserPolicy.d.ts.map +0 -1
  197. package/dist/browser/policies/StorageBrowserPolicy.js +0 -47
  198. package/dist/browser/policies/StorageBrowserPolicy.js.map +0 -1
  199. package/dist/browser/policies/StorageBrowserPolicyV2.d.ts +0 -11
  200. package/dist/browser/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  201. package/dist/browser/policies/StorageBrowserPolicyV2.js +0 -31
  202. package/dist/browser/policies/StorageBrowserPolicyV2.js.map +0 -1
  203. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.d.mts.map +0 -1
  204. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.mjs.map +0 -1
  205. package/dist/browser/policies/StorageCorrectContentLengthPolicy.d.ts +0 -10
  206. package/dist/browser/policies/StorageCorrectContentLengthPolicy.js +0 -18
  207. package/dist/browser/policies/StorageRetryPolicy.d.ts +0 -62
  208. package/dist/browser/policies/StorageRetryPolicy.d.ts.map +0 -1
  209. package/dist/browser/policies/StorageRetryPolicy.js +0 -219
  210. package/dist/browser/policies/StorageRetryPolicy.js.map +0 -1
  211. package/dist/browser/policies/StorageRetryPolicyType.d.ts +0 -14
  212. package/dist/browser/policies/StorageRetryPolicyType.d.ts.map +0 -1
  213. package/dist/browser/policies/StorageRetryPolicyType.js +0 -17
  214. package/dist/browser/policies/StorageRetryPolicyType.js.map +0 -1
  215. package/dist/browser/policies/StorageRetryPolicyV2.d.ts +0 -11
  216. package/dist/browser/policies/StorageRetryPolicyV2.d.ts.map +0 -1
  217. package/dist/browser/policies/StorageRetryPolicyV2.js +0 -164
  218. package/dist/browser/policies/StorageRetryPolicyV2.js.map +0 -1
  219. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  220. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  221. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js +0 -145
  222. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  223. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.d.mts.map +0 -1
  224. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.mjs.map +0 -1
  225. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.d.ts +0 -17
  226. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.js +0 -18
  227. package/dist/commonjs/StorageBrowserPolicyFactory.d.ts +0 -16
  228. package/dist/commonjs/StorageBrowserPolicyFactory.d.ts.map +0 -1
  229. package/dist/commonjs/StorageBrowserPolicyFactory.js +0 -23
  230. package/dist/commonjs/StorageBrowserPolicyFactory.js.map +0 -1
  231. package/dist/commonjs/StorageRetryPolicyFactory.d.ts +0 -66
  232. package/dist/commonjs/StorageRetryPolicyFactory.d.ts.map +0 -1
  233. package/dist/commonjs/StorageRetryPolicyFactory.js +0 -33
  234. package/dist/commonjs/StorageRetryPolicyFactory.js.map +0 -1
  235. package/dist/commonjs/credentials/AnonymousCredential.d.ts +0 -19
  236. package/dist/commonjs/credentials/AnonymousCredential.d.ts.map +0 -1
  237. package/dist/commonjs/credentials/AnonymousCredential.js +0 -26
  238. package/dist/commonjs/credentials/AnonymousCredential.js.map +0 -1
  239. package/dist/commonjs/credentials/Credential.d.ts +0 -20
  240. package/dist/commonjs/credentials/Credential.d.ts.map +0 -1
  241. package/dist/commonjs/credentials/Credential.js +0 -22
  242. package/dist/commonjs/credentials/Credential.js.map +0 -1
  243. package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts +0 -38
  244. package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts.map +0 -1
  245. package/dist/commonjs/credentials/StorageSharedKeyCredential.js +0 -52
  246. package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +0 -1
  247. package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts +0 -15
  248. package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts.map +0 -1
  249. package/dist/commonjs/policies/AnonymousCredentialPolicy.js +0 -24
  250. package/dist/commonjs/policies/AnonymousCredentialPolicy.js.map +0 -1
  251. package/dist/commonjs/policies/CredentialPolicy.d.ts +0 -22
  252. package/dist/commonjs/policies/CredentialPolicy.d.ts.map +0 -1
  253. package/dist/commonjs/policies/CredentialPolicy.js +0 -33
  254. package/dist/commonjs/policies/CredentialPolicy.js.map +0 -1
  255. package/dist/commonjs/policies/RequestPolicy.d.ts +0 -45
  256. package/dist/commonjs/policies/RequestPolicy.d.ts.map +0 -1
  257. package/dist/commonjs/policies/RequestPolicy.js +0 -46
  258. package/dist/commonjs/policies/RequestPolicy.js.map +0 -1
  259. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts +0 -28
  260. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts.map +0 -1
  261. package/dist/commonjs/policies/StorageBrowserPolicy.js +0 -51
  262. package/dist/commonjs/policies/StorageBrowserPolicy.js.map +0 -1
  263. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts +0 -11
  264. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  265. package/dist/commonjs/policies/StorageBrowserPolicyV2.js +0 -35
  266. package/dist/commonjs/policies/StorageBrowserPolicyV2.js.map +0 -1
  267. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts +0 -10
  268. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts.map +0 -1
  269. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js +0 -31
  270. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
  271. package/dist/commonjs/policies/StorageRetryPolicy.d.ts +0 -62
  272. package/dist/commonjs/policies/StorageRetryPolicy.d.ts.map +0 -1
  273. package/dist/commonjs/policies/StorageRetryPolicy.js +0 -224
  274. package/dist/commonjs/policies/StorageRetryPolicy.js.map +0 -1
  275. package/dist/commonjs/policies/StorageRetryPolicyType.d.ts +0 -14
  276. package/dist/commonjs/policies/StorageRetryPolicyType.d.ts.map +0 -1
  277. package/dist/commonjs/policies/StorageRetryPolicyType.js +0 -20
  278. package/dist/commonjs/policies/StorageRetryPolicyType.js.map +0 -1
  279. package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts +0 -11
  280. package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts.map +0 -1
  281. package/dist/commonjs/policies/StorageRetryPolicyV2.js +0 -168
  282. package/dist/commonjs/policies/StorageRetryPolicyV2.js.map +0 -1
  283. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  284. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  285. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js +0 -149
  286. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  287. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts +0 -17
  288. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +0 -1
  289. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js +0 -136
  290. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
  291. package/dist/esm/StorageBrowserPolicyFactory.d.ts +0 -16
  292. package/dist/esm/StorageBrowserPolicyFactory.d.ts.map +0 -1
  293. package/dist/esm/StorageBrowserPolicyFactory.js +0 -19
  294. package/dist/esm/StorageBrowserPolicyFactory.js.map +0 -1
  295. package/dist/esm/StorageRetryPolicyFactory.d.ts +0 -66
  296. package/dist/esm/StorageRetryPolicyFactory.d.ts.map +0 -1
  297. package/dist/esm/StorageRetryPolicyFactory.js +0 -28
  298. package/dist/esm/StorageRetryPolicyFactory.js.map +0 -1
  299. package/dist/esm/credentials/AnonymousCredential.d.ts +0 -19
  300. package/dist/esm/credentials/AnonymousCredential.d.ts.map +0 -1
  301. package/dist/esm/credentials/AnonymousCredential.js +0 -22
  302. package/dist/esm/credentials/AnonymousCredential.js.map +0 -1
  303. package/dist/esm/credentials/Credential.d.ts +0 -20
  304. package/dist/esm/credentials/Credential.d.ts.map +0 -1
  305. package/dist/esm/credentials/Credential.js +0 -18
  306. package/dist/esm/credentials/Credential.js.map +0 -1
  307. package/dist/esm/credentials/StorageSharedKeyCredential.d.ts +0 -38
  308. package/dist/esm/credentials/StorageSharedKeyCredential.d.ts.map +0 -1
  309. package/dist/esm/credentials/StorageSharedKeyCredential.js +0 -48
  310. package/dist/esm/credentials/StorageSharedKeyCredential.js.map +0 -1
  311. package/dist/esm/policies/AnonymousCredentialPolicy.d.ts +0 -15
  312. package/dist/esm/policies/AnonymousCredentialPolicy.d.ts.map +0 -1
  313. package/dist/esm/policies/AnonymousCredentialPolicy.js +0 -20
  314. package/dist/esm/policies/AnonymousCredentialPolicy.js.map +0 -1
  315. package/dist/esm/policies/CredentialPolicy.d.ts +0 -22
  316. package/dist/esm/policies/CredentialPolicy.d.ts.map +0 -1
  317. package/dist/esm/policies/CredentialPolicy.js +0 -29
  318. package/dist/esm/policies/CredentialPolicy.js.map +0 -1
  319. package/dist/esm/policies/RequestPolicy.d.ts +0 -45
  320. package/dist/esm/policies/RequestPolicy.d.ts.map +0 -1
  321. package/dist/esm/policies/RequestPolicy.js +0 -42
  322. package/dist/esm/policies/RequestPolicy.js.map +0 -1
  323. package/dist/esm/policies/StorageBrowserPolicy.d.ts +0 -28
  324. package/dist/esm/policies/StorageBrowserPolicy.d.ts.map +0 -1
  325. package/dist/esm/policies/StorageBrowserPolicy.js +0 -47
  326. package/dist/esm/policies/StorageBrowserPolicy.js.map +0 -1
  327. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts +0 -11
  328. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  329. package/dist/esm/policies/StorageBrowserPolicyV2.js +0 -31
  330. package/dist/esm/policies/StorageBrowserPolicyV2.js.map +0 -1
  331. package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts +0 -10
  332. package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts.map +0 -1
  333. package/dist/esm/policies/StorageCorrectContentLengthPolicy.js +0 -27
  334. package/dist/esm/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
  335. package/dist/esm/policies/StorageRetryPolicy.d.ts +0 -62
  336. package/dist/esm/policies/StorageRetryPolicy.d.ts.map +0 -1
  337. package/dist/esm/policies/StorageRetryPolicy.js +0 -219
  338. package/dist/esm/policies/StorageRetryPolicy.js.map +0 -1
  339. package/dist/esm/policies/StorageRetryPolicyType.d.ts +0 -14
  340. package/dist/esm/policies/StorageRetryPolicyType.d.ts.map +0 -1
  341. package/dist/esm/policies/StorageRetryPolicyType.js +0 -17
  342. package/dist/esm/policies/StorageRetryPolicyType.js.map +0 -1
  343. package/dist/esm/policies/StorageRetryPolicyV2.d.ts +0 -11
  344. package/dist/esm/policies/StorageRetryPolicyV2.d.ts.map +0 -1
  345. package/dist/esm/policies/StorageRetryPolicyV2.js +0 -164
  346. package/dist/esm/policies/StorageRetryPolicyV2.js.map +0 -1
  347. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  348. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  349. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js +0 -145
  350. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  351. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts +0 -17
  352. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +0 -1
  353. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js +0 -132
  354. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
  355. package/dist/react-native/StorageBrowserPolicyFactory.d.ts +0 -16
  356. package/dist/react-native/StorageBrowserPolicyFactory.d.ts.map +0 -1
  357. package/dist/react-native/StorageBrowserPolicyFactory.js +0 -19
  358. package/dist/react-native/StorageBrowserPolicyFactory.js.map +0 -1
  359. package/dist/react-native/StorageRetryPolicyFactory.d.ts +0 -66
  360. package/dist/react-native/StorageRetryPolicyFactory.d.ts.map +0 -1
  361. package/dist/react-native/StorageRetryPolicyFactory.js +0 -28
  362. package/dist/react-native/StorageRetryPolicyFactory.js.map +0 -1
  363. package/dist/react-native/credentials/AnonymousCredential.d.ts +0 -19
  364. package/dist/react-native/credentials/AnonymousCredential.d.ts.map +0 -1
  365. package/dist/react-native/credentials/AnonymousCredential.js +0 -22
  366. package/dist/react-native/credentials/AnonymousCredential.js.map +0 -1
  367. package/dist/react-native/credentials/Credential.d.ts +0 -20
  368. package/dist/react-native/credentials/Credential.d.ts.map +0 -1
  369. package/dist/react-native/credentials/Credential.js +0 -18
  370. package/dist/react-native/credentials/Credential.js.map +0 -1
  371. package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts +0 -38
  372. package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts.map +0 -1
  373. package/dist/react-native/credentials/StorageSharedKeyCredential.js +0 -48
  374. package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +0 -1
  375. package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts +0 -15
  376. package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts.map +0 -1
  377. package/dist/react-native/policies/AnonymousCredentialPolicy.js +0 -20
  378. package/dist/react-native/policies/AnonymousCredentialPolicy.js.map +0 -1
  379. package/dist/react-native/policies/CredentialPolicy.d.ts +0 -22
  380. package/dist/react-native/policies/CredentialPolicy.d.ts.map +0 -1
  381. package/dist/react-native/policies/CredentialPolicy.js +0 -29
  382. package/dist/react-native/policies/CredentialPolicy.js.map +0 -1
  383. package/dist/react-native/policies/RequestPolicy.d.ts +0 -45
  384. package/dist/react-native/policies/RequestPolicy.d.ts.map +0 -1
  385. package/dist/react-native/policies/RequestPolicy.js +0 -42
  386. package/dist/react-native/policies/RequestPolicy.js.map +0 -1
  387. package/dist/react-native/policies/StorageBrowserPolicy.d.ts +0 -28
  388. package/dist/react-native/policies/StorageBrowserPolicy.d.ts.map +0 -1
  389. package/dist/react-native/policies/StorageBrowserPolicy.js +0 -47
  390. package/dist/react-native/policies/StorageBrowserPolicy.js.map +0 -1
  391. package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts +0 -11
  392. package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  393. package/dist/react-native/policies/StorageBrowserPolicyV2.js +0 -31
  394. package/dist/react-native/policies/StorageBrowserPolicyV2.js.map +0 -1
  395. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts +0 -10
  396. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts.map +0 -1
  397. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js +0 -27
  398. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
  399. package/dist/react-native/policies/StorageRetryPolicy.d.ts +0 -62
  400. package/dist/react-native/policies/StorageRetryPolicy.d.ts.map +0 -1
  401. package/dist/react-native/policies/StorageRetryPolicy.js +0 -219
  402. package/dist/react-native/policies/StorageRetryPolicy.js.map +0 -1
  403. package/dist/react-native/policies/StorageRetryPolicyType.d.ts +0 -14
  404. package/dist/react-native/policies/StorageRetryPolicyType.d.ts.map +0 -1
  405. package/dist/react-native/policies/StorageRetryPolicyType.js +0 -17
  406. package/dist/react-native/policies/StorageRetryPolicyType.js.map +0 -1
  407. package/dist/react-native/policies/StorageRetryPolicyV2.d.ts +0 -11
  408. package/dist/react-native/policies/StorageRetryPolicyV2.d.ts.map +0 -1
  409. package/dist/react-native/policies/StorageRetryPolicyV2.js +0 -164
  410. package/dist/react-native/policies/StorageRetryPolicyV2.js.map +0 -1
  411. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  412. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  413. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js +0 -145
  414. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  415. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts +0 -17
  416. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +0 -1
  417. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js +0 -132
  418. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
@@ -1,145 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { HeaderConstants } from "../utils/constants.js";
4
- import { getURLPath, getURLQueries } from "../utils/utils.common.js";
5
- import { CredentialPolicy } from "./CredentialPolicy.js";
6
- import { compareHeader } from "../utils/SharedKeyComparator.js";
7
- /**
8
- * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.
9
- */
10
- export class StorageSharedKeyCredentialPolicy extends CredentialPolicy {
11
- /**
12
- * Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy
13
- */
14
- factory;
15
- /**
16
- * Creates an instance of StorageSharedKeyCredentialPolicy.
17
- * @param nextPolicy -
18
- * @param options -
19
- * @param factory -
20
- */
21
- constructor(nextPolicy, options, factory) {
22
- super(nextPolicy, options);
23
- this.factory = factory;
24
- }
25
- /**
26
- * Signs request.
27
- *
28
- * @param request -
29
- */
30
- signRequest(request) {
31
- request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());
32
- if (request.body &&
33
- (typeof request.body === "string" || request.body !== undefined) &&
34
- request.body.length > 0) {
35
- request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
36
- }
37
- const stringToSign = [
38
- request.method.toUpperCase(),
39
- this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),
40
- this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),
41
- this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),
42
- this.getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),
43
- this.getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),
44
- this.getHeaderValueToSign(request, HeaderConstants.DATE),
45
- this.getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),
46
- this.getHeaderValueToSign(request, HeaderConstants.IF_MATCH),
47
- this.getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),
48
- this.getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),
49
- this.getHeaderValueToSign(request, HeaderConstants.RANGE),
50
- ].join("\n") +
51
- "\n" +
52
- this.getCanonicalizedHeadersString(request) +
53
- this.getCanonicalizedResourceString(request);
54
- const signature = this.factory.computeHMACSHA256(stringToSign);
55
- request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${this.factory.accountName}:${signature}`);
56
- // console.log(`[URL]:${request.url}`);
57
- // console.log(`[HEADERS]:${request.headers.toString()}`);
58
- // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
59
- // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
60
- return request;
61
- }
62
- /**
63
- * Retrieve header value according to shared key sign rules.
64
- * @see https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key
65
- *
66
- * @param request -
67
- * @param headerName -
68
- */
69
- getHeaderValueToSign(request, headerName) {
70
- const value = request.headers.get(headerName);
71
- if (!value) {
72
- return "";
73
- }
74
- // When using version 2015-02-21 or later, if Content-Length is zero, then
75
- // set the Content-Length part of the StringToSign to an empty string.
76
- // https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key
77
- if (headerName === HeaderConstants.CONTENT_LENGTH && value === "0") {
78
- return "";
79
- }
80
- return value;
81
- }
82
- /**
83
- * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
84
- * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
85
- * 2. Convert each HTTP header name to lowercase.
86
- * 3. Sort the headers lexicographically by header name, in ascending order.
87
- * Each header may appear only once in the string.
88
- * 4. Replace any linear whitespace in the header value with a single space.
89
- * 5. Trim any whitespace around the colon in the header.
90
- * 6. Finally, append a new-line character to each canonicalized header in the resulting list.
91
- * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
92
- *
93
- * @param request -
94
- */
95
- getCanonicalizedHeadersString(request) {
96
- let headersArray = request.headers.headersArray().filter((value) => {
97
- return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE);
98
- });
99
- headersArray.sort((a, b) => {
100
- return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());
101
- });
102
- // Remove duplicate headers
103
- headersArray = headersArray.filter((value, index, array) => {
104
- if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
105
- return false;
106
- }
107
- return true;
108
- });
109
- let canonicalizedHeadersStringToSign = "";
110
- headersArray.forEach((header) => {
111
- canonicalizedHeadersStringToSign += `${header.name
112
- .toLowerCase()
113
- .trimRight()}:${header.value.trimLeft()}\n`;
114
- });
115
- return canonicalizedHeadersStringToSign;
116
- }
117
- /**
118
- * Retrieves the webResource canonicalized resource string.
119
- *
120
- * @param request -
121
- */
122
- getCanonicalizedResourceString(request) {
123
- const path = getURLPath(request.url) || "/";
124
- let canonicalizedResourceString = "";
125
- canonicalizedResourceString += `/${this.factory.accountName}${path}`;
126
- const queries = getURLQueries(request.url);
127
- const lowercaseQueries = {};
128
- if (queries) {
129
- const queryKeys = [];
130
- for (const key in queries) {
131
- if (Object.prototype.hasOwnProperty.call(queries, key)) {
132
- const lowercaseKey = key.toLowerCase();
133
- lowercaseQueries[lowercaseKey] = queries[key];
134
- queryKeys.push(lowercaseKey);
135
- }
136
- }
137
- queryKeys.sort();
138
- for (const key of queryKeys) {
139
- canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
140
- }
141
- }
142
- return canonicalizedResourceString;
143
- }
144
- }
145
- //# sourceMappingURL=StorageSharedKeyCredentialPolicy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSharedKeyCredentialPolicy.js","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n} from \"@azure/core-http-compat\";\nimport type { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential.js\";\nimport { HeaderConstants } from \"../utils/constants.js\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common.js\";\nimport { CredentialPolicy } from \"./CredentialPolicy.js\";\nimport { compareHeader } from \"../utils/SharedKeyComparator.js\";\n\n/**\n * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport class StorageSharedKeyCredentialPolicy extends CredentialPolicy {\n /**\n * Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy\n */\n private readonly factory: StorageSharedKeyCredential;\n\n /**\n * Creates an instance of StorageSharedKeyCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n * @param factory -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n factory: StorageSharedKeyCredential,\n ) {\n super(nextPolicy, options);\n this.factory = factory;\n }\n\n /**\n * Signs request.\n *\n * @param request -\n */\n protected signRequest(request: WebResource): WebResource {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || (request.body as Buffer) !== undefined) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n this.getHeaderValueToSign(request, HeaderConstants.DATE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n this.getCanonicalizedHeadersString(request) +\n this.getCanonicalizedResourceString(request);\n\n const signature: string = this.factory.computeHMACSHA256(stringToSign);\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${this.factory.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n return request;\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key\n *\n * @param request -\n * @param headerName -\n */\n private getHeaderValueToSign(request: WebResource, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n * @param request -\n */\n private getCanonicalizedHeadersString(request: WebResource): string {\n let headersArray = request.headers.headersArray().filter((value) => {\n return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE);\n });\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n /**\n * Retrieves the webResource canonicalized resource string.\n *\n * @param request -\n */\n private getCanonicalizedResourceString(request: WebResource): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${this.factory.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n}\n"]}
@@ -1,17 +0,0 @@
1
- import type { PipelinePolicy } from "@azure/core-rest-pipeline";
2
- /**
3
- * The programmatic identifier of the storageSharedKeyCredentialPolicy.
4
- */
5
- export declare const storageSharedKeyCredentialPolicyName = "storageSharedKeyCredentialPolicy";
6
- /**
7
- * Options used to configure StorageSharedKeyCredentialPolicy.
8
- */
9
- export interface StorageSharedKeyCredentialPolicyOptions {
10
- accountName: string;
11
- accountKey: Buffer;
12
- }
13
- /**
14
- * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.
15
- */
16
- export declare function storageSharedKeyCredentialPolicy(options: StorageSharedKeyCredentialPolicyOptions): PipelinePolicy;
17
- //# sourceMappingURL=StorageSharedKeyCredentialPolicyV2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSharedKeyCredentialPolicyV2.d.ts","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicyV2.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,2BAA2B,CAAC;AAKnC;;GAEG;AACH,eAAO,MAAM,oCAAoC,qCAAqC,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,cAAc,CA8IhB"}
@@ -1,132 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { createHmac } from "node:crypto";
4
- import { HeaderConstants } from "../utils/constants.js";
5
- import { getURLPath, getURLQueries } from "../utils/utils.common.js";
6
- import { compareHeader } from "../utils/SharedKeyComparator.js";
7
- /**
8
- * The programmatic identifier of the storageSharedKeyCredentialPolicy.
9
- */
10
- export const storageSharedKeyCredentialPolicyName = "storageSharedKeyCredentialPolicy";
11
- /**
12
- * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.
13
- */
14
- export function storageSharedKeyCredentialPolicy(options) {
15
- function signRequest(request) {
16
- request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());
17
- if (request.body &&
18
- (typeof request.body === "string" || Buffer.isBuffer(request.body)) &&
19
- request.body.length > 0) {
20
- request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
21
- }
22
- const stringToSign = [
23
- request.method.toUpperCase(),
24
- getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),
25
- getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),
26
- getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),
27
- getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),
28
- getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),
29
- getHeaderValueToSign(request, HeaderConstants.DATE),
30
- getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),
31
- getHeaderValueToSign(request, HeaderConstants.IF_MATCH),
32
- getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),
33
- getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),
34
- getHeaderValueToSign(request, HeaderConstants.RANGE),
35
- ].join("\n") +
36
- "\n" +
37
- getCanonicalizedHeadersString(request) +
38
- getCanonicalizedResourceString(request);
39
- const signature = createHmac("sha256", options.accountKey)
40
- .update(stringToSign, "utf8")
41
- .digest("base64");
42
- request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${options.accountName}:${signature}`);
43
- // console.log(`[URL]:${request.url}`);
44
- // console.log(`[HEADERS]:${request.headers.toString()}`);
45
- // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
46
- // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
47
- }
48
- /**
49
- * Retrieve header value according to shared key sign rules.
50
- * @see https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key
51
- */
52
- function getHeaderValueToSign(request, headerName) {
53
- const value = request.headers.get(headerName);
54
- if (!value) {
55
- return "";
56
- }
57
- // When using version 2015-02-21 or later, if Content-Length is zero, then
58
- // set the Content-Length part of the StringToSign to an empty string.
59
- // https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key
60
- if (headerName === HeaderConstants.CONTENT_LENGTH && value === "0") {
61
- return "";
62
- }
63
- return value;
64
- }
65
- /**
66
- * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
67
- * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
68
- * 2. Convert each HTTP header name to lowercase.
69
- * 3. Sort the headers lexicographically by header name, in ascending order.
70
- * Each header may appear only once in the string.
71
- * 4. Replace any linear whitespace in the header value with a single space.
72
- * 5. Trim any whitespace around the colon in the header.
73
- * 6. Finally, append a new-line character to each canonicalized header in the resulting list.
74
- * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
75
- *
76
- */
77
- function getCanonicalizedHeadersString(request) {
78
- let headersArray = [];
79
- for (const [name, value] of request.headers) {
80
- if (name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE)) {
81
- headersArray.push({ name, value });
82
- }
83
- }
84
- headersArray.sort((a, b) => {
85
- return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());
86
- });
87
- // Remove duplicate headers
88
- headersArray = headersArray.filter((value, index, array) => {
89
- if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
90
- return false;
91
- }
92
- return true;
93
- });
94
- let canonicalizedHeadersStringToSign = "";
95
- headersArray.forEach((header) => {
96
- canonicalizedHeadersStringToSign += `${header.name
97
- .toLowerCase()
98
- .trimRight()}:${header.value.trimLeft()}\n`;
99
- });
100
- return canonicalizedHeadersStringToSign;
101
- }
102
- function getCanonicalizedResourceString(request) {
103
- const path = getURLPath(request.url) || "/";
104
- let canonicalizedResourceString = "";
105
- canonicalizedResourceString += `/${options.accountName}${path}`;
106
- const queries = getURLQueries(request.url);
107
- const lowercaseQueries = {};
108
- if (queries) {
109
- const queryKeys = [];
110
- for (const key in queries) {
111
- if (Object.prototype.hasOwnProperty.call(queries, key)) {
112
- const lowercaseKey = key.toLowerCase();
113
- lowercaseQueries[lowercaseKey] = queries[key];
114
- queryKeys.push(lowercaseKey);
115
- }
116
- }
117
- queryKeys.sort();
118
- for (const key of queryKeys) {
119
- canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
120
- }
121
- }
122
- return canonicalizedResourceString;
123
- }
124
- return {
125
- name: storageSharedKeyCredentialPolicyName,
126
- async sendRequest(request, next) {
127
- signRequest(request);
128
- return next(request);
129
- },
130
- };
131
- }
132
- //# sourceMappingURL=StorageSharedKeyCredentialPolicyV2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSharedKeyCredentialPolicyV2.js","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicyV2.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\nimport type {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"../utils/constants.js\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common.js\";\nimport { compareHeader } from \"../utils/SharedKeyComparator.js\";\n\n/**\n * The programmatic identifier of the storageSharedKeyCredentialPolicy.\n */\nexport const storageSharedKeyCredentialPolicyName = \"storageSharedKeyCredentialPolicy\";\n\n/**\n * Options used to configure StorageSharedKeyCredentialPolicy.\n */\nexport interface StorageSharedKeyCredentialPolicyOptions {\n accountName: string;\n accountKey: Buffer;\n}\n\n/**\n * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.\n */\nexport function storageSharedKeyCredentialPolicy(\n options: StorageSharedKeyCredentialPolicyOptions,\n): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || Buffer.isBuffer(request.body)) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n getHeaderValueToSign(request, HeaderConstants.DATE),\n getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n getCanonicalizedHeadersString(request) +\n getCanonicalizedResourceString(request);\n\n const signature: string = createHmac(\"sha256\", options.accountKey)\n .update(stringToSign, \"utf8\")\n .digest(\"base64\");\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${options.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key\n */\n function getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n */\n function getCanonicalizedHeadersString(request: PipelineRequest): string {\n let headersArray: Array<{ name: string; value: string }> = [];\n for (const [name, value] of request.headers) {\n if (name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE)) {\n headersArray.push({ name, value });\n }\n }\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n function getCanonicalizedResourceString(request: PipelineRequest): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${options.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n\n return {\n name: storageSharedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n },\n };\n}\n"]}