@azure/storage-common 12.0.0-beta.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/dist/browser/BuffersStream.js +14 -0
  2. package/dist/browser/BuffersStream.js.map +1 -1
  3. package/dist/browser/PooledBuffer.js +13 -5
  4. package/dist/browser/PooledBuffer.js.map +1 -1
  5. package/dist/browser/StorageBrowserPolicyFactory.d.ts +16 -0
  6. package/dist/browser/StorageBrowserPolicyFactory.d.ts.map +1 -0
  7. package/dist/browser/StorageBrowserPolicyFactory.js +19 -0
  8. package/dist/browser/StorageBrowserPolicyFactory.js.map +1 -0
  9. package/dist/browser/StorageRetryPolicyFactory.d.ts +66 -0
  10. package/dist/browser/StorageRetryPolicyFactory.d.ts.map +1 -0
  11. package/dist/browser/StorageRetryPolicyFactory.js +28 -0
  12. package/dist/browser/StorageRetryPolicyFactory.js.map +1 -0
  13. package/dist/browser/credentials/AnonymousCredential.d.ts +19 -0
  14. package/dist/browser/credentials/AnonymousCredential.d.ts.map +1 -0
  15. package/dist/browser/credentials/AnonymousCredential.js +22 -0
  16. package/dist/browser/credentials/AnonymousCredential.js.map +1 -0
  17. package/dist/browser/credentials/Credential.d.ts +20 -0
  18. package/dist/browser/credentials/Credential.d.ts.map +1 -0
  19. package/dist/browser/credentials/Credential.js +18 -0
  20. package/dist/browser/credentials/Credential.js.map +1 -0
  21. package/dist/browser/credentials/StorageSharedKeyCredential-browser.d.mts.map +1 -0
  22. package/dist/browser/credentials/StorageSharedKeyCredential-browser.mjs.map +1 -0
  23. package/dist/browser/credentials/StorageSharedKeyCredential.d.ts +3 -0
  24. package/dist/browser/credentials/StorageSharedKeyCredential.js +5 -0
  25. package/dist/browser/index-browser.d.mts.map +1 -0
  26. package/dist/browser/index-browser.mjs.map +1 -0
  27. package/dist/browser/index.d.ts +17 -1
  28. package/dist/browser/index.js +17 -1
  29. package/dist/browser/log.d.ts +5 -0
  30. package/dist/browser/log.d.ts.map +1 -0
  31. package/dist/browser/log.js +8 -0
  32. package/dist/browser/log.js.map +1 -0
  33. package/dist/browser/policies/AnonymousCredentialPolicy.d.ts +15 -0
  34. package/dist/browser/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
  35. package/dist/browser/policies/AnonymousCredentialPolicy.js +20 -0
  36. package/dist/browser/policies/AnonymousCredentialPolicy.js.map +1 -0
  37. package/dist/browser/policies/CredentialPolicy.d.ts +22 -0
  38. package/dist/browser/policies/CredentialPolicy.d.ts.map +1 -0
  39. package/dist/browser/policies/CredentialPolicy.js +29 -0
  40. package/dist/browser/policies/CredentialPolicy.js.map +1 -0
  41. package/dist/browser/policies/RequestPolicy.d.ts +45 -0
  42. package/dist/browser/policies/RequestPolicy.d.ts.map +1 -0
  43. package/dist/browser/policies/RequestPolicy.js +42 -0
  44. package/dist/browser/policies/RequestPolicy.js.map +1 -0
  45. package/dist/browser/policies/StorageBrowserPolicy.d.ts +28 -0
  46. package/dist/browser/policies/StorageBrowserPolicy.d.ts.map +1 -0
  47. package/dist/browser/policies/StorageBrowserPolicy.js +47 -0
  48. package/dist/browser/policies/StorageBrowserPolicy.js.map +1 -0
  49. package/dist/browser/policies/StorageBrowserPolicyV2.d.ts +11 -0
  50. package/dist/browser/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
  51. package/dist/browser/policies/StorageBrowserPolicyV2.js +31 -0
  52. package/dist/browser/policies/StorageBrowserPolicyV2.js.map +1 -0
  53. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.d.mts.map +1 -0
  54. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.mjs.map +1 -0
  55. package/dist/browser/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
  56. package/dist/browser/policies/StorageCorrectContentLengthPolicy.js +18 -0
  57. package/dist/browser/policies/StorageRetryPolicy.d.ts +62 -0
  58. package/dist/browser/policies/StorageRetryPolicy.d.ts.map +1 -0
  59. package/dist/browser/policies/StorageRetryPolicy.js +220 -0
  60. package/dist/browser/policies/StorageRetryPolicy.js.map +1 -0
  61. package/dist/browser/policies/StorageRetryPolicyType.d.ts +14 -0
  62. package/dist/browser/policies/StorageRetryPolicyType.d.ts.map +1 -0
  63. package/dist/browser/policies/StorageRetryPolicyType.js +17 -0
  64. package/dist/browser/policies/StorageRetryPolicyType.js.map +1 -0
  65. package/dist/browser/policies/StorageRetryPolicyV2.d.ts +11 -0
  66. package/dist/browser/policies/StorageRetryPolicyV2.d.ts.map +1 -0
  67. package/dist/browser/policies/StorageRetryPolicyV2.js +165 -0
  68. package/dist/browser/policies/StorageRetryPolicyV2.js.map +1 -0
  69. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
  70. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
  71. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js +145 -0
  72. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
  73. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.d.mts.map +1 -0
  74. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.mjs.map +1 -0
  75. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
  76. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.js +18 -0
  77. package/dist/browser/utils/SharedKeyComparator.d.ts +2 -0
  78. package/dist/browser/utils/SharedKeyComparator.d.ts.map +1 -0
  79. package/dist/browser/utils/SharedKeyComparator.js +73 -0
  80. package/dist/browser/utils/SharedKeyComparator.js.map +1 -0
  81. package/dist/browser/utils/constants.d.ts +39 -0
  82. package/dist/browser/utils/constants.d.ts.map +1 -0
  83. package/dist/browser/utils/constants.js +64 -0
  84. package/dist/browser/utils/constants.js.map +1 -0
  85. package/dist/browser/utils/tracing.d.ts +6 -0
  86. package/dist/browser/utils/tracing.d.ts.map +1 -0
  87. package/dist/browser/utils/tracing.js +14 -0
  88. package/dist/browser/utils/tracing.js.map +1 -0
  89. package/dist/browser/utils/utils.common.d.ts +305 -0
  90. package/dist/browser/utils/utils.common.d.ts.map +1 -0
  91. package/dist/browser/utils/utils.common.js +544 -0
  92. package/dist/browser/utils/utils.common.js.map +1 -0
  93. package/dist/commonjs/BufferScheduler.js +70 -44
  94. package/dist/commonjs/BufferScheduler.js.map +1 -1
  95. package/dist/commonjs/BuffersStream.js +14 -0
  96. package/dist/commonjs/BuffersStream.js.map +1 -1
  97. package/dist/commonjs/PooledBuffer.js +13 -5
  98. package/dist/commonjs/PooledBuffer.js.map +1 -1
  99. package/dist/commonjs/StorageBrowserPolicyFactory.d.ts +16 -0
  100. package/dist/commonjs/StorageBrowserPolicyFactory.d.ts.map +1 -0
  101. package/dist/commonjs/StorageBrowserPolicyFactory.js +23 -0
  102. package/dist/commonjs/StorageBrowserPolicyFactory.js.map +1 -0
  103. package/dist/commonjs/StorageRetryPolicyFactory.d.ts +66 -0
  104. package/dist/commonjs/StorageRetryPolicyFactory.d.ts.map +1 -0
  105. package/dist/commonjs/StorageRetryPolicyFactory.js +33 -0
  106. package/dist/commonjs/StorageRetryPolicyFactory.js.map +1 -0
  107. package/dist/commonjs/credentials/AnonymousCredential.d.ts +19 -0
  108. package/dist/commonjs/credentials/AnonymousCredential.d.ts.map +1 -0
  109. package/dist/commonjs/credentials/AnonymousCredential.js +26 -0
  110. package/dist/commonjs/credentials/AnonymousCredential.js.map +1 -0
  111. package/dist/commonjs/credentials/Credential.d.ts +20 -0
  112. package/dist/commonjs/credentials/Credential.d.ts.map +1 -0
  113. package/dist/commonjs/credentials/Credential.js +22 -0
  114. package/dist/commonjs/credentials/Credential.js.map +1 -0
  115. package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts +38 -0
  116. package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
  117. package/dist/commonjs/credentials/StorageSharedKeyCredential.js +52 -0
  118. package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +1 -0
  119. package/dist/commonjs/index.d.ts +17 -0
  120. package/dist/commonjs/index.d.ts.map +1 -1
  121. package/dist/commonjs/index.js +19 -1
  122. package/dist/commonjs/index.js.map +1 -1
  123. package/dist/commonjs/log.d.ts +5 -0
  124. package/dist/commonjs/log.d.ts.map +1 -0
  125. package/dist/commonjs/log.js +11 -0
  126. package/dist/commonjs/log.js.map +1 -0
  127. package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts +15 -0
  128. package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
  129. package/dist/commonjs/policies/AnonymousCredentialPolicy.js +24 -0
  130. package/dist/commonjs/policies/AnonymousCredentialPolicy.js.map +1 -0
  131. package/dist/commonjs/policies/CredentialPolicy.d.ts +22 -0
  132. package/dist/commonjs/policies/CredentialPolicy.d.ts.map +1 -0
  133. package/dist/commonjs/policies/CredentialPolicy.js +33 -0
  134. package/dist/commonjs/policies/CredentialPolicy.js.map +1 -0
  135. package/dist/commonjs/policies/RequestPolicy.d.ts +45 -0
  136. package/dist/commonjs/policies/RequestPolicy.d.ts.map +1 -0
  137. package/dist/commonjs/policies/RequestPolicy.js +46 -0
  138. package/dist/commonjs/policies/RequestPolicy.js.map +1 -0
  139. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts +28 -0
  140. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts.map +1 -0
  141. package/dist/commonjs/policies/StorageBrowserPolicy.js +51 -0
  142. package/dist/commonjs/policies/StorageBrowserPolicy.js.map +1 -0
  143. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts +11 -0
  144. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
  145. package/dist/commonjs/policies/StorageBrowserPolicyV2.js +35 -0
  146. package/dist/commonjs/policies/StorageBrowserPolicyV2.js.map +1 -0
  147. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
  148. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
  149. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js +31 -0
  150. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
  151. package/dist/commonjs/policies/StorageRetryPolicy.d.ts +62 -0
  152. package/dist/commonjs/policies/StorageRetryPolicy.d.ts.map +1 -0
  153. package/dist/commonjs/policies/StorageRetryPolicy.js +225 -0
  154. package/dist/commonjs/policies/StorageRetryPolicy.js.map +1 -0
  155. package/dist/commonjs/policies/StorageRetryPolicyType.d.ts +14 -0
  156. package/dist/commonjs/policies/StorageRetryPolicyType.d.ts.map +1 -0
  157. package/dist/commonjs/policies/StorageRetryPolicyType.js +20 -0
  158. package/dist/commonjs/policies/StorageRetryPolicyType.js.map +1 -0
  159. package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts +11 -0
  160. package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts.map +1 -0
  161. package/dist/commonjs/policies/StorageRetryPolicyV2.js +169 -0
  162. package/dist/commonjs/policies/StorageRetryPolicyV2.js.map +1 -0
  163. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
  164. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
  165. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js +149 -0
  166. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
  167. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
  168. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
  169. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js +136 -0
  170. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
  171. package/dist/commonjs/tsdoc-metadata.json +11 -11
  172. package/dist/commonjs/utils/SharedKeyComparator.d.ts +2 -0
  173. package/dist/commonjs/utils/SharedKeyComparator.d.ts.map +1 -0
  174. package/dist/commonjs/utils/SharedKeyComparator.js +76 -0
  175. package/dist/commonjs/utils/SharedKeyComparator.js.map +1 -0
  176. package/dist/commonjs/utils/constants.d.ts +39 -0
  177. package/dist/commonjs/utils/constants.d.ts.map +1 -0
  178. package/dist/commonjs/utils/constants.js +67 -0
  179. package/dist/commonjs/utils/constants.js.map +1 -0
  180. package/dist/commonjs/utils/tracing.d.ts +6 -0
  181. package/dist/commonjs/utils/tracing.d.ts.map +1 -0
  182. package/dist/commonjs/utils/tracing.js +17 -0
  183. package/dist/commonjs/utils/tracing.js.map +1 -0
  184. package/dist/commonjs/utils/utils.common.d.ts +305 -0
  185. package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
  186. package/dist/commonjs/utils/utils.common.js +573 -0
  187. package/dist/commonjs/utils/utils.common.js.map +1 -0
  188. package/dist/esm/BufferScheduler.js +70 -44
  189. package/dist/esm/BufferScheduler.js.map +1 -1
  190. package/dist/esm/BuffersStream.js +14 -0
  191. package/dist/esm/BuffersStream.js.map +1 -1
  192. package/dist/esm/PooledBuffer.js +13 -5
  193. package/dist/esm/PooledBuffer.js.map +1 -1
  194. package/dist/esm/StorageBrowserPolicyFactory.d.ts +16 -0
  195. package/dist/esm/StorageBrowserPolicyFactory.d.ts.map +1 -0
  196. package/dist/esm/StorageBrowserPolicyFactory.js +19 -0
  197. package/dist/esm/StorageBrowserPolicyFactory.js.map +1 -0
  198. package/dist/esm/StorageRetryPolicyFactory.d.ts +66 -0
  199. package/dist/esm/StorageRetryPolicyFactory.d.ts.map +1 -0
  200. package/dist/esm/StorageRetryPolicyFactory.js +28 -0
  201. package/dist/esm/StorageRetryPolicyFactory.js.map +1 -0
  202. package/dist/esm/credentials/AnonymousCredential.d.ts +19 -0
  203. package/dist/esm/credentials/AnonymousCredential.d.ts.map +1 -0
  204. package/dist/esm/credentials/AnonymousCredential.js +22 -0
  205. package/dist/esm/credentials/AnonymousCredential.js.map +1 -0
  206. package/dist/esm/credentials/Credential.d.ts +20 -0
  207. package/dist/esm/credentials/Credential.d.ts.map +1 -0
  208. package/dist/esm/credentials/Credential.js +18 -0
  209. package/dist/esm/credentials/Credential.js.map +1 -0
  210. package/dist/esm/credentials/StorageSharedKeyCredential.d.ts +38 -0
  211. package/dist/esm/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
  212. package/dist/esm/credentials/StorageSharedKeyCredential.js +48 -0
  213. package/dist/esm/credentials/StorageSharedKeyCredential.js.map +1 -0
  214. package/dist/esm/index.d.ts +17 -0
  215. package/dist/esm/index.d.ts.map +1 -1
  216. package/dist/esm/index.js +17 -0
  217. package/dist/esm/index.js.map +1 -1
  218. package/dist/esm/log.d.ts +5 -0
  219. package/dist/esm/log.d.ts.map +1 -0
  220. package/dist/esm/log.js +8 -0
  221. package/dist/esm/log.js.map +1 -0
  222. package/dist/esm/policies/AnonymousCredentialPolicy.d.ts +15 -0
  223. package/dist/esm/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
  224. package/dist/esm/policies/AnonymousCredentialPolicy.js +20 -0
  225. package/dist/esm/policies/AnonymousCredentialPolicy.js.map +1 -0
  226. package/dist/esm/policies/CredentialPolicy.d.ts +22 -0
  227. package/dist/esm/policies/CredentialPolicy.d.ts.map +1 -0
  228. package/dist/esm/policies/CredentialPolicy.js +29 -0
  229. package/dist/esm/policies/CredentialPolicy.js.map +1 -0
  230. package/dist/esm/policies/RequestPolicy.d.ts +45 -0
  231. package/dist/esm/policies/RequestPolicy.d.ts.map +1 -0
  232. package/dist/esm/policies/RequestPolicy.js +42 -0
  233. package/dist/esm/policies/RequestPolicy.js.map +1 -0
  234. package/dist/esm/policies/StorageBrowserPolicy.d.ts +28 -0
  235. package/dist/esm/policies/StorageBrowserPolicy.d.ts.map +1 -0
  236. package/dist/esm/policies/StorageBrowserPolicy.js +47 -0
  237. package/dist/esm/policies/StorageBrowserPolicy.js.map +1 -0
  238. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts +11 -0
  239. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
  240. package/dist/esm/policies/StorageBrowserPolicyV2.js +31 -0
  241. package/dist/esm/policies/StorageBrowserPolicyV2.js.map +1 -0
  242. package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
  243. package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
  244. package/dist/esm/policies/StorageCorrectContentLengthPolicy.js +27 -0
  245. package/dist/esm/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
  246. package/dist/esm/policies/StorageRetryPolicy.d.ts +62 -0
  247. package/dist/esm/policies/StorageRetryPolicy.d.ts.map +1 -0
  248. package/dist/esm/policies/StorageRetryPolicy.js +220 -0
  249. package/dist/esm/policies/StorageRetryPolicy.js.map +1 -0
  250. package/dist/esm/policies/StorageRetryPolicyType.d.ts +14 -0
  251. package/dist/esm/policies/StorageRetryPolicyType.d.ts.map +1 -0
  252. package/dist/esm/policies/StorageRetryPolicyType.js +17 -0
  253. package/dist/esm/policies/StorageRetryPolicyType.js.map +1 -0
  254. package/dist/esm/policies/StorageRetryPolicyV2.d.ts +11 -0
  255. package/dist/esm/policies/StorageRetryPolicyV2.d.ts.map +1 -0
  256. package/dist/esm/policies/StorageRetryPolicyV2.js +165 -0
  257. package/dist/esm/policies/StorageRetryPolicyV2.js.map +1 -0
  258. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
  259. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
  260. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js +145 -0
  261. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
  262. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
  263. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
  264. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js +132 -0
  265. package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
  266. package/dist/esm/utils/SharedKeyComparator.d.ts +2 -0
  267. package/dist/esm/utils/SharedKeyComparator.d.ts.map +1 -0
  268. package/dist/esm/utils/SharedKeyComparator.js +73 -0
  269. package/dist/esm/utils/SharedKeyComparator.js.map +1 -0
  270. package/dist/esm/utils/constants.d.ts +39 -0
  271. package/dist/esm/utils/constants.d.ts.map +1 -0
  272. package/dist/esm/utils/constants.js +64 -0
  273. package/dist/esm/utils/constants.js.map +1 -0
  274. package/dist/esm/utils/tracing.d.ts +6 -0
  275. package/dist/esm/utils/tracing.d.ts.map +1 -0
  276. package/dist/esm/utils/tracing.js +14 -0
  277. package/dist/esm/utils/tracing.js.map +1 -0
  278. package/dist/esm/utils/utils.common.d.ts +305 -0
  279. package/dist/esm/utils/utils.common.d.ts.map +1 -0
  280. package/dist/esm/utils/utils.common.js +544 -0
  281. package/dist/esm/utils/utils.common.js.map +1 -0
  282. package/dist/react-native/BufferScheduler.js +70 -44
  283. package/dist/react-native/BufferScheduler.js.map +1 -1
  284. package/dist/react-native/BuffersStream.js +14 -0
  285. package/dist/react-native/BuffersStream.js.map +1 -1
  286. package/dist/react-native/PooledBuffer.js +13 -5
  287. package/dist/react-native/PooledBuffer.js.map +1 -1
  288. package/dist/react-native/StorageBrowserPolicyFactory.d.ts +16 -0
  289. package/dist/react-native/StorageBrowserPolicyFactory.d.ts.map +1 -0
  290. package/dist/react-native/StorageBrowserPolicyFactory.js +19 -0
  291. package/dist/react-native/StorageBrowserPolicyFactory.js.map +1 -0
  292. package/dist/react-native/StorageRetryPolicyFactory.d.ts +66 -0
  293. package/dist/react-native/StorageRetryPolicyFactory.d.ts.map +1 -0
  294. package/dist/react-native/StorageRetryPolicyFactory.js +28 -0
  295. package/dist/react-native/StorageRetryPolicyFactory.js.map +1 -0
  296. package/dist/react-native/credentials/AnonymousCredential.d.ts +19 -0
  297. package/dist/react-native/credentials/AnonymousCredential.d.ts.map +1 -0
  298. package/dist/react-native/credentials/AnonymousCredential.js +22 -0
  299. package/dist/react-native/credentials/AnonymousCredential.js.map +1 -0
  300. package/dist/react-native/credentials/Credential.d.ts +20 -0
  301. package/dist/react-native/credentials/Credential.d.ts.map +1 -0
  302. package/dist/react-native/credentials/Credential.js +18 -0
  303. package/dist/react-native/credentials/Credential.js.map +1 -0
  304. package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts +38 -0
  305. package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
  306. package/dist/react-native/credentials/StorageSharedKeyCredential.js +48 -0
  307. package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +1 -0
  308. package/dist/react-native/index.d.ts +17 -0
  309. package/dist/react-native/index.d.ts.map +1 -1
  310. package/dist/react-native/index.js +17 -0
  311. package/dist/react-native/index.js.map +1 -1
  312. package/dist/react-native/log.d.ts +5 -0
  313. package/dist/react-native/log.d.ts.map +1 -0
  314. package/dist/react-native/log.js +8 -0
  315. package/dist/react-native/log.js.map +1 -0
  316. package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts +15 -0
  317. package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
  318. package/dist/react-native/policies/AnonymousCredentialPolicy.js +20 -0
  319. package/dist/react-native/policies/AnonymousCredentialPolicy.js.map +1 -0
  320. package/dist/react-native/policies/CredentialPolicy.d.ts +22 -0
  321. package/dist/react-native/policies/CredentialPolicy.d.ts.map +1 -0
  322. package/dist/react-native/policies/CredentialPolicy.js +29 -0
  323. package/dist/react-native/policies/CredentialPolicy.js.map +1 -0
  324. package/dist/react-native/policies/RequestPolicy.d.ts +45 -0
  325. package/dist/react-native/policies/RequestPolicy.d.ts.map +1 -0
  326. package/dist/react-native/policies/RequestPolicy.js +42 -0
  327. package/dist/react-native/policies/RequestPolicy.js.map +1 -0
  328. package/dist/react-native/policies/StorageBrowserPolicy.d.ts +28 -0
  329. package/dist/react-native/policies/StorageBrowserPolicy.d.ts.map +1 -0
  330. package/dist/react-native/policies/StorageBrowserPolicy.js +47 -0
  331. package/dist/react-native/policies/StorageBrowserPolicy.js.map +1 -0
  332. package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts +11 -0
  333. package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
  334. package/dist/react-native/policies/StorageBrowserPolicyV2.js +31 -0
  335. package/dist/react-native/policies/StorageBrowserPolicyV2.js.map +1 -0
  336. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
  337. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
  338. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js +27 -0
  339. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
  340. package/dist/react-native/policies/StorageRetryPolicy.d.ts +62 -0
  341. package/dist/react-native/policies/StorageRetryPolicy.d.ts.map +1 -0
  342. package/dist/react-native/policies/StorageRetryPolicy.js +220 -0
  343. package/dist/react-native/policies/StorageRetryPolicy.js.map +1 -0
  344. package/dist/react-native/policies/StorageRetryPolicyType.d.ts +14 -0
  345. package/dist/react-native/policies/StorageRetryPolicyType.d.ts.map +1 -0
  346. package/dist/react-native/policies/StorageRetryPolicyType.js +17 -0
  347. package/dist/react-native/policies/StorageRetryPolicyType.js.map +1 -0
  348. package/dist/react-native/policies/StorageRetryPolicyV2.d.ts +11 -0
  349. package/dist/react-native/policies/StorageRetryPolicyV2.d.ts.map +1 -0
  350. package/dist/react-native/policies/StorageRetryPolicyV2.js +165 -0
  351. package/dist/react-native/policies/StorageRetryPolicyV2.js.map +1 -0
  352. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
  353. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
  354. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js +145 -0
  355. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
  356. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
  357. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
  358. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js +132 -0
  359. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
  360. package/dist/react-native/utils/SharedKeyComparator.d.ts +2 -0
  361. package/dist/react-native/utils/SharedKeyComparator.d.ts.map +1 -0
  362. package/dist/react-native/utils/SharedKeyComparator.js +73 -0
  363. package/dist/react-native/utils/SharedKeyComparator.js.map +1 -0
  364. package/dist/react-native/utils/constants.d.ts +39 -0
  365. package/dist/react-native/utils/constants.d.ts.map +1 -0
  366. package/dist/react-native/utils/constants.js +64 -0
  367. package/dist/react-native/utils/constants.js.map +1 -0
  368. package/dist/react-native/utils/tracing.d.ts +6 -0
  369. package/dist/react-native/utils/tracing.d.ts.map +1 -0
  370. package/dist/react-native/utils/tracing.js +14 -0
  371. package/dist/react-native/utils/tracing.js.map +1 -0
  372. package/dist/react-native/utils/utils.common.d.ts +305 -0
  373. package/dist/react-native/utils/utils.common.d.ts.map +1 -0
  374. package/dist/react-native/utils/utils.common.js +544 -0
  375. package/dist/react-native/utils/utils.common.js.map +1 -0
  376. package/package.json +12 -6
  377. package/dist/browser/index.d.ts.map +0 -1
  378. package/dist/browser/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageSharedKeyCredentialPolicy.d.ts","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,IAAI,oBAAoB,EAChD,eAAe,IAAI,WAAW,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAG/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,gBAAgB;IACpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD;;;;;OAKG;gBAED,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,0BAA0B;IAMrC;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IA2CxD;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,6BAA6B;IA2BrC;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;CA0BvC"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.StorageSharedKeyCredentialPolicy = void 0;
6
+ const constants_js_1 = require("../utils/constants.js");
7
+ const utils_common_js_1 = require("../utils/utils.common.js");
8
+ const CredentialPolicy_js_1 = require("./CredentialPolicy.js");
9
+ const SharedKeyComparator_js_1 = require("../utils/SharedKeyComparator.js");
10
+ /**
11
+ * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.
12
+ */
13
+ class StorageSharedKeyCredentialPolicy extends CredentialPolicy_js_1.CredentialPolicy {
14
+ /**
15
+ * Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy
16
+ */
17
+ factory;
18
+ /**
19
+ * Creates an instance of StorageSharedKeyCredentialPolicy.
20
+ * @param nextPolicy -
21
+ * @param options -
22
+ * @param factory -
23
+ */
24
+ constructor(nextPolicy, options, factory) {
25
+ super(nextPolicy, options);
26
+ this.factory = factory;
27
+ }
28
+ /**
29
+ * Signs request.
30
+ *
31
+ * @param request -
32
+ */
33
+ signRequest(request) {
34
+ request.headers.set(constants_js_1.HeaderConstants.X_MS_DATE, new Date().toUTCString());
35
+ if (request.body &&
36
+ (typeof request.body === "string" || request.body !== undefined) &&
37
+ request.body.length > 0) {
38
+ request.headers.set(constants_js_1.HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
39
+ }
40
+ const stringToSign = [
41
+ request.method.toUpperCase(),
42
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_LANGUAGE),
43
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_ENCODING),
44
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_LENGTH),
45
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_MD5),
46
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_TYPE),
47
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.DATE),
48
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_MODIFIED_SINCE),
49
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_MATCH),
50
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_NONE_MATCH),
51
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_UNMODIFIED_SINCE),
52
+ this.getHeaderValueToSign(request, constants_js_1.HeaderConstants.RANGE),
53
+ ].join("\n") +
54
+ "\n" +
55
+ this.getCanonicalizedHeadersString(request) +
56
+ this.getCanonicalizedResourceString(request);
57
+ const signature = this.factory.computeHMACSHA256(stringToSign);
58
+ request.headers.set(constants_js_1.HeaderConstants.AUTHORIZATION, `SharedKey ${this.factory.accountName}:${signature}`);
59
+ // console.log(`[URL]:${request.url}`);
60
+ // console.log(`[HEADERS]:${request.headers.toString()}`);
61
+ // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
62
+ // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
63
+ return request;
64
+ }
65
+ /**
66
+ * Retrieve header value according to shared key sign rules.
67
+ * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
68
+ *
69
+ * @param request -
70
+ * @param headerName -
71
+ */
72
+ getHeaderValueToSign(request, headerName) {
73
+ const value = request.headers.get(headerName);
74
+ if (!value) {
75
+ return "";
76
+ }
77
+ // When using version 2015-02-21 or later, if Content-Length is zero, then
78
+ // set the Content-Length part of the StringToSign to an empty string.
79
+ // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
80
+ if (headerName === constants_js_1.HeaderConstants.CONTENT_LENGTH && value === "0") {
81
+ return "";
82
+ }
83
+ return value;
84
+ }
85
+ /**
86
+ * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
87
+ * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
88
+ * 2. Convert each HTTP header name to lowercase.
89
+ * 3. Sort the headers lexicographically by header name, in ascending order.
90
+ * Each header may appear only once in the string.
91
+ * 4. Replace any linear whitespace in the header value with a single space.
92
+ * 5. Trim any whitespace around the colon in the header.
93
+ * 6. Finally, append a new-line character to each canonicalized header in the resulting list.
94
+ * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
95
+ *
96
+ * @param request -
97
+ */
98
+ getCanonicalizedHeadersString(request) {
99
+ let headersArray = request.headers.headersArray().filter((value) => {
100
+ return value.name.toLowerCase().startsWith(constants_js_1.HeaderConstants.PREFIX_FOR_STORAGE);
101
+ });
102
+ headersArray.sort((a, b) => {
103
+ return (0, SharedKeyComparator_js_1.compareHeader)(a.name.toLowerCase(), b.name.toLowerCase());
104
+ });
105
+ // Remove duplicate headers
106
+ headersArray = headersArray.filter((value, index, array) => {
107
+ if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
108
+ return false;
109
+ }
110
+ return true;
111
+ });
112
+ let canonicalizedHeadersStringToSign = "";
113
+ headersArray.forEach((header) => {
114
+ canonicalizedHeadersStringToSign += `${header.name
115
+ .toLowerCase()
116
+ .trimRight()}:${header.value.trimLeft()}\n`;
117
+ });
118
+ return canonicalizedHeadersStringToSign;
119
+ }
120
+ /**
121
+ * Retrieves the webResource canonicalized resource string.
122
+ *
123
+ * @param request -
124
+ */
125
+ getCanonicalizedResourceString(request) {
126
+ const path = (0, utils_common_js_1.getURLPath)(request.url) || "/";
127
+ let canonicalizedResourceString = "";
128
+ canonicalizedResourceString += `/${this.factory.accountName}${path}`;
129
+ const queries = (0, utils_common_js_1.getURLQueries)(request.url);
130
+ const lowercaseQueries = {};
131
+ if (queries) {
132
+ const queryKeys = [];
133
+ for (const key in queries) {
134
+ if (Object.prototype.hasOwnProperty.call(queries, key)) {
135
+ const lowercaseKey = key.toLowerCase();
136
+ lowercaseQueries[lowercaseKey] = queries[key];
137
+ queryKeys.push(lowercaseKey);
138
+ }
139
+ }
140
+ queryKeys.sort();
141
+ for (const key of queryKeys) {
142
+ canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
143
+ }
144
+ }
145
+ return canonicalizedResourceString;
146
+ }
147
+ }
148
+ exports.StorageSharedKeyCredentialPolicy = StorageSharedKeyCredentialPolicy;
149
+ //# sourceMappingURL=StorageSharedKeyCredentialPolicy.js.map
@@ -0,0 +1 @@
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/en-us/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/en-us/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"]}
@@ -0,0 +1,17 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.storageSharedKeyCredentialPolicyName = void 0;
6
+ exports.storageSharedKeyCredentialPolicy = storageSharedKeyCredentialPolicy;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const constants_js_1 = require("../utils/constants.js");
9
+ const utils_common_js_1 = require("../utils/utils.common.js");
10
+ const SharedKeyComparator_js_1 = require("../utils/SharedKeyComparator.js");
11
+ /**
12
+ * The programmatic identifier of the storageSharedKeyCredentialPolicy.
13
+ */
14
+ exports.storageSharedKeyCredentialPolicyName = "storageSharedKeyCredentialPolicy";
15
+ /**
16
+ * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.
17
+ */
18
+ function storageSharedKeyCredentialPolicy(options) {
19
+ function signRequest(request) {
20
+ request.headers.set(constants_js_1.HeaderConstants.X_MS_DATE, new Date().toUTCString());
21
+ if (request.body &&
22
+ (typeof request.body === "string" || Buffer.isBuffer(request.body)) &&
23
+ request.body.length > 0) {
24
+ request.headers.set(constants_js_1.HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
25
+ }
26
+ const stringToSign = [
27
+ request.method.toUpperCase(),
28
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_LANGUAGE),
29
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_ENCODING),
30
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_LENGTH),
31
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_MD5),
32
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.CONTENT_TYPE),
33
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.DATE),
34
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_MODIFIED_SINCE),
35
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_MATCH),
36
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_NONE_MATCH),
37
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.IF_UNMODIFIED_SINCE),
38
+ getHeaderValueToSign(request, constants_js_1.HeaderConstants.RANGE),
39
+ ].join("\n") +
40
+ "\n" +
41
+ getCanonicalizedHeadersString(request) +
42
+ getCanonicalizedResourceString(request);
43
+ const signature = (0, node_crypto_1.createHmac)("sha256", options.accountKey)
44
+ .update(stringToSign, "utf8")
45
+ .digest("base64");
46
+ request.headers.set(constants_js_1.HeaderConstants.AUTHORIZATION, `SharedKey ${options.accountName}:${signature}`);
47
+ // console.log(`[URL]:${request.url}`);
48
+ // console.log(`[HEADERS]:${request.headers.toString()}`);
49
+ // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
50
+ // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
51
+ }
52
+ /**
53
+ * Retrieve header value according to shared key sign rules.
54
+ * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
55
+ */
56
+ function getHeaderValueToSign(request, headerName) {
57
+ const value = request.headers.get(headerName);
58
+ if (!value) {
59
+ return "";
60
+ }
61
+ // When using version 2015-02-21 or later, if Content-Length is zero, then
62
+ // set the Content-Length part of the StringToSign to an empty string.
63
+ // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
64
+ if (headerName === constants_js_1.HeaderConstants.CONTENT_LENGTH && value === "0") {
65
+ return "";
66
+ }
67
+ return value;
68
+ }
69
+ /**
70
+ * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
71
+ * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
72
+ * 2. Convert each HTTP header name to lowercase.
73
+ * 3. Sort the headers lexicographically by header name, in ascending order.
74
+ * Each header may appear only once in the string.
75
+ * 4. Replace any linear whitespace in the header value with a single space.
76
+ * 5. Trim any whitespace around the colon in the header.
77
+ * 6. Finally, append a new-line character to each canonicalized header in the resulting list.
78
+ * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
79
+ *
80
+ */
81
+ function getCanonicalizedHeadersString(request) {
82
+ let headersArray = [];
83
+ for (const [name, value] of request.headers) {
84
+ if (name.toLowerCase().startsWith(constants_js_1.HeaderConstants.PREFIX_FOR_STORAGE)) {
85
+ headersArray.push({ name, value });
86
+ }
87
+ }
88
+ headersArray.sort((a, b) => {
89
+ return (0, SharedKeyComparator_js_1.compareHeader)(a.name.toLowerCase(), b.name.toLowerCase());
90
+ });
91
+ // Remove duplicate headers
92
+ headersArray = headersArray.filter((value, index, array) => {
93
+ if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
94
+ return false;
95
+ }
96
+ return true;
97
+ });
98
+ let canonicalizedHeadersStringToSign = "";
99
+ headersArray.forEach((header) => {
100
+ canonicalizedHeadersStringToSign += `${header.name
101
+ .toLowerCase()
102
+ .trimRight()}:${header.value.trimLeft()}\n`;
103
+ });
104
+ return canonicalizedHeadersStringToSign;
105
+ }
106
+ function getCanonicalizedResourceString(request) {
107
+ const path = (0, utils_common_js_1.getURLPath)(request.url) || "/";
108
+ let canonicalizedResourceString = "";
109
+ canonicalizedResourceString += `/${options.accountName}${path}`;
110
+ const queries = (0, utils_common_js_1.getURLQueries)(request.url);
111
+ const lowercaseQueries = {};
112
+ if (queries) {
113
+ const queryKeys = [];
114
+ for (const key in queries) {
115
+ if (Object.prototype.hasOwnProperty.call(queries, key)) {
116
+ const lowercaseKey = key.toLowerCase();
117
+ lowercaseQueries[lowercaseKey] = queries[key];
118
+ queryKeys.push(lowercaseKey);
119
+ }
120
+ }
121
+ queryKeys.sort();
122
+ for (const key of queryKeys) {
123
+ canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
124
+ }
125
+ }
126
+ return canonicalizedResourceString;
127
+ }
128
+ return {
129
+ name: exports.storageSharedKeyCredentialPolicyName,
130
+ async sendRequest(request, next) {
131
+ signRequest(request);
132
+ return next(request);
133
+ },
134
+ };
135
+ }
136
+ //# sourceMappingURL=StorageSharedKeyCredentialPolicyV2.js.map
@@ -0,0 +1 @@
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/en-us/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/en-us/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"]}
@@ -1,11 +1,11 @@
1
- // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
- // It should be published with your NPM package. It should not be tracked by Git.
3
- {
4
- "tsdocVersion": "0.12",
5
- "toolPackages": [
6
- {
7
- "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.8"
9
- }
10
- ]
11
- }
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.52.8"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,2 @@
1
+ export declare function compareHeader(lhs: string, rhs: string): number;
2
+ //# sourceMappingURL=SharedKeyComparator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedKeyComparator.d.ts","sourceRoot":"","sources":["../../../src/utils/SharedKeyComparator.ts"],"names":[],"mappings":"AAqCA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9D"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.compareHeader = compareHeader;
6
+ /*
7
+ * We need to imitate .Net culture-aware sorting, which is used in storage service.
8
+ * Below tables contain sort-keys for en-US culture.
9
+ */
10
+ const table_lv0 = new Uint32Array([
11
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
12
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721,
13
+ 0x723, 0x725, 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e,
14
+ 0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe02, 0xe09, 0xe0a,
15
+ 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89,
16
+ 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x0, 0x0, 0x743, 0x744, 0x748,
17
+ 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70,
18
+ 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c,
19
+ 0x0, 0x750, 0x0,
20
+ ]);
21
+ const table_lv2 = new Uint32Array([
22
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
23
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
24
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
25
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
26
+ 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
27
+ 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
28
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
29
+ ]);
30
+ const table_lv4 = new Uint32Array([
31
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
32
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
33
+ 0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
34
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
35
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
36
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
37
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
38
+ ]);
39
+ function compareHeader(lhs, rhs) {
40
+ if (isLessThan(lhs, rhs))
41
+ return -1;
42
+ return 1;
43
+ }
44
+ function isLessThan(lhs, rhs) {
45
+ const tables = [table_lv0, table_lv2, table_lv4];
46
+ let curr_level = 0;
47
+ let i = 0;
48
+ let j = 0;
49
+ while (curr_level < tables.length) {
50
+ if (curr_level === tables.length - 1 && i !== j) {
51
+ return i > j;
52
+ }
53
+ const weight1 = i < lhs.length ? tables[curr_level][lhs[i].charCodeAt(0)] : 0x1;
54
+ const weight2 = j < rhs.length ? tables[curr_level][rhs[j].charCodeAt(0)] : 0x1;
55
+ if (weight1 === 0x1 && weight2 === 0x1) {
56
+ i = 0;
57
+ j = 0;
58
+ ++curr_level;
59
+ }
60
+ else if (weight1 === weight2) {
61
+ ++i;
62
+ ++j;
63
+ }
64
+ else if (weight1 === 0) {
65
+ ++i;
66
+ }
67
+ else if (weight2 === 0) {
68
+ ++j;
69
+ }
70
+ else {
71
+ return weight1 < weight2;
72
+ }
73
+ }
74
+ return false;
75
+ }
76
+ //# sourceMappingURL=SharedKeyComparator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedKeyComparator.js","sourceRoot":"","sources":["../../../src/utils/SharedKeyComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/*\n * We need to imitate .Net culture-aware sorting, which is used in storage service.\n * Below tables contain sort-keys for en-US culture.\n */\nconst table_lv0 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721,\n 0x723, 0x725, 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e,\n 0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe02, 0xe09, 0xe0a,\n 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89,\n 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x0, 0x0, 0x743, 0x744, 0x748,\n 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70,\n 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c,\n 0x0, 0x750, 0x0,\n]);\nconst table_lv2 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\nconst table_lv4 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\n\nexport function compareHeader(lhs: string, rhs: string): number {\n if (isLessThan(lhs, rhs)) return -1;\n\n return 1;\n}\n\nfunction isLessThan(lhs: string, rhs: string): boolean {\n const tables = [table_lv0, table_lv2, table_lv4];\n let curr_level = 0;\n let i = 0;\n let j = 0;\n while (curr_level < tables.length) {\n if (curr_level === tables.length - 1 && i !== j) {\n return i > j;\n }\n const weight1 = i < lhs.length ? tables[curr_level][lhs[i].charCodeAt(0)] : 0x1;\n const weight2 = j < rhs.length ? tables[curr_level][rhs[j].charCodeAt(0)] : 0x1;\n if (weight1 === 0x1 && weight2 === 0x1) {\n i = 0;\n j = 0;\n ++curr_level;\n } else if (weight1 === weight2) {\n ++i;\n ++j;\n } else if (weight1 === 0) {\n ++i;\n } else if (weight2 === 0) {\n ++j;\n } else {\n return weight1 < weight2;\n }\n }\n return false;\n}\n"]}
@@ -0,0 +1,39 @@
1
+ export declare const SDK_VERSION: string;
2
+ export declare const URLConstants: {
3
+ Parameters: {
4
+ FORCE_BROWSER_NO_CACHE: string;
5
+ SIGNATURE: string;
6
+ SNAPSHOT: string;
7
+ VERSIONID: string;
8
+ TIMEOUT: string;
9
+ };
10
+ };
11
+ export declare const HeaderConstants: {
12
+ AUTHORIZATION: string;
13
+ AUTHORIZATION_SCHEME: string;
14
+ CONTENT_ENCODING: string;
15
+ CONTENT_ID: string;
16
+ CONTENT_LANGUAGE: string;
17
+ CONTENT_LENGTH: string;
18
+ CONTENT_MD5: string;
19
+ CONTENT_TRANSFER_ENCODING: string;
20
+ CONTENT_TYPE: string;
21
+ COOKIE: string;
22
+ DATE: string;
23
+ IF_MATCH: string;
24
+ IF_MODIFIED_SINCE: string;
25
+ IF_NONE_MATCH: string;
26
+ IF_UNMODIFIED_SINCE: string;
27
+ PREFIX_FOR_STORAGE: string;
28
+ RANGE: string;
29
+ USER_AGENT: string;
30
+ X_MS_CLIENT_REQUEST_ID: string;
31
+ X_MS_COPY_SOURCE: string;
32
+ X_MS_DATE: string;
33
+ X_MS_ERROR_CODE: string;
34
+ X_MS_VERSION: string;
35
+ X_MS_CopySourceErrorCode: string;
36
+ };
37
+ export declare const DevelopmentConnectionString = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;";
38
+ export declare const PathStylePorts: string[];
39
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,EAAE,MAAgB,CAAC;AAE3C,eAAO,MAAM,YAAY;;;;;;;;CAQxB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AACF,eAAO,MAAM,2BAA2B,yNAAyN,CAAC;AAIlQ,eAAO,MAAM,cAAc,UAqB1B,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.PathStylePorts = exports.DevelopmentConnectionString = exports.HeaderConstants = exports.URLConstants = exports.SDK_VERSION = void 0;
6
+ exports.SDK_VERSION = "1.0.0";
7
+ exports.URLConstants = {
8
+ Parameters: {
9
+ FORCE_BROWSER_NO_CACHE: "_",
10
+ SIGNATURE: "sig",
11
+ SNAPSHOT: "snapshot",
12
+ VERSIONID: "versionid",
13
+ TIMEOUT: "timeout",
14
+ },
15
+ };
16
+ exports.HeaderConstants = {
17
+ AUTHORIZATION: "Authorization",
18
+ AUTHORIZATION_SCHEME: "Bearer",
19
+ CONTENT_ENCODING: "Content-Encoding",
20
+ CONTENT_ID: "Content-ID",
21
+ CONTENT_LANGUAGE: "Content-Language",
22
+ CONTENT_LENGTH: "Content-Length",
23
+ CONTENT_MD5: "Content-Md5",
24
+ CONTENT_TRANSFER_ENCODING: "Content-Transfer-Encoding",
25
+ CONTENT_TYPE: "Content-Type",
26
+ COOKIE: "Cookie",
27
+ DATE: "date",
28
+ IF_MATCH: "if-match",
29
+ IF_MODIFIED_SINCE: "if-modified-since",
30
+ IF_NONE_MATCH: "if-none-match",
31
+ IF_UNMODIFIED_SINCE: "if-unmodified-since",
32
+ PREFIX_FOR_STORAGE: "x-ms-",
33
+ RANGE: "Range",
34
+ USER_AGENT: "User-Agent",
35
+ X_MS_CLIENT_REQUEST_ID: "x-ms-client-request-id",
36
+ X_MS_COPY_SOURCE: "x-ms-copy-source",
37
+ X_MS_DATE: "x-ms-date",
38
+ X_MS_ERROR_CODE: "x-ms-error-code",
39
+ X_MS_VERSION: "x-ms-version",
40
+ X_MS_CopySourceErrorCode: "x-ms-copy-source-error-code",
41
+ };
42
+ exports.DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;
43
+ /// List of ports used for path style addressing.
44
+ /// Path style addressing means that storage account is put in URI's Path segment in instead of in host.
45
+ exports.PathStylePorts = [
46
+ "10000",
47
+ "10001",
48
+ "10002",
49
+ "10003",
50
+ "10004",
51
+ "10100",
52
+ "10101",
53
+ "10102",
54
+ "10103",
55
+ "10104",
56
+ "11000",
57
+ "11001",
58
+ "11002",
59
+ "11003",
60
+ "11004",
61
+ "11100",
62
+ "11101",
63
+ "11102",
64
+ "11103",
65
+ "11104",
66
+ ];
67
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAErB,QAAA,WAAW,GAAW,OAAO,CAAC;AAE9B,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,sBAAsB,EAAE,GAAG;QAC3B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE,eAAe;IAC9B,oBAAoB,EAAE,QAAQ;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,yBAAyB,EAAE,2BAA2B;IACtD,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,OAAO;IAC3B,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,wBAAwB,EAAE,6BAA6B;CACxD,CAAC;AACW,QAAA,2BAA2B,GAAG,sNAAsN,CAAC;AAElQ,iDAAiD;AACjD,wGAAwG;AAC3F,QAAA,cAAc,GAAG;IAC5B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"1.0.0\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n X_MS_CopySourceErrorCode: \"x-ms-copy-source-error-code\",\n};\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Creates a span using the global tracer.
3
+ * @internal
4
+ */
5
+ export declare const tracingClient: import("@azure/core-tracing").TracingClient;
6
+ //# sourceMappingURL=tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,aAAa,6CAIxB,CAAC"}