@azure/storage-common 12.4.0-beta.1 → 12.4.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 (477) hide show
  1. package/dist/browser/BufferScheduler-browser.d.mts +7 -0
  2. package/dist/browser/BufferScheduler-browser.d.mts.map +1 -0
  3. package/dist/browser/BufferScheduler-browser.mjs +11 -0
  4. package/dist/browser/BufferScheduler-browser.mjs.map +1 -0
  5. package/dist/browser/StorageBrowserPolicyFactory.d.ts +1 -1
  6. package/dist/browser/StorageBrowserPolicyFactory.d.ts.map +1 -1
  7. package/dist/browser/StorageBrowserPolicyFactory.js +1 -1
  8. package/dist/browser/StorageBrowserPolicyFactory.js.map +1 -1
  9. package/dist/browser/StructuredMessageDecoding.d.ts +1 -1
  10. package/dist/browser/StructuredMessageDecoding.d.ts.map +1 -1
  11. package/dist/browser/StructuredMessageDecoding.js +3 -22
  12. package/dist/browser/StructuredMessageDecoding.js.map +1 -1
  13. package/dist/browser/StructuredMessageDecodingStream-browser.d.mts +11 -0
  14. package/dist/browser/StructuredMessageDecodingStream-browser.d.mts.map +1 -0
  15. package/dist/browser/{StructuredMessageDecodingStream.js → StructuredMessageDecodingStream-browser.mjs} +4 -4
  16. package/dist/browser/StructuredMessageDecodingStream-browser.mjs.map +1 -0
  17. package/dist/browser/StructuredMessageEncoding.d.ts +1 -1
  18. package/dist/browser/StructuredMessageEncoding.d.ts.map +1 -1
  19. package/dist/browser/StructuredMessageEncoding.js +8 -28
  20. package/dist/browser/StructuredMessageEncoding.js.map +1 -1
  21. package/dist/browser/{StructuredMessageEncodingStream.d.ts → StructuredMessageEncodingStream-browser.d.mts} +2 -2
  22. package/dist/browser/StructuredMessageEncodingStream-browser.d.mts.map +1 -0
  23. package/dist/browser/{StructuredMessageEncodingStream.js → StructuredMessageEncodingStream-browser.mjs} +13 -11
  24. package/dist/browser/StructuredMessageEncodingStream-browser.mjs.map +1 -0
  25. package/dist/browser/bufferHelpers-browser.d.mts +18 -0
  26. package/dist/browser/bufferHelpers-browser.d.mts.map +1 -0
  27. package/dist/browser/bufferHelpers-browser.mjs +27 -0
  28. package/dist/browser/bufferHelpers-browser.mjs.map +1 -0
  29. package/dist/browser/bufferHelpers.common.d.ts +7 -0
  30. package/dist/browser/bufferHelpers.common.d.ts.map +1 -0
  31. package/dist/browser/bufferHelpers.common.js +22 -0
  32. package/dist/browser/bufferHelpers.common.js.map +1 -0
  33. package/dist/browser/crc64.js +5 -1
  34. package/dist/{react-native/credentials/StorageSharedKeyCredential.d.ts → browser/credentials/StorageSharedKeyCredential-browser.d.mts} +1 -1
  35. package/dist/browser/credentials/StorageSharedKeyCredential-browser.d.mts.map +1 -0
  36. package/dist/browser/credentials/{StorageSharedKeyCredential.js → StorageSharedKeyCredential-browser.mjs} +1 -1
  37. package/dist/browser/credentials/StorageSharedKeyCredential-browser.mjs.map +1 -0
  38. package/dist/browser/credentials/UserDelegationKey.d.ts +38 -0
  39. package/dist/browser/credentials/UserDelegationKey.d.ts.map +1 -0
  40. package/dist/browser/{interfaces.js → credentials/UserDelegationKey.js} +1 -1
  41. package/dist/browser/credentials/UserDelegationKey.js.map +1 -0
  42. package/dist/{react-native/credentials/UserDelegationKeyCredential.d.ts → browser/credentials/UserDelegationKeyCredential-browser.d.mts} +2 -13
  43. package/dist/browser/credentials/UserDelegationKeyCredential-browser.d.mts.map +1 -0
  44. package/dist/browser/credentials/{UserDelegationKeyCredential.js → UserDelegationKeyCredential-browser.mjs} +1 -1
  45. package/dist/browser/credentials/UserDelegationKeyCredential-browser.mjs.map +1 -0
  46. package/dist/browser/index.d.ts +1 -19
  47. package/dist/browser/index.d.ts.map +1 -1
  48. package/dist/browser/index.js +1 -19
  49. package/dist/browser/index.js.map +1 -1
  50. package/dist/browser/indexPlatform-browser.d.mts +25 -0
  51. package/dist/browser/indexPlatform-browser.d.mts.map +1 -0
  52. package/dist/browser/indexPlatform-browser.mjs +24 -0
  53. package/dist/browser/indexPlatform-browser.mjs.map +1 -0
  54. package/dist/browser/interfaces-browser.d.mts +14 -0
  55. package/dist/browser/interfaces-browser.d.mts.map +1 -0
  56. package/dist/browser/interfaces-browser.mjs +4 -0
  57. package/dist/browser/interfaces-browser.mjs.map +1 -0
  58. package/dist/browser/policies/{StorageBrowserPolicy.d.ts → StorageBrowserPolicy-browser.d.mts} +1 -1
  59. package/dist/browser/policies/StorageBrowserPolicy-browser.d.mts.map +1 -0
  60. package/dist/browser/policies/{StorageBrowserPolicy.js → StorageBrowserPolicy-browser.mjs} +1 -5
  61. package/dist/browser/policies/StorageBrowserPolicy-browser.mjs.map +1 -0
  62. package/dist/browser/policies/{StorageBrowserPolicyV2.d.ts → StorageBrowserPolicyV2-browser.d.mts} +1 -1
  63. package/dist/browser/policies/StorageBrowserPolicyV2-browser.d.mts.map +1 -0
  64. package/dist/browser/policies/{StorageBrowserPolicyV2.js → StorageBrowserPolicyV2-browser.mjs} +1 -5
  65. package/dist/browser/policies/StorageBrowserPolicyV2-browser.mjs.map +1 -0
  66. package/dist/browser/policies/{StorageCorrectContentLengthPolicy.d.ts → StorageCorrectContentLengthPolicy-browser.d.mts} +1 -1
  67. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.d.mts.map +1 -0
  68. package/dist/browser/policies/{StorageCorrectContentLengthPolicy.js → StorageCorrectContentLengthPolicy-browser.mjs} +1 -1
  69. package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.mjs.map +1 -0
  70. package/dist/browser/policies/{StorageSharedKeyCredentialPolicyV2.d.ts → StorageSharedKeyCredentialPolicyV2-browser.d.mts} +3 -3
  71. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.d.mts.map +1 -0
  72. package/dist/browser/policies/{StorageSharedKeyCredentialPolicyV2.js → StorageSharedKeyCredentialPolicyV2-browser.mjs} +1 -1
  73. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.mjs.map +1 -0
  74. package/dist/browser/streamHelpers-browser.d.mts +6 -0
  75. package/dist/browser/streamHelpers-browser.d.mts.map +1 -0
  76. package/dist/browser/streamHelpers-browser.mjs +10 -0
  77. package/dist/browser/streamHelpers-browser.mjs.map +1 -0
  78. package/dist/browser/utils/constants.d.ts.map +1 -1
  79. package/dist/browser/utils/constants.js +1 -1
  80. package/dist/browser/utils/constants.js.map +1 -1
  81. package/dist/browser/utils/utils.common.d.ts +0 -12
  82. package/dist/browser/utils/utils.common.d.ts.map +1 -1
  83. package/dist/browser/utils/utils.common.js +4 -20
  84. package/dist/browser/utils/utils.common.js.map +1 -1
  85. package/dist/commonjs/BufferScheduler.js +1 -0
  86. package/dist/commonjs/BufferScheduler.js.map +1 -1
  87. package/dist/commonjs/BuffersStream.js +3 -0
  88. package/dist/commonjs/BuffersStream.js.map +2 -2
  89. package/dist/commonjs/PooledBuffer.js +1 -0
  90. package/dist/commonjs/PooledBuffer.js.map +1 -1
  91. package/dist/commonjs/StorageBrowserPolicyFactory.d.ts.map +1 -1
  92. package/dist/commonjs/StorageBrowserPolicyFactory.js +1 -0
  93. package/dist/commonjs/StorageBrowserPolicyFactory.js.map +2 -2
  94. package/dist/commonjs/StorageCRC64Calculator.js +1 -0
  95. package/dist/commonjs/StorageCRC64Calculator.js.map +1 -1
  96. package/dist/commonjs/StorageRetryPolicyFactory.js +1 -0
  97. package/dist/commonjs/StorageRetryPolicyFactory.js.map +1 -1
  98. package/dist/commonjs/StructuredMessageDecoding.d.ts +1 -1
  99. package/dist/commonjs/StructuredMessageDecoding.d.ts.map +1 -1
  100. package/dist/commonjs/StructuredMessageDecoding.js +4 -20
  101. package/dist/commonjs/StructuredMessageDecoding.js.map +3 -3
  102. package/dist/commonjs/StructuredMessageDecodingStream.js +1 -0
  103. package/dist/commonjs/StructuredMessageDecodingStream.js.map +1 -1
  104. package/dist/commonjs/StructuredMessageEncoding.d.ts +1 -1
  105. package/dist/commonjs/StructuredMessageEncoding.d.ts.map +1 -1
  106. package/dist/commonjs/StructuredMessageEncoding.js +9 -26
  107. package/dist/commonjs/StructuredMessageEncoding.js.map +3 -3
  108. package/dist/commonjs/StructuredMessageEncodingStream.d.ts +1 -1
  109. package/dist/commonjs/StructuredMessageEncodingStream.d.ts.map +1 -1
  110. package/dist/commonjs/StructuredMessageEncodingStream.js +1 -0
  111. package/dist/commonjs/StructuredMessageEncodingStream.js.map +2 -2
  112. package/dist/commonjs/bufferHelpers.common.d.ts +7 -0
  113. package/dist/commonjs/bufferHelpers.common.d.ts.map +1 -0
  114. package/dist/commonjs/bufferHelpers.common.js +39 -0
  115. package/dist/commonjs/bufferHelpers.common.js.map +7 -0
  116. package/dist/commonjs/bufferHelpers.d.ts +18 -0
  117. package/dist/commonjs/bufferHelpers.d.ts.map +1 -0
  118. package/dist/commonjs/bufferHelpers.js +45 -0
  119. package/dist/commonjs/bufferHelpers.js.map +7 -0
  120. package/dist/commonjs/cache.js +1 -0
  121. package/dist/commonjs/cache.js.map +1 -1
  122. package/dist/commonjs/crc64.js +3 -1
  123. package/dist/commonjs/credentials/AnonymousCredential.js +1 -0
  124. package/dist/commonjs/credentials/AnonymousCredential.js.map +1 -1
  125. package/dist/commonjs/credentials/Credential.js +1 -0
  126. package/dist/commonjs/credentials/Credential.js.map +1 -1
  127. package/dist/commonjs/credentials/StorageSharedKeyCredential.js +1 -0
  128. package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +1 -1
  129. package/dist/commonjs/credentials/UserDelegationKey.d.ts +38 -0
  130. package/dist/commonjs/credentials/UserDelegationKey.d.ts.map +1 -0
  131. package/dist/commonjs/credentials/UserDelegationKey.js +16 -0
  132. package/dist/commonjs/credentials/UserDelegationKey.js.map +7 -0
  133. package/dist/commonjs/credentials/UserDelegationKeyCredential.d.ts +1 -37
  134. package/dist/commonjs/credentials/UserDelegationKeyCredential.d.ts.map +1 -1
  135. package/dist/commonjs/credentials/UserDelegationKeyCredential.js +1 -0
  136. package/dist/commonjs/credentials/UserDelegationKeyCredential.js.map +3 -3
  137. package/dist/commonjs/index.d.ts +1 -21
  138. package/dist/commonjs/index.d.ts.map +1 -1
  139. package/dist/commonjs/index.js +3 -48
  140. package/dist/commonjs/index.js.map +3 -3
  141. package/dist/commonjs/indexPlatform.d.ts +26 -0
  142. package/dist/commonjs/indexPlatform.d.ts.map +1 -0
  143. package/dist/commonjs/indexPlatform.js +73 -0
  144. package/dist/commonjs/indexPlatform.js.map +7 -0
  145. package/dist/commonjs/interfaces.js +1 -0
  146. package/dist/commonjs/interfaces.js.map +1 -1
  147. package/dist/commonjs/log.js +1 -0
  148. package/dist/commonjs/log.js.map +1 -1
  149. package/dist/commonjs/policies/AnonymousCredentialPolicy.js +1 -0
  150. package/dist/commonjs/policies/AnonymousCredentialPolicy.js.map +1 -1
  151. package/dist/commonjs/policies/CredentialPolicy.js +1 -0
  152. package/dist/commonjs/policies/CredentialPolicy.js.map +1 -1
  153. package/dist/commonjs/policies/RequestPolicy.js +3 -0
  154. package/dist/commonjs/policies/RequestPolicy.js.map +2 -2
  155. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts +2 -0
  156. package/dist/commonjs/policies/StorageBrowserPolicy.d.ts.map +1 -1
  157. package/dist/commonjs/policies/StorageBrowserPolicy.js +1 -15
  158. package/dist/commonjs/policies/StorageBrowserPolicy.js.map +3 -3
  159. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts +2 -0
  160. package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts.map +1 -1
  161. package/dist/commonjs/policies/StorageBrowserPolicyV2.js +1 -15
  162. package/dist/commonjs/policies/StorageBrowserPolicyV2.js.map +3 -3
  163. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js +1 -0
  164. package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js.map +1 -1
  165. package/dist/commonjs/policies/StorageRequestFailureDetailsParserPolicy.js +1 -0
  166. package/dist/commonjs/policies/StorageRequestFailureDetailsParserPolicy.js.map +1 -1
  167. package/dist/commonjs/policies/StorageRetryPolicy.js +1 -0
  168. package/dist/commonjs/policies/StorageRetryPolicy.js.map +1 -1
  169. package/dist/commonjs/policies/StorageRetryPolicyType.js +1 -0
  170. package/dist/commonjs/policies/StorageRetryPolicyType.js.map +1 -1
  171. package/dist/commonjs/policies/StorageRetryPolicyV2.js +1 -0
  172. package/dist/commonjs/policies/StorageRetryPolicyV2.js.map +1 -1
  173. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -1
  174. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js +1 -0
  175. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js.map +2 -2
  176. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js +1 -0
  177. package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -1
  178. package/dist/commonjs/streamHelpers.d.ts +7 -0
  179. package/dist/commonjs/streamHelpers.d.ts.map +1 -0
  180. package/dist/commonjs/{utils/tracing.js → streamHelpers.js} +9 -12
  181. package/dist/commonjs/streamHelpers.js.map +7 -0
  182. package/dist/commonjs/tsdoc-metadata.json +1 -1
  183. package/dist/commonjs/utils/SharedKeyComparator.js +1 -0
  184. package/dist/commonjs/utils/SharedKeyComparator.js.map +1 -1
  185. package/dist/commonjs/utils/constants.d.ts.map +1 -1
  186. package/dist/commonjs/utils/constants.js +2 -1
  187. package/dist/commonjs/utils/constants.js.map +2 -2
  188. package/dist/commonjs/utils/utils.common.d.ts +0 -12
  189. package/dist/commonjs/utils/utils.common.d.ts.map +1 -1
  190. package/dist/commonjs/utils/utils.common.js +4 -13
  191. package/dist/commonjs/utils/utils.common.js.map +3 -3
  192. package/dist/esm/StorageBrowserPolicyFactory.d.ts.map +1 -1
  193. package/dist/esm/StorageBrowserPolicyFactory.js.map +1 -1
  194. package/dist/esm/StructuredMessageDecoding.d.ts +1 -1
  195. package/dist/esm/StructuredMessageDecoding.d.ts.map +1 -1
  196. package/dist/esm/StructuredMessageDecoding.js +3 -22
  197. package/dist/esm/StructuredMessageDecoding.js.map +1 -1
  198. package/dist/esm/StructuredMessageEncoding.d.ts +1 -1
  199. package/dist/esm/StructuredMessageEncoding.d.ts.map +1 -1
  200. package/dist/esm/StructuredMessageEncoding.js +8 -28
  201. package/dist/esm/StructuredMessageEncoding.js.map +1 -1
  202. package/dist/esm/StructuredMessageEncodingStream.d.ts +1 -1
  203. package/dist/esm/StructuredMessageEncodingStream.d.ts.map +1 -1
  204. package/dist/esm/StructuredMessageEncodingStream.js.map +1 -1
  205. package/dist/esm/bufferHelpers.common.d.ts +7 -0
  206. package/dist/esm/bufferHelpers.common.d.ts.map +1 -0
  207. package/dist/esm/bufferHelpers.common.js +22 -0
  208. package/dist/esm/bufferHelpers.common.js.map +1 -0
  209. package/dist/esm/bufferHelpers.d.ts +18 -0
  210. package/dist/esm/bufferHelpers.d.ts.map +1 -0
  211. package/dist/esm/bufferHelpers.js +27 -0
  212. package/dist/esm/bufferHelpers.js.map +1 -0
  213. package/dist/esm/crc64.js +27 -1
  214. package/dist/esm/credentials/UserDelegationKey.d.ts +38 -0
  215. package/dist/esm/credentials/UserDelegationKey.d.ts.map +1 -0
  216. package/dist/{react-native/interfaces.js → esm/credentials/UserDelegationKey.js} +1 -1
  217. package/dist/esm/credentials/UserDelegationKey.js.map +1 -0
  218. package/dist/esm/credentials/UserDelegationKeyCredential.d.ts +1 -37
  219. package/dist/esm/credentials/UserDelegationKeyCredential.d.ts.map +1 -1
  220. package/dist/esm/credentials/UserDelegationKeyCredential.js +0 -1
  221. package/dist/esm/credentials/UserDelegationKeyCredential.js.map +1 -1
  222. package/dist/esm/index.d.ts +1 -21
  223. package/dist/esm/index.d.ts.map +1 -1
  224. package/dist/esm/index.js +1 -20
  225. package/dist/esm/index.js.map +1 -1
  226. package/dist/esm/indexPlatform.d.ts +26 -0
  227. package/dist/esm/indexPlatform.d.ts.map +1 -0
  228. package/dist/esm/indexPlatform.js +25 -0
  229. package/dist/esm/indexPlatform.js.map +1 -0
  230. package/dist/esm/policies/StorageBrowserPolicy.d.ts +2 -0
  231. package/dist/esm/policies/StorageBrowserPolicy.d.ts.map +1 -1
  232. package/dist/esm/policies/StorageBrowserPolicy.js +2 -12
  233. package/dist/esm/policies/StorageBrowserPolicy.js.map +1 -1
  234. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts +2 -0
  235. package/dist/esm/policies/StorageBrowserPolicyV2.d.ts.map +1 -1
  236. package/dist/esm/policies/StorageBrowserPolicyV2.js +2 -12
  237. package/dist/esm/policies/StorageBrowserPolicyV2.js.map +1 -1
  238. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -1
  239. package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  240. package/dist/esm/streamHelpers.d.ts +7 -0
  241. package/dist/esm/streamHelpers.d.ts.map +1 -0
  242. package/dist/esm/streamHelpers.js +11 -0
  243. package/dist/esm/streamHelpers.js.map +1 -0
  244. package/dist/esm/utils/constants.d.ts.map +1 -1
  245. package/dist/esm/utils/constants.js +1 -1
  246. package/dist/esm/utils/constants.js.map +1 -1
  247. package/dist/esm/utils/utils.common.d.ts +0 -12
  248. package/dist/esm/utils/utils.common.d.ts.map +1 -1
  249. package/dist/esm/utils/utils.common.js +4 -20
  250. package/dist/esm/utils/utils.common.js.map +1 -1
  251. package/dist/react-native/BufferScheduler-browser.d.mts +7 -0
  252. package/dist/react-native/BufferScheduler-browser.d.mts.map +1 -0
  253. package/dist/react-native/BufferScheduler-browser.mjs +11 -0
  254. package/dist/react-native/BufferScheduler-browser.mjs.map +1 -0
  255. package/dist/react-native/BufferScheduler-react-native.d.mts +3 -0
  256. package/dist/react-native/BufferScheduler-react-native.d.mts.map +1 -0
  257. package/dist/react-native/BufferScheduler-react-native.mjs +4 -0
  258. package/dist/react-native/BufferScheduler-react-native.mjs.map +1 -0
  259. package/dist/react-native/StorageBrowserPolicyFactory.d.ts +1 -1
  260. package/dist/react-native/StorageBrowserPolicyFactory.d.ts.map +1 -1
  261. package/dist/react-native/StorageBrowserPolicyFactory.js +1 -1
  262. package/dist/react-native/StorageBrowserPolicyFactory.js.map +1 -1
  263. package/dist/react-native/StructuredMessageDecodingStream-react-native.d.mts +6 -0
  264. package/dist/react-native/StructuredMessageDecodingStream-react-native.d.mts.map +1 -0
  265. package/dist/react-native/StructuredMessageDecodingStream-react-native.mjs +7 -0
  266. package/dist/react-native/StructuredMessageDecodingStream-react-native.mjs.map +1 -0
  267. package/dist/react-native/StructuredMessageEncoding.d.ts +1 -1
  268. package/dist/react-native/StructuredMessageEncoding.d.ts.map +1 -1
  269. package/dist/react-native/StructuredMessageEncoding.js +8 -28
  270. package/dist/react-native/StructuredMessageEncoding.js.map +1 -1
  271. package/dist/react-native/StructuredMessageEncodingStream-react-native.d.mts +10 -0
  272. package/dist/react-native/StructuredMessageEncodingStream-react-native.d.mts.map +1 -0
  273. package/dist/react-native/StructuredMessageEncodingStream-react-native.mjs +56 -0
  274. package/dist/react-native/StructuredMessageEncodingStream-react-native.mjs.map +1 -0
  275. package/dist/react-native/bufferHelpers-browser.d.mts +18 -0
  276. package/dist/react-native/bufferHelpers-browser.d.mts.map +1 -0
  277. package/dist/react-native/bufferHelpers-browser.mjs +27 -0
  278. package/dist/react-native/bufferHelpers-browser.mjs.map +1 -0
  279. package/dist/react-native/bufferHelpers-react-native.d.mts +2 -0
  280. package/dist/react-native/bufferHelpers-react-native.d.mts.map +1 -0
  281. package/dist/react-native/bufferHelpers-react-native.mjs +5 -0
  282. package/dist/react-native/bufferHelpers-react-native.mjs.map +1 -0
  283. package/dist/react-native/bufferHelpers.common.d.ts +7 -0
  284. package/dist/react-native/bufferHelpers.common.d.ts.map +1 -0
  285. package/dist/react-native/bufferHelpers.common.js +22 -0
  286. package/dist/react-native/bufferHelpers.common.js.map +1 -0
  287. package/dist/react-native/crc64.js +5 -1
  288. package/dist/{browser/credentials/StorageSharedKeyCredential.d.ts → react-native/credentials/StorageSharedKeyCredential-browser.d.mts} +1 -1
  289. package/dist/react-native/credentials/StorageSharedKeyCredential-browser.d.mts.map +1 -0
  290. package/dist/react-native/credentials/{StorageSharedKeyCredential.js → StorageSharedKeyCredential-browser.mjs} +4 -4
  291. package/dist/react-native/credentials/StorageSharedKeyCredential-browser.mjs.map +1 -0
  292. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.d.mts +2 -0
  293. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.d.mts.map +1 -0
  294. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.mjs +4 -0
  295. package/dist/react-native/credentials/StorageSharedKeyCredential-react-native.mjs.map +1 -0
  296. package/dist/react-native/credentials/UserDelegationKey.d.ts +38 -0
  297. package/dist/react-native/credentials/UserDelegationKey.d.ts.map +1 -0
  298. package/dist/react-native/credentials/UserDelegationKey.js +4 -0
  299. package/dist/react-native/credentials/UserDelegationKey.js.map +1 -0
  300. package/dist/{browser/credentials/UserDelegationKeyCredential.d.ts → react-native/credentials/UserDelegationKeyCredential-browser.d.mts} +2 -13
  301. package/dist/react-native/credentials/UserDelegationKeyCredential-browser.d.mts.map +1 -0
  302. package/dist/react-native/credentials/{UserDelegationKeyCredential.js → UserDelegationKeyCredential-browser.mjs} +3 -3
  303. package/dist/react-native/credentials/UserDelegationKeyCredential-browser.mjs.map +1 -0
  304. package/dist/react-native/credentials/UserDelegationKeyCredential-react-native.d.mts +2 -0
  305. package/dist/react-native/credentials/UserDelegationKeyCredential-react-native.d.mts.map +1 -0
  306. package/dist/react-native/credentials/UserDelegationKeyCredential-react-native.mjs +4 -0
  307. package/dist/react-native/credentials/UserDelegationKeyCredential-react-native.mjs.map +1 -0
  308. package/dist/react-native/index.d.ts +1 -21
  309. package/dist/react-native/index.d.ts.map +1 -1
  310. package/dist/react-native/index.js +1 -20
  311. package/dist/react-native/index.js.map +1 -1
  312. package/dist/react-native/indexPlatform-browser.d.mts +25 -0
  313. package/dist/react-native/indexPlatform-browser.d.mts.map +1 -0
  314. package/dist/react-native/indexPlatform-browser.mjs +24 -0
  315. package/dist/react-native/indexPlatform-browser.mjs.map +1 -0
  316. package/dist/react-native/indexPlatform-react-native.d.mts +2 -0
  317. package/dist/react-native/indexPlatform-react-native.d.mts.map +1 -0
  318. package/dist/react-native/indexPlatform-react-native.mjs +4 -0
  319. package/dist/react-native/indexPlatform-react-native.mjs.map +1 -0
  320. package/dist/react-native/interfaces-browser.d.mts +14 -0
  321. package/dist/react-native/interfaces-browser.d.mts.map +1 -0
  322. package/dist/react-native/interfaces-browser.mjs +4 -0
  323. package/dist/react-native/interfaces-browser.mjs.map +1 -0
  324. package/dist/react-native/interfaces-react-native.d.mts +2 -0
  325. package/dist/react-native/interfaces-react-native.d.mts.map +1 -0
  326. package/dist/react-native/interfaces-react-native.mjs +4 -0
  327. package/dist/react-native/interfaces-react-native.mjs.map +1 -0
  328. package/dist/react-native/policies/{StorageBrowserPolicy.d.ts → StorageBrowserPolicy-browser.d.mts} +1 -1
  329. package/dist/react-native/policies/StorageBrowserPolicy-browser.d.mts.map +1 -0
  330. package/dist/react-native/policies/{StorageBrowserPolicy.js → StorageBrowserPolicy-browser.mjs} +1 -5
  331. package/dist/react-native/policies/StorageBrowserPolicy-browser.mjs.map +1 -0
  332. package/dist/react-native/policies/StorageBrowserPolicy-react-native.d.mts +2 -0
  333. package/dist/react-native/policies/StorageBrowserPolicy-react-native.d.mts.map +1 -0
  334. package/dist/react-native/policies/StorageBrowserPolicy-react-native.mjs +4 -0
  335. package/dist/react-native/policies/StorageBrowserPolicy-react-native.mjs.map +1 -0
  336. package/dist/react-native/policies/{StorageBrowserPolicyV2.d.ts → StorageBrowserPolicyV2-browser.d.mts} +1 -1
  337. package/dist/react-native/policies/StorageBrowserPolicyV2-browser.d.mts.map +1 -0
  338. package/dist/react-native/policies/{StorageBrowserPolicyV2.js → StorageBrowserPolicyV2-browser.mjs} +1 -5
  339. package/dist/react-native/policies/StorageBrowserPolicyV2-browser.mjs.map +1 -0
  340. package/dist/react-native/policies/StorageBrowserPolicyV2-react-native.d.mts +2 -0
  341. package/dist/react-native/policies/StorageBrowserPolicyV2-react-native.d.mts.map +1 -0
  342. package/dist/react-native/policies/StorageBrowserPolicyV2-react-native.mjs +4 -0
  343. package/dist/react-native/policies/StorageBrowserPolicyV2-react-native.mjs.map +1 -0
  344. package/dist/react-native/policies/{StorageCorrectContentLengthPolicy.d.ts → StorageCorrectContentLengthPolicy-browser.d.mts} +1 -1
  345. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-browser.d.mts.map +1 -0
  346. package/dist/react-native/policies/{StorageCorrectContentLengthPolicy.js → StorageCorrectContentLengthPolicy-browser.mjs} +1 -10
  347. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-browser.mjs.map +1 -0
  348. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-react-native.d.mts +2 -0
  349. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-react-native.d.mts.map +1 -0
  350. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-react-native.mjs +4 -0
  351. package/dist/react-native/policies/StorageCorrectContentLengthPolicy-react-native.mjs.map +1 -0
  352. package/dist/react-native/policies/{StorageSharedKeyCredentialPolicyV2.d.ts → StorageSharedKeyCredentialPolicyV2-browser.d.mts} +8 -2
  353. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-browser.d.mts.map +1 -0
  354. package/dist/react-native/policies/{StorageSharedKeyCredentialPolicyV2.js → StorageSharedKeyCredentialPolicyV2-browser.mjs} +1 -1
  355. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-browser.mjs.map +1 -0
  356. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts +2 -0
  357. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.d.mts.map +1 -0
  358. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs +4 -0
  359. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2-react-native.mjs.map +1 -0
  360. package/dist/react-native/streamHelpers-browser.d.mts +6 -0
  361. package/dist/react-native/streamHelpers-browser.d.mts.map +1 -0
  362. package/dist/react-native/streamHelpers-browser.mjs +10 -0
  363. package/dist/react-native/streamHelpers-browser.mjs.map +1 -0
  364. package/dist/react-native/streamHelpers-react-native.d.mts +2 -0
  365. package/dist/react-native/streamHelpers-react-native.d.mts.map +1 -0
  366. package/dist/react-native/streamHelpers-react-native.mjs +4 -0
  367. package/dist/react-native/streamHelpers-react-native.mjs.map +1 -0
  368. package/dist/react-native/utils/constants.d.ts.map +1 -1
  369. package/dist/react-native/utils/constants.js +1 -1
  370. package/dist/react-native/utils/constants.js.map +1 -1
  371. package/dist/react-native/utils/utils.common.d.ts +0 -12
  372. package/dist/react-native/utils/utils.common.d.ts.map +1 -1
  373. package/dist/react-native/utils/utils.common.js +4 -20
  374. package/dist/react-native/utils/utils.common.js.map +1 -1
  375. package/package.json +26 -14
  376. package/dist/browser/BufferScheduler.d.ts +0 -3
  377. package/dist/browser/BufferScheduler.d.ts.map +0 -1
  378. package/dist/browser/BufferScheduler.js +0 -8
  379. package/dist/browser/BufferScheduler.js.map +0 -1
  380. package/dist/browser/BuffersStream.d.ts +0 -41
  381. package/dist/browser/BuffersStream.d.ts.map +0 -1
  382. package/dist/browser/BuffersStream.js +0 -97
  383. package/dist/browser/BuffersStream.js.map +0 -1
  384. package/dist/browser/PooledBuffer.d.ts +0 -63
  385. package/dist/browser/PooledBuffer.d.ts.map +0 -1
  386. package/dist/browser/PooledBuffer.js +0 -95
  387. package/dist/browser/PooledBuffer.js.map +0 -1
  388. package/dist/browser/StructuredMessageDecodingStream.d.ts +0 -8
  389. package/dist/browser/StructuredMessageDecodingStream.d.ts.map +0 -1
  390. package/dist/browser/StructuredMessageDecodingStream.js.map +0 -1
  391. package/dist/browser/StructuredMessageEncodingStream.d.ts.map +0 -1
  392. package/dist/browser/StructuredMessageEncodingStream.js.map +0 -1
  393. package/dist/browser/credentials/StorageSharedKeyCredential.d.ts.map +0 -1
  394. package/dist/browser/credentials/StorageSharedKeyCredential.js.map +0 -1
  395. package/dist/browser/credentials/UserDelegationKeyCredential.d.ts.map +0 -1
  396. package/dist/browser/credentials/UserDelegationKeyCredential.js.map +0 -1
  397. package/dist/browser/interfaces.d.ts +0 -12
  398. package/dist/browser/interfaces.d.ts.map +0 -1
  399. package/dist/browser/interfaces.js.map +0 -1
  400. package/dist/browser/policies/StorageBrowserPolicy.d.ts.map +0 -1
  401. package/dist/browser/policies/StorageBrowserPolicy.js.map +0 -1
  402. package/dist/browser/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  403. package/dist/browser/policies/StorageBrowserPolicyV2.js.map +0 -1
  404. package/dist/browser/policies/StorageCorrectContentLengthPolicy.d.ts.map +0 -1
  405. package/dist/browser/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
  406. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  407. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  408. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js +0 -145
  409. package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  410. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +0 -1
  411. package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
  412. package/dist/browser/utils/SharedKeyComparator.d.ts +0 -2
  413. package/dist/browser/utils/SharedKeyComparator.d.ts.map +0 -1
  414. package/dist/browser/utils/SharedKeyComparator.js +0 -73
  415. package/dist/browser/utils/SharedKeyComparator.js.map +0 -1
  416. package/dist/browser/utils/tracing.d.ts +0 -6
  417. package/dist/browser/utils/tracing.d.ts.map +0 -1
  418. package/dist/browser/utils/tracing.js +0 -14
  419. package/dist/browser/utils/tracing.js.map +0 -1
  420. package/dist/commonjs/utils/tracing.d.ts +0 -6
  421. package/dist/commonjs/utils/tracing.d.ts.map +0 -1
  422. package/dist/commonjs/utils/tracing.js.map +0 -7
  423. package/dist/esm/utils/tracing.d.ts +0 -6
  424. package/dist/esm/utils/tracing.d.ts.map +0 -1
  425. package/dist/esm/utils/tracing.js +0 -14
  426. package/dist/esm/utils/tracing.js.map +0 -1
  427. package/dist/react-native/BufferScheduler.d.ts +0 -3
  428. package/dist/react-native/BufferScheduler.d.ts.map +0 -1
  429. package/dist/react-native/BufferScheduler.js +0 -8
  430. package/dist/react-native/BufferScheduler.js.map +0 -1
  431. package/dist/react-native/BuffersStream.d.ts +0 -41
  432. package/dist/react-native/BuffersStream.d.ts.map +0 -1
  433. package/dist/react-native/BuffersStream.js +0 -97
  434. package/dist/react-native/BuffersStream.js.map +0 -1
  435. package/dist/react-native/PooledBuffer.d.ts +0 -63
  436. package/dist/react-native/PooledBuffer.d.ts.map +0 -1
  437. package/dist/react-native/PooledBuffer.js +0 -95
  438. package/dist/react-native/PooledBuffer.js.map +0 -1
  439. package/dist/react-native/StructuredMessageDecoding.d.ts +0 -31
  440. package/dist/react-native/StructuredMessageDecoding.d.ts.map +0 -1
  441. package/dist/react-native/StructuredMessageDecoding.js +0 -201
  442. package/dist/react-native/StructuredMessageDecoding.js.map +0 -1
  443. package/dist/react-native/StructuredMessageDecodingStream.d.ts +0 -22
  444. package/dist/react-native/StructuredMessageDecodingStream.d.ts.map +0 -1
  445. package/dist/react-native/StructuredMessageDecodingStream.js +0 -79
  446. package/dist/react-native/StructuredMessageDecodingStream.js.map +0 -1
  447. package/dist/react-native/StructuredMessageEncodingStream.d.ts +0 -22
  448. package/dist/react-native/StructuredMessageEncodingStream.d.ts.map +0 -1
  449. package/dist/react-native/StructuredMessageEncodingStream.js +0 -180
  450. package/dist/react-native/StructuredMessageEncodingStream.js.map +0 -1
  451. package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts.map +0 -1
  452. package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +0 -1
  453. package/dist/react-native/credentials/UserDelegationKeyCredential.d.ts.map +0 -1
  454. package/dist/react-native/credentials/UserDelegationKeyCredential.js.map +0 -1
  455. package/dist/react-native/interfaces.d.ts +0 -12
  456. package/dist/react-native/interfaces.d.ts.map +0 -1
  457. package/dist/react-native/interfaces.js.map +0 -1
  458. package/dist/react-native/policies/StorageBrowserPolicy.d.ts.map +0 -1
  459. package/dist/react-native/policies/StorageBrowserPolicy.js.map +0 -1
  460. package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts.map +0 -1
  461. package/dist/react-native/policies/StorageBrowserPolicyV2.js.map +0 -1
  462. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts.map +0 -1
  463. package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
  464. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts +0 -54
  465. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts.map +0 -1
  466. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js +0 -145
  467. package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
  468. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +0 -1
  469. package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
  470. package/dist/react-native/utils/SharedKeyComparator.d.ts +0 -2
  471. package/dist/react-native/utils/SharedKeyComparator.d.ts.map +0 -1
  472. package/dist/react-native/utils/SharedKeyComparator.js +0 -73
  473. package/dist/react-native/utils/SharedKeyComparator.js.map +0 -1
  474. package/dist/react-native/utils/tracing.d.ts +0 -6
  475. package/dist/react-native/utils/tracing.d.ts.map +0 -1
  476. package/dist/react-native/utils/tracing.js +0 -14
  477. package/dist/react-native/utils/tracing.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredMessageDecoding.js","sourceRoot":"","sources":["../../src/StructuredMessageDecoding.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageCRC64Calculator } from \"./StorageCRC64Calculator.js\";\nimport { isNodeLike } from \"@azure/core-util\";\n\nconst MESSAGE_VERSION: number = 1;\nconst MESSAGE_HEADER_LENGTH: number = 13;\nconst SEGMENT_HEADER_LENGTH: number = 10;\nconst FOOTER_LENGTH: number = 8;\n\nenum SMRegion {\n StreamHeader,\n StreamFooter,\n SegmentHeader,\n SegmentFooter,\n SegmentContent,\n}\n\nexport class StructuredMessageDecoding {\n private pushData: (data: any) => any;\n private segmentsCount: number;\n // private currentState: SMRegion;\n private currentOffset: number;\n\n private currentDataOffset: number;\n\n private messageHeaderBuffer: Uint8Array;\n private messageHeaderOffset: number;\n\n private segmentNumber: number;\n private segmentHeaderOffset: number;\n private segmentHeaderBuffer: Uint8Array;\n\n private segmentContentOffset: number;\n private segmentContentLength: number;\n\n private segmentFooterOffset: number;\n private segmentFooterBuffer: Uint8Array;\n\n private messageFooterOffset: number;\n private messageFooterBuffer: Uint8Array;\n\n private segmentCrc64: StorageCRC64Calculator;\n private messageCrc64: StorageCRC64Calculator;\n\n private state: SMRegion;\n\n public constructor(pushData: (data: any) => any) {\n this.pushData = pushData;\n this.currentOffset = 0;\n this.segmentsCount = 0;\n\n this.messageHeaderOffset = 0;\n this.messageHeaderBuffer = new Uint8Array(MESSAGE_HEADER_LENGTH);\n\n this.currentDataOffset = 0;\n\n this.segmentNumber = 0;\n this.segmentHeaderOffset = 0;\n this.segmentHeaderBuffer = new Uint8Array(SEGMENT_HEADER_LENGTH);\n\n this.segmentContentOffset = 0;\n this.segmentContentLength = 0;\n\n this.state = SMRegion.StreamHeader;\n\n this.segmentFooterOffset = 0;\n this.segmentFooterBuffer = new Uint8Array(FOOTER_LENGTH);\n\n this.messageFooterOffset = 0;\n this.messageFooterBuffer = new Uint8Array(FOOTER_LENGTH);\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.messageCrc64 = new StorageCRC64Calculator();\n }\n\n public sourceDataHandler = (data: Buffer): void => {\n this.currentDataOffset = 0;\n\n if (this.state === SMRegion.StreamHeader) {\n this.parseMessageHeader(data);\n }\n\n while (this.segmentNumber < this.segmentsCount && this.currentDataOffset < data.length) {\n if (this.state === SMRegion.SegmentHeader) {\n this.parseSegmentHeader(data);\n }\n\n if (this.state === SMRegion.SegmentContent) {\n this.parseSegmentContent(data);\n }\n if (this.state === SMRegion.SegmentFooter) {\n this.parseSegmentFooter(data);\n }\n }\n\n if (this.state === SMRegion.StreamFooter) {\n this.parseMessageFooter(data);\n }\n };\n\n private parseMessageHeader(data: Buffer) {\n const length = Math.min(\n MESSAGE_HEADER_LENGTH - this.messageHeaderOffset,\n data.length - this.currentDataOffset,\n );\n this.messageHeaderBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.messageHeaderOffset,\n );\n\n this.currentDataOffset += length;\n this.messageHeaderOffset += length;\n this.currentOffset += length;\n\n if (this.messageHeaderOffset === MESSAGE_HEADER_LENGTH) {\n const currentVersion = this.messageHeaderBuffer[0];\n if (currentVersion !== MESSAGE_VERSION) {\n throw new Error(\"Unexpected message version\");\n }\n\n this.segmentsCount = this.toInt16(\n Uint8Array.prototype.slice.call(this.messageHeaderBuffer, 11, 13),\n );\n this.state = SMRegion.SegmentHeader;\n }\n }\n\n private parseSegmentHeader(data: Buffer) {\n const length = Math.min(\n SEGMENT_HEADER_LENGTH - this.segmentHeaderOffset,\n data.length - this.currentDataOffset,\n );\n this.segmentHeaderBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.segmentHeaderOffset,\n );\n\n this.currentDataOffset += length;\n this.segmentHeaderOffset += length;\n this.currentOffset += length;\n\n if (this.segmentHeaderOffset === SEGMENT_HEADER_LENGTH) {\n const currentSegmentNumber = this.toInt16(\n Uint8Array.prototype.slice.call(this.segmentHeaderBuffer, 0, 2),\n );\n if (currentSegmentNumber !== this.segmentNumber + 1) {\n throw new Error(\"Segment number is unexpected.\");\n }\n\n this.segmentContentLength = this.toInt64(this.segmentHeaderBuffer, 2);\n this.segmentContentOffset = 0;\n\n this.state = SMRegion.SegmentContent;\n }\n }\n\n private parseSegmentContent(data: Buffer) {\n const length = Math.min(\n this.segmentContentLength - this.segmentContentOffset,\n data.length - this.currentDataOffset,\n );\n const dataToHandle = Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n );\n this.segmentCrc64.append(dataToHandle, length);\n this.messageCrc64.append(dataToHandle, length);\n\n this.pushData(dataToHandle);\n\n this.currentDataOffset += length;\n this.segmentContentOffset += length;\n this.currentOffset += length;\n\n if (this.segmentContentOffset === this.segmentContentLength) {\n this.state = SMRegion.SegmentFooter;\n }\n }\n\n private parseSegmentFooter(data: Buffer) {\n const length = Math.min(\n FOOTER_LENGTH - this.segmentFooterOffset,\n data.length - this.currentDataOffset,\n );\n\n this.segmentFooterBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.segmentFooterOffset,\n );\n\n this.currentDataOffset += length;\n this.segmentFooterOffset += length;\n this.currentOffset += length;\n\n if (this.segmentFooterOffset === FOOTER_LENGTH) {\n const crc64Result = this.segmentCrc64.final(new Uint8Array([]), 0);\n if (!this.checkCrc64CheckSum(crc64Result, this.segmentFooterBuffer)) {\n throw new Error(`Segment check sum mismatch, segmentNumber: ${this.segmentNumber}`);\n }\n\n ++this.segmentNumber;\n if (this.segmentNumber === this.segmentsCount) {\n this.state = SMRegion.StreamFooter;\n } else {\n this.segmentHeaderOffset = 0;\n this.segmentFooterOffset = 0;\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.state = SMRegion.SegmentHeader;\n }\n }\n }\n\n private parseMessageFooter(data: Buffer) {\n const length = Math.min(\n FOOTER_LENGTH - this.messageFooterOffset,\n data.length - this.currentDataOffset,\n );\n this.messageFooterBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.messageFooterOffset,\n );\n\n this.currentDataOffset += length;\n this.messageFooterOffset += length;\n this.currentOffset += length;\n\n if (this.messageFooterOffset === FOOTER_LENGTH) {\n const crc64Result = this.messageCrc64.final(new Uint8Array([]), 0);\n if (!this.checkCrc64CheckSum(crc64Result, this.messageFooterBuffer)) {\n throw new Error(\"Check sum mismatch\");\n }\n this.pushData(null);\n }\n }\n\n private toInt64(input: Uint8Array, offset: number): number {\n if (input.length < offset + 8) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n if (isNodeLike) {\n const internalBuffer = Buffer.alloc(8);\n for (let index = 0; index < 6; ++index) {\n internalBuffer[index] = input[offset + index];\n }\n\n return Number(internalBuffer.readBigInt64LE());\n } else {\n const view = new DataView(input.buffer, offset, 8);\n return Number(view.getBigUint64(0, true));\n }\n }\n\n private toInt16(input: Uint8Array): number {\n if (input.length !== 2) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n if (isNodeLike) {\n const internalBuffer = Buffer.alloc(2);\n for (let index = 0; index < 2; ++index) {\n internalBuffer[index] = input[index];\n }\n\n return Number(internalBuffer.readInt16LE());\n } else {\n return input[0] + input[1] * 256;\n }\n }\n\n private checkCrc64CheckSum(first: Uint8Array, second: Uint8Array): boolean {\n if (first.length !== 8 || second.length !== 8) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n for (let index = 0; index < 8; ++index) {\n if (first[index] !== second[index]) {\n return false;\n }\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"StructuredMessageDecoding.js","sourceRoot":"","sources":["../../src/StructuredMessageDecoding.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageCRC64Calculator } from \"./StorageCRC64Calculator.js\";\n\nconst MESSAGE_VERSION: number = 1;\nconst MESSAGE_HEADER_LENGTH: number = 13;\nconst SEGMENT_HEADER_LENGTH: number = 10;\nconst FOOTER_LENGTH: number = 8;\n\nenum SMRegion {\n StreamHeader,\n StreamFooter,\n SegmentHeader,\n SegmentFooter,\n SegmentContent,\n}\n\nexport class StructuredMessageDecoding {\n private pushData: (data: any) => any;\n private segmentsCount: number;\n // private currentState: SMRegion;\n private currentOffset: number;\n\n private currentDataOffset: number;\n\n private messageHeaderBuffer: Uint8Array;\n private messageHeaderOffset: number;\n\n private segmentNumber: number;\n private segmentHeaderOffset: number;\n private segmentHeaderBuffer: Uint8Array;\n\n private segmentContentOffset: number;\n private segmentContentLength: number;\n\n private segmentFooterOffset: number;\n private segmentFooterBuffer: Uint8Array;\n\n private messageFooterOffset: number;\n private messageFooterBuffer: Uint8Array;\n\n private segmentCrc64: StorageCRC64Calculator;\n private messageCrc64: StorageCRC64Calculator;\n\n private state: SMRegion;\n\n public constructor(pushData: (data: any) => any) {\n this.pushData = pushData;\n this.currentOffset = 0;\n this.segmentsCount = 0;\n\n this.messageHeaderOffset = 0;\n this.messageHeaderBuffer = new Uint8Array(MESSAGE_HEADER_LENGTH);\n\n this.currentDataOffset = 0;\n\n this.segmentNumber = 0;\n this.segmentHeaderOffset = 0;\n this.segmentHeaderBuffer = new Uint8Array(SEGMENT_HEADER_LENGTH);\n\n this.segmentContentOffset = 0;\n this.segmentContentLength = 0;\n\n this.state = SMRegion.StreamHeader;\n\n this.segmentFooterOffset = 0;\n this.segmentFooterBuffer = new Uint8Array(FOOTER_LENGTH);\n\n this.messageFooterOffset = 0;\n this.messageFooterBuffer = new Uint8Array(FOOTER_LENGTH);\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.messageCrc64 = new StorageCRC64Calculator();\n }\n\n public sourceDataHandler = (data: Uint8Array): void => {\n this.currentDataOffset = 0;\n\n if (this.state === SMRegion.StreamHeader) {\n this.parseMessageHeader(data);\n }\n\n while (this.segmentNumber < this.segmentsCount && this.currentDataOffset < data.length) {\n if (this.state === SMRegion.SegmentHeader) {\n this.parseSegmentHeader(data);\n }\n\n if (this.state === SMRegion.SegmentContent) {\n this.parseSegmentContent(data);\n }\n if (this.state === SMRegion.SegmentFooter) {\n this.parseSegmentFooter(data);\n }\n }\n\n if (this.state === SMRegion.StreamFooter) {\n this.parseMessageFooter(data);\n }\n };\n\n private parseMessageHeader(data: Uint8Array) {\n const length = Math.min(\n MESSAGE_HEADER_LENGTH - this.messageHeaderOffset,\n data.length - this.currentDataOffset,\n );\n this.messageHeaderBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.messageHeaderOffset,\n );\n\n this.currentDataOffset += length;\n this.messageHeaderOffset += length;\n this.currentOffset += length;\n\n if (this.messageHeaderOffset === MESSAGE_HEADER_LENGTH) {\n const currentVersion = this.messageHeaderBuffer[0];\n if (currentVersion !== MESSAGE_VERSION) {\n throw new Error(\"Unexpected message version\");\n }\n\n this.segmentsCount = this.toInt16(\n Uint8Array.prototype.slice.call(this.messageHeaderBuffer, 11, 13),\n );\n this.state = SMRegion.SegmentHeader;\n }\n }\n\n private parseSegmentHeader(data: Uint8Array) {\n const length = Math.min(\n SEGMENT_HEADER_LENGTH - this.segmentHeaderOffset,\n data.length - this.currentDataOffset,\n );\n this.segmentHeaderBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.segmentHeaderOffset,\n );\n\n this.currentDataOffset += length;\n this.segmentHeaderOffset += length;\n this.currentOffset += length;\n\n if (this.segmentHeaderOffset === SEGMENT_HEADER_LENGTH) {\n const currentSegmentNumber = this.toInt16(\n Uint8Array.prototype.slice.call(this.segmentHeaderBuffer, 0, 2),\n );\n if (currentSegmentNumber !== this.segmentNumber + 1) {\n throw new Error(\"Segment number is unexpected.\");\n }\n\n this.segmentContentLength = this.toInt64(this.segmentHeaderBuffer, 2);\n this.segmentContentOffset = 0;\n\n this.state = SMRegion.SegmentContent;\n }\n }\n\n private parseSegmentContent(data: Uint8Array) {\n const length = Math.min(\n this.segmentContentLength - this.segmentContentOffset,\n data.length - this.currentDataOffset,\n );\n const dataToHandle = Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n );\n this.segmentCrc64.append(dataToHandle, length);\n this.messageCrc64.append(dataToHandle, length);\n\n this.pushData(dataToHandle);\n\n this.currentDataOffset += length;\n this.segmentContentOffset += length;\n this.currentOffset += length;\n\n if (this.segmentContentOffset === this.segmentContentLength) {\n this.state = SMRegion.SegmentFooter;\n }\n }\n\n private parseSegmentFooter(data: Uint8Array) {\n const length = Math.min(\n FOOTER_LENGTH - this.segmentFooterOffset,\n data.length - this.currentDataOffset,\n );\n\n this.segmentFooterBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.segmentFooterOffset,\n );\n\n this.currentDataOffset += length;\n this.segmentFooterOffset += length;\n this.currentOffset += length;\n\n if (this.segmentFooterOffset === FOOTER_LENGTH) {\n const crc64Result = this.segmentCrc64.final(new Uint8Array([]), 0);\n if (!this.checkCrc64CheckSum(crc64Result, this.segmentFooterBuffer)) {\n throw new Error(`Segment check sum mismatch, segmentNumber: ${this.segmentNumber}`);\n }\n\n ++this.segmentNumber;\n if (this.segmentNumber === this.segmentsCount) {\n this.state = SMRegion.StreamFooter;\n } else {\n this.segmentHeaderOffset = 0;\n this.segmentFooterOffset = 0;\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.state = SMRegion.SegmentHeader;\n }\n }\n }\n\n private parseMessageFooter(data: Uint8Array) {\n const length = Math.min(\n FOOTER_LENGTH - this.messageFooterOffset,\n data.length - this.currentDataOffset,\n );\n this.messageFooterBuffer.set(\n Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n ),\n this.messageFooterOffset,\n );\n\n this.currentDataOffset += length;\n this.messageFooterOffset += length;\n this.currentOffset += length;\n\n if (this.messageFooterOffset === FOOTER_LENGTH) {\n const crc64Result = this.messageCrc64.final(new Uint8Array([]), 0);\n if (!this.checkCrc64CheckSum(crc64Result, this.messageFooterBuffer)) {\n throw new Error(\"Check sum mismatch\");\n }\n this.pushData(null);\n }\n }\n\n private toInt64(input: Uint8Array, offset: number): number {\n if (input.length < offset + 8) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n const view = new DataView(input.buffer, input.byteOffset + offset, 8);\n return Number(view.getBigUint64(0, true));\n }\n\n private toInt16(input: Uint8Array): number {\n if (input.length !== 2) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n return input[0] + input[1] * 256;\n }\n\n private checkCrc64CheckSum(first: Uint8Array, second: Uint8Array): boolean {\n if (first.length !== 8 || second.length !== 8) {\n throw new Error(\"CRC64 buffer error, something wrong with crc64 calculator\");\n }\n\n for (let index = 0; index < 8; ++index) {\n if (first[index] !== second[index]) {\n return false;\n }\n }\n\n return true;\n }\n}\n"]}
@@ -18,7 +18,7 @@ export declare class StructuredMessageEncoding {
18
18
  private segmentCrc64;
19
19
  private messageCrc64;
20
20
  private state;
21
- sourceDataHandler: (data: Buffer) => void;
21
+ sourceDataHandler: (data: Uint8Array) => void;
22
22
  private handlingMessageHeader;
23
23
  private handlingSegmentHeader;
24
24
  private handlingSegmentContent;
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredMessageEncoding.d.ts","sourceRoot":"","sources":["../../src/StructuredMessageEncoding.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,EAAE,MAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAChD,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAChD,eAAO,MAAM,aAAa,EAAE,MAAU,CAAC;AACvC,eAAO,MAAM,0BAA0B,QAAkB,CAAC;AAW1D,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAS;IAC9B,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAEnB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM;IA0BtE,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,mBAAmB,CAAa;IAExC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO,CAAC,KAAK,CAAW;IAEjB,iBAAiB,GAAI,MAAM,MAAM,KAAG,IAAI,CAkC7C;IAEF,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;CAiBlB"}
1
+ {"version":3,"file":"StructuredMessageEncoding.d.ts","sourceRoot":"","sources":["../../src/StructuredMessageEncoding.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,EAAE,MAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAChD,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAChD,eAAO,MAAM,aAAa,EAAE,MAAU,CAAC;AACvC,eAAO,MAAM,0BAA0B,QAAkB,CAAC;AAW1D,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAS;IAC9B,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAEnB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM;IA0BtE,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,mBAAmB,CAAa;IAExC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO,CAAC,KAAK,CAAW;IAEjB,iBAAiB,GAAI,MAAM,UAAU,KAAG,IAAI,CAkCjD;IAEF,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,SAAS;CAQlB"}
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  import { StorageCRC64Calculator } from "./StorageCRC64Calculator.js";
4
- import { isNodeLike } from "@azure/core-util";
4
+ import { signalStreamEnd } from "./streamHelpers.js";
5
5
  export const MESSAGE_VERSION = 1;
6
6
  export const MESSAGE_HEADER_LENGTH = 13;
7
7
  export const SEGMENT_HEADER_LENGTH = 10;
@@ -119,42 +119,22 @@ export class StructuredMessageEncoding {
119
119
  handlingMessageFooter() {
120
120
  const crc64Result = this.messageCrc64.final(new Uint8Array([]), 0);
121
121
  this.pushData(crc64Result);
122
- if (isNodeLike) {
123
- this.pushData(null);
124
- }
122
+ signalStreamEnd(this.pushData);
125
123
  this.state = SMRegion.Completed;
126
124
  }
127
125
  fillInt64(buffer, offset, input) {
128
126
  if (buffer.length < offset + 8) {
129
- throw new Error("Buffer length is not expected.");
130
- }
131
- if (isNodeLike) {
132
- const internalBuffer = Buffer.alloc(8);
133
- internalBuffer.writeBigUInt64LE(BigInt(input));
134
- for (let index = 0; index < 6; ++index) {
135
- buffer[offset + index] = internalBuffer[index];
136
- }
137
- }
138
- else {
139
- const view = new DataView(buffer.buffer, offset, 8);
140
- view.setBigUint64(0, BigInt(input), true);
127
+ throw new Error("Uint8Array length is not expected.");
141
128
  }
129
+ const view = new DataView(buffer.buffer, buffer.byteOffset + offset, 8);
130
+ view.setBigUint64(0, BigInt(input), true);
142
131
  }
143
132
  fillInt16(buffer, offset, input) {
144
133
  if (buffer.length < offset + 2) {
145
- throw new Error("Buffer length is not expected.");
146
- }
147
- if (isNodeLike) {
148
- const internalBuffer = Buffer.alloc(2);
149
- internalBuffer.writeInt16LE(input);
150
- for (let index = 0; index < 2; ++index) {
151
- buffer[offset + index] = internalBuffer[index];
152
- }
153
- }
154
- else {
155
- const view = new DataView(buffer.buffer, offset, 2);
156
- view.setUint16(0, input, true);
134
+ throw new Error("Uint8Array length is not expected.");
157
135
  }
136
+ const view = new DataView(buffer.buffer, buffer.byteOffset + offset, 2);
137
+ view.setUint16(0, input, true);
158
138
  }
159
139
  }
160
140
  //# sourceMappingURL=StructuredMessageEncoding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredMessageEncoding.js","sourceRoot":"","sources":["../../src/StructuredMessageEncoding.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageCRC64Calculator } from \"./StorageCRC64Calculator.js\";\nimport { isNodeLike } from \"@azure/core-util\";\n\nexport const MESSAGE_VERSION: number = 1;\nexport const MESSAGE_HEADER_LENGTH: number = 13;\nexport const SEGMENT_HEADER_LENGTH: number = 10;\nexport const FOOTER_LENGTH: number = 8;\nexport const MAX_SEGMENT_CONTENT_LENGTH = 4 * 1024 * 1024;\n\nenum SMRegion {\n StreamHeader,\n StreamFooter,\n SegmentHeader,\n SegmentFooter,\n SegmentContent,\n Completed,\n}\n\nexport class StructuredMessageEncoding {\n private pushData: (data: any) => any;\n private contentLength: number;\n public readonly messageLength: number;\n\n public constructor(pushData: (data: any) => any, contentLength: number) {\n this.pushData = pushData;\n this.contentLength = contentLength;\n this.contentOffset = 0;\n this.currentDataOffset = 0;\n this.segmentsCount = Math.ceil(this.contentLength / MAX_SEGMENT_CONTENT_LENGTH);\n\n this.messageLength =\n this.contentLength +\n MESSAGE_HEADER_LENGTH +\n (SEGMENT_HEADER_LENGTH + FOOTER_LENGTH) * this.segmentsCount +\n FOOTER_LENGTH;\n\n this.messageHeaderBuffer = new Uint8Array(MESSAGE_HEADER_LENGTH);\n\n this.segmentNumber = 0;\n\n this.segmentContentLength = 0;\n this.segmentContentOffset = 0;\n\n this.state = SMRegion.StreamHeader;\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.messageCrc64 = new StorageCRC64Calculator();\n }\n\n private currentDataOffset: number;\n private contentOffset: number;\n private segmentsCount: number;\n\n private messageHeaderBuffer: Uint8Array;\n\n private segmentNumber: number;\n\n private segmentContentLength: number;\n private segmentContentOffset: number;\n\n private segmentCrc64: StorageCRC64Calculator;\n private messageCrc64: StorageCRC64Calculator;\n\n private state: SMRegion;\n\n public sourceDataHandler = (data: Buffer): void => {\n this.currentDataOffset = 0;\n\n if (this.state === SMRegion.StreamHeader) {\n this.handlingMessageHeader();\n }\n\n while (this.segmentNumber < this.segmentsCount) {\n this.segmentContentLength = Math.min(\n MAX_SEGMENT_CONTENT_LENGTH,\n this.contentLength - this.contentOffset,\n );\n\n if (this.state === SMRegion.SegmentHeader) {\n this.handlingSegmentHeader();\n }\n\n if (this.state === SMRegion.SegmentContent) {\n this.handlingSegmentContent(data);\n }\n\n if (this.state === SMRegion.SegmentFooter) {\n this.handlingSegmentFooter();\n this.contentOffset += this.segmentContentLength;\n }\n\n if (this.currentDataOffset === data.length) {\n break;\n }\n }\n\n if (this.state === SMRegion.StreamFooter) {\n this.handlingMessageFooter();\n }\n };\n\n private handlingMessageHeader() {\n this.messageHeaderBuffer[0] = MESSAGE_VERSION;\n\n this.fillInt64(this.messageHeaderBuffer, 1, this.messageLength); // content length\n\n this.fillInt16(this.messageHeaderBuffer, 9, 1);\n\n this.fillInt16(this.messageHeaderBuffer, 11, this.segmentsCount);\n\n this.pushData(this.messageHeaderBuffer);\n this.state = SMRegion.SegmentHeader;\n }\n\n private handlingSegmentHeader() {\n const segmentHeaderBuffer = new Uint8Array(SEGMENT_HEADER_LENGTH);\n this.fillInt16(segmentHeaderBuffer, 0, this.segmentNumber + 1);\n\n this.fillInt64(segmentHeaderBuffer, 2, this.segmentContentLength);\n this.segmentContentOffset = 0;\n\n this.pushData(segmentHeaderBuffer);\n this.state = SMRegion.SegmentContent;\n }\n\n private handlingSegmentContent(data: Buffer) {\n const length = Math.min(\n this.segmentContentLength - this.segmentContentOffset,\n data.length - this.currentDataOffset,\n );\n\n if (length !== 0) {\n const current_content = Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n );\n this.messageCrc64.append(current_content, length);\n this.segmentCrc64.append(current_content, length);\n this.pushData(current_content);\n }\n\n this.segmentContentOffset += length;\n this.currentDataOffset += length;\n\n if (this.segmentContentOffset === this.segmentContentLength) {\n this.state = SMRegion.SegmentFooter;\n }\n }\n\n private handlingSegmentFooter() {\n const crc64Result = this.segmentCrc64.final(new Uint8Array([]), 0);\n this.pushData(crc64Result);\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n\n ++this.segmentNumber;\n if (this.segmentNumber === this.segmentsCount) {\n this.state = SMRegion.StreamFooter;\n } else {\n this.state = SMRegion.SegmentHeader;\n }\n }\n\n private handlingMessageFooter() {\n const crc64Result = this.messageCrc64.final(new Uint8Array([]), 0);\n this.pushData(crc64Result);\n if (isNodeLike) {\n this.pushData(null);\n }\n this.state = SMRegion.Completed;\n }\n\n private fillInt64(buffer: Uint8Array, offset: number, input: number) {\n if (buffer.length < offset + 8) {\n throw new Error(\"Buffer length is not expected.\");\n }\n\n if (isNodeLike) {\n const internalBuffer = Buffer.alloc(8);\n internalBuffer.writeBigUInt64LE(BigInt(input));\n\n for (let index = 0; index < 6; ++index) {\n buffer[offset + index] = internalBuffer[index];\n }\n } else {\n const view = new DataView(buffer.buffer, offset, 8);\n view.setBigUint64(0, BigInt(input), true);\n }\n }\n\n private fillInt16(buffer: Uint8Array, offset: number, input: number) {\n if (buffer.length < offset + 2) {\n throw new Error(\"Buffer length is not expected.\");\n }\n\n if (isNodeLike) {\n const internalBuffer = Buffer.alloc(2);\n internalBuffer.writeInt16LE(input);\n\n for (let index = 0; index < 2; ++index) {\n buffer[offset + index] = internalBuffer[index];\n }\n } else {\n const view = new DataView(buffer.buffer, offset, 2);\n view.setUint16(0, input, true);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"StructuredMessageEncoding.js","sourceRoot":"","sources":["../../src/StructuredMessageEncoding.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageCRC64Calculator } from \"./StorageCRC64Calculator.js\";\nimport { signalStreamEnd } from \"#platform/streamHelpers\";\n\nexport const MESSAGE_VERSION: number = 1;\nexport const MESSAGE_HEADER_LENGTH: number = 13;\nexport const SEGMENT_HEADER_LENGTH: number = 10;\nexport const FOOTER_LENGTH: number = 8;\nexport const MAX_SEGMENT_CONTENT_LENGTH = 4 * 1024 * 1024;\n\nenum SMRegion {\n StreamHeader,\n StreamFooter,\n SegmentHeader,\n SegmentFooter,\n SegmentContent,\n Completed,\n}\n\nexport class StructuredMessageEncoding {\n private pushData: (data: any) => any;\n private contentLength: number;\n public readonly messageLength: number;\n\n public constructor(pushData: (data: any) => any, contentLength: number) {\n this.pushData = pushData;\n this.contentLength = contentLength;\n this.contentOffset = 0;\n this.currentDataOffset = 0;\n this.segmentsCount = Math.ceil(this.contentLength / MAX_SEGMENT_CONTENT_LENGTH);\n\n this.messageLength =\n this.contentLength +\n MESSAGE_HEADER_LENGTH +\n (SEGMENT_HEADER_LENGTH + FOOTER_LENGTH) * this.segmentsCount +\n FOOTER_LENGTH;\n\n this.messageHeaderBuffer = new Uint8Array(MESSAGE_HEADER_LENGTH);\n\n this.segmentNumber = 0;\n\n this.segmentContentLength = 0;\n this.segmentContentOffset = 0;\n\n this.state = SMRegion.StreamHeader;\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n this.messageCrc64 = new StorageCRC64Calculator();\n }\n\n private currentDataOffset: number;\n private contentOffset: number;\n private segmentsCount: number;\n\n private messageHeaderBuffer: Uint8Array;\n\n private segmentNumber: number;\n\n private segmentContentLength: number;\n private segmentContentOffset: number;\n\n private segmentCrc64: StorageCRC64Calculator;\n private messageCrc64: StorageCRC64Calculator;\n\n private state: SMRegion;\n\n public sourceDataHandler = (data: Uint8Array): void => {\n this.currentDataOffset = 0;\n\n if (this.state === SMRegion.StreamHeader) {\n this.handlingMessageHeader();\n }\n\n while (this.segmentNumber < this.segmentsCount) {\n this.segmentContentLength = Math.min(\n MAX_SEGMENT_CONTENT_LENGTH,\n this.contentLength - this.contentOffset,\n );\n\n if (this.state === SMRegion.SegmentHeader) {\n this.handlingSegmentHeader();\n }\n\n if (this.state === SMRegion.SegmentContent) {\n this.handlingSegmentContent(data);\n }\n\n if (this.state === SMRegion.SegmentFooter) {\n this.handlingSegmentFooter();\n this.contentOffset += this.segmentContentLength;\n }\n\n if (this.currentDataOffset === data.length) {\n break;\n }\n }\n\n if (this.state === SMRegion.StreamFooter) {\n this.handlingMessageFooter();\n }\n };\n\n private handlingMessageHeader() {\n this.messageHeaderBuffer[0] = MESSAGE_VERSION;\n\n this.fillInt64(this.messageHeaderBuffer, 1, this.messageLength); // content length\n\n this.fillInt16(this.messageHeaderBuffer, 9, 1);\n\n this.fillInt16(this.messageHeaderBuffer, 11, this.segmentsCount);\n\n this.pushData(this.messageHeaderBuffer);\n this.state = SMRegion.SegmentHeader;\n }\n\n private handlingSegmentHeader() {\n const segmentHeaderBuffer = new Uint8Array(SEGMENT_HEADER_LENGTH);\n this.fillInt16(segmentHeaderBuffer, 0, this.segmentNumber + 1);\n\n this.fillInt64(segmentHeaderBuffer, 2, this.segmentContentLength);\n this.segmentContentOffset = 0;\n\n this.pushData(segmentHeaderBuffer);\n this.state = SMRegion.SegmentContent;\n }\n\n private handlingSegmentContent(data: Uint8Array) {\n const length = Math.min(\n this.segmentContentLength - this.segmentContentOffset,\n data.length - this.currentDataOffset,\n );\n\n if (length !== 0) {\n const current_content = Uint8Array.prototype.slice.call(\n data,\n this.currentDataOffset,\n this.currentDataOffset + length,\n );\n this.messageCrc64.append(current_content, length);\n this.segmentCrc64.append(current_content, length);\n this.pushData(current_content);\n }\n\n this.segmentContentOffset += length;\n this.currentDataOffset += length;\n\n if (this.segmentContentOffset === this.segmentContentLength) {\n this.state = SMRegion.SegmentFooter;\n }\n }\n\n private handlingSegmentFooter() {\n const crc64Result = this.segmentCrc64.final(new Uint8Array([]), 0);\n this.pushData(crc64Result);\n\n this.segmentCrc64 = new StorageCRC64Calculator();\n\n ++this.segmentNumber;\n if (this.segmentNumber === this.segmentsCount) {\n this.state = SMRegion.StreamFooter;\n } else {\n this.state = SMRegion.SegmentHeader;\n }\n }\n\n private handlingMessageFooter() {\n const crc64Result = this.messageCrc64.final(new Uint8Array([]), 0);\n this.pushData(crc64Result);\n signalStreamEnd(this.pushData);\n this.state = SMRegion.Completed;\n }\n\n private fillInt64(buffer: Uint8Array, offset: number, input: number) {\n if (buffer.length < offset + 8) {\n throw new Error(\"Uint8Array length is not expected.\");\n }\n\n const view = new DataView(buffer.buffer, buffer.byteOffset + offset, 8);\n view.setBigUint64(0, BigInt(input), true);\n }\n\n private fillInt16(buffer: Uint8Array, offset: number, input: number) {\n if (buffer.length < offset + 2) {\n throw new Error(\"Uint8Array length is not expected.\");\n }\n\n const view = new DataView(buffer.buffer, buffer.byteOffset + offset, 2);\n view.setUint16(0, input, true);\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { RequestBodyType as HttpRequestBody } from "@azure/core-rest-pipeline";
1
+ import type { RequestBodyType as HttpRequestBody } from "@azure/core-rest-pipeline";
2
2
  /**
3
3
  * Options used when creating StructuredMessageEncodingStream
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredMessageEncodingStream.d.ts","sourceRoot":"","sources":["../../src/StructuredMessageEncodingStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAc/E;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC,CA6ElE"}
1
+ {"version":3,"file":"StructuredMessageEncodingStream.d.ts","sourceRoot":"","sources":["../../src/StructuredMessageEncodingStream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAcpF;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC,CA6ElE"}
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredMessageEncodingStream.js","sourceRoot":"","sources":["../../src/StructuredMessageEncodingStream.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport { RequestBodyType as HttpRequestBody } from \"@azure/core-rest-pipeline\";\nimport Stream, { Readable } from \"node:stream\";\nimport { StructuredMessageEncoding } from \"./StructuredMessageEncoding.js\";\n\nfunction isNodeReadableStream(source: unknown): boolean {\n return (\n source !== null &&\n source instanceof Stream &&\n typeof (source as any)._read === \"function\" &&\n typeof (source as any)._readableState === \"object\" &&\n typeof source.pipe === \"function\"\n );\n}\n\n/**\n * Options used when creating StructuredMessageEncodingStream\n */\nexport interface StructuredMessageEncodingStreamOptions {\n /**\n * A threshold, not a limit. Dictates the amount of data that a stream buffers before it stops asking for more data.\n */\n highWaterMark?: number;\n}\n\n/**\n *\n * To encode structured body for CRC64 content validtion in storage uploading.\n * @param source -\n * @param contentLength -\n * @returns\n */\nexport async function structuredMessageEncoding(\n source: HttpRequestBody,\n contentLength: number,\n): Promise<{ body: HttpRequestBody; encodedContentLength: number }> {\n if (source === null) {\n return {\n body: source,\n encodedContentLength: contentLength,\n };\n }\n\n if (isNodeReadableStream(source)) {\n const encodingMessage = new StructuredMessageEncodingStream(source as any, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (typeof source === \"function\") {\n const encodingMessage = new StructuredMessageEncodingStream(\n source() as NodeJS.ReadableStream,\n contentLength,\n {},\n );\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof Blob) {\n const encoding = await BrowserStream(source, contentLength);\n return {\n body: encoding.content,\n encodedContentLength: encoding.encodedContentLength,\n };\n }\n\n if (typeof source === \"string\") {\n const s = new Readable();\n s._read = () => {};\n s.push(source);\n s.push(null);\n const stringContentLength = Buffer.byteLength(source as string);\n const encodingMessage = await new StructuredMessageEncodingStream(s, stringContentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof ArrayBuffer) {\n const stream = Readable.from(Buffer.from(source));\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof Buffer) {\n const stream = Readable.from(source);\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (ArrayBuffer.isView(source)) {\n const stream = Readable.from(Buffer.from(source.buffer, source.byteOffset, source.byteLength));\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n throw new Error(\"The specified request body type is not supported for CRC64 checksum\");\n}\n\nasync function pump(\n reader: ReadableStreamDefaultReader,\n controller: ReadableStreamDefaultController,\n encodingStream: StructuredMessageEncoding,\n): Promise<void> {\n const { done, value } = await reader.read();\n\n // When no more data needs to be consumed, close the stream\n if (done) {\n controller.close();\n return;\n }\n\n // Enqueue the next data chunk into our target stream\n encodingStream.sourceDataHandler(Buffer.from(value));\n}\n\nasync function BrowserStream(\n source: Blob | ReadableStream<Uint8Array>,\n contentLength: number,\n): Promise<{ content: Blob; encodedContentLength: number }> {\n const sourceStream = source instanceof Blob ? source.stream() : source;\n const reader = sourceStream.getReader();\n\n let encodingStream: StructuredMessageEncoding | undefined = undefined;\n const stream = new ReadableStream({\n start(controller) {\n encodingStream = new StructuredMessageEncoding((data) => {\n controller.enqueue(data);\n }, contentLength);\n },\n pull(controller) {\n pump(reader, controller, encodingStream!)\n .then(() => {\n return;\n })\n .catch(function (error) {\n controller.error(error);\n });\n },\n });\n\n const response = new Response(stream);\n return {\n content: await response.blob(),\n encodedContentLength: encodingStream!.messageLength,\n };\n}\n\nclass StructuredMessageEncodingStream extends Readable {\n private source: NodeJS.ReadableStream;\n private encodingMethods: StructuredMessageEncoding;\n\n public constructor(\n source: NodeJS.ReadableStream,\n contentLength: number,\n options: StructuredMessageEncodingStreamOptions,\n ) {\n super({ highWaterMark: options.highWaterMark });\n this.source = source;\n this.encodingMethods = new StructuredMessageEncoding((dataToHandle) => {\n if (!this.push(dataToHandle)) {\n source.pause();\n }\n }, contentLength);\n this.setSourceEventHandlers();\n }\n\n public messageLength(): number {\n return this.encodingMethods.messageLength;\n }\n\n private setSourceEventHandlers() {\n this.source.on(\"data\", this.sourceDataHandler);\n this.source.on(\"end\", this.sourceErrorOrEndHandler);\n this.source.on(\"error\", this.sourceErrorOrEndHandler);\n // needed for Node14\n this.source.on(\"aborted\", this.sourceAbortedHandler);\n }\n\n private removeSourceEventHandlers() {\n this.source.removeListener(\"data\", this.sourceDataHandler);\n this.source.removeListener(\"end\", this.sourceErrorOrEndHandler);\n this.source.removeListener(\"error\", this.sourceErrorOrEndHandler);\n this.source.removeListener(\"aborted\", this.sourceAbortedHandler);\n }\n\n private sourceDataHandler = (data: Buffer) => {\n this.encodingMethods.sourceDataHandler(data);\n };\n private sourceAbortedHandler = () => {\n const abortError = new AbortError(\"The operation was aborted.\");\n this.destroy(abortError);\n };\n\n private sourceErrorOrEndHandler = (err?: Error) => {\n if (err && err.name === \"AbortError\") {\n this.destroy(err);\n return;\n }\n\n // console.log(\n // `Source stream emits end or error, offset: ${\n // this.offset\n // }, dest end : ${this.end}`\n // );\n this.removeSourceEventHandlers();\n };\n\n public _read(): void {\n this.source.resume();\n }\n\n _destroy(error: Error | null, callback: (error?: Error) => void): void {\n // remove listener from source and release source\n this.removeSourceEventHandlers();\n (this.source as Readable).destroy();\n\n callback(error === null ? undefined : error);\n }\n}\n"]}
1
+ {"version":3,"file":"StructuredMessageEncodingStream.js","sourceRoot":"","sources":["../../src/StructuredMessageEncodingStream.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { RequestBodyType as HttpRequestBody } from \"@azure/core-rest-pipeline\";\nimport Stream, { Readable } from \"node:stream\";\nimport { StructuredMessageEncoding } from \"./StructuredMessageEncoding.js\";\n\nfunction isNodeReadableStream(source: unknown): boolean {\n return (\n source !== null &&\n source instanceof Stream &&\n typeof (source as any)._read === \"function\" &&\n typeof (source as any)._readableState === \"object\" &&\n typeof source.pipe === \"function\"\n );\n}\n\n/**\n * Options used when creating StructuredMessageEncodingStream\n */\nexport interface StructuredMessageEncodingStreamOptions {\n /**\n * A threshold, not a limit. Dictates the amount of data that a stream buffers before it stops asking for more data.\n */\n highWaterMark?: number;\n}\n\n/**\n *\n * To encode structured body for CRC64 content validtion in storage uploading.\n * @param source -\n * @param contentLength -\n * @returns\n */\nexport async function structuredMessageEncoding(\n source: HttpRequestBody,\n contentLength: number,\n): Promise<{ body: HttpRequestBody; encodedContentLength: number }> {\n if (source === null) {\n return {\n body: source,\n encodedContentLength: contentLength,\n };\n }\n\n if (isNodeReadableStream(source)) {\n const encodingMessage = new StructuredMessageEncodingStream(source as any, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (typeof source === \"function\") {\n const encodingMessage = new StructuredMessageEncodingStream(\n source() as NodeJS.ReadableStream,\n contentLength,\n {},\n );\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof Blob) {\n const encoding = await BrowserStream(source, contentLength);\n return {\n body: encoding.content,\n encodedContentLength: encoding.encodedContentLength,\n };\n }\n\n if (typeof source === \"string\") {\n const s = new Readable();\n s._read = () => {};\n s.push(source);\n s.push(null);\n const stringContentLength = Buffer.byteLength(source as string);\n const encodingMessage = await new StructuredMessageEncodingStream(s, stringContentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof ArrayBuffer) {\n const stream = Readable.from(Buffer.from(source));\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (source instanceof Buffer) {\n const stream = Readable.from(source);\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n if (ArrayBuffer.isView(source)) {\n const stream = Readable.from(Buffer.from(source.buffer, source.byteOffset, source.byteLength));\n const encodingMessage = await new StructuredMessageEncodingStream(stream, contentLength, {});\n return {\n body: encodingMessage,\n encodedContentLength: encodingMessage.messageLength(),\n };\n }\n\n throw new Error(\"The specified request body type is not supported for CRC64 checksum\");\n}\n\nasync function pump(\n reader: ReadableStreamDefaultReader,\n controller: ReadableStreamDefaultController,\n encodingStream: StructuredMessageEncoding,\n): Promise<void> {\n const { done, value } = await reader.read();\n\n // When no more data needs to be consumed, close the stream\n if (done) {\n controller.close();\n return;\n }\n\n // Enqueue the next data chunk into our target stream\n encodingStream.sourceDataHandler(Buffer.from(value));\n}\n\nasync function BrowserStream(\n source: Blob | ReadableStream<Uint8Array>,\n contentLength: number,\n): Promise<{ content: Blob; encodedContentLength: number }> {\n const sourceStream = source instanceof Blob ? source.stream() : source;\n const reader = sourceStream.getReader();\n\n let encodingStream: StructuredMessageEncoding | undefined = undefined;\n const stream = new ReadableStream({\n start(controller) {\n encodingStream = new StructuredMessageEncoding((data) => {\n controller.enqueue(data);\n }, contentLength);\n },\n pull(controller) {\n pump(reader, controller, encodingStream!)\n .then(() => {\n return;\n })\n .catch(function (error) {\n controller.error(error);\n });\n },\n });\n\n const response = new Response(stream);\n return {\n content: await response.blob(),\n encodedContentLength: encodingStream!.messageLength,\n };\n}\n\nclass StructuredMessageEncodingStream extends Readable {\n private source: NodeJS.ReadableStream;\n private encodingMethods: StructuredMessageEncoding;\n\n public constructor(\n source: NodeJS.ReadableStream,\n contentLength: number,\n options: StructuredMessageEncodingStreamOptions,\n ) {\n super({ highWaterMark: options.highWaterMark });\n this.source = source;\n this.encodingMethods = new StructuredMessageEncoding((dataToHandle) => {\n if (!this.push(dataToHandle)) {\n source.pause();\n }\n }, contentLength);\n this.setSourceEventHandlers();\n }\n\n public messageLength(): number {\n return this.encodingMethods.messageLength;\n }\n\n private setSourceEventHandlers() {\n this.source.on(\"data\", this.sourceDataHandler);\n this.source.on(\"end\", this.sourceErrorOrEndHandler);\n this.source.on(\"error\", this.sourceErrorOrEndHandler);\n // needed for Node14\n this.source.on(\"aborted\", this.sourceAbortedHandler);\n }\n\n private removeSourceEventHandlers() {\n this.source.removeListener(\"data\", this.sourceDataHandler);\n this.source.removeListener(\"end\", this.sourceErrorOrEndHandler);\n this.source.removeListener(\"error\", this.sourceErrorOrEndHandler);\n this.source.removeListener(\"aborted\", this.sourceAbortedHandler);\n }\n\n private sourceDataHandler = (data: Buffer) => {\n this.encodingMethods.sourceDataHandler(data);\n };\n private sourceAbortedHandler = () => {\n const abortError = new AbortError(\"The operation was aborted.\");\n this.destroy(abortError);\n };\n\n private sourceErrorOrEndHandler = (err?: Error) => {\n if (err && err.name === \"AbortError\") {\n this.destroy(err);\n return;\n }\n\n // console.log(\n // `Source stream emits end or error, offset: ${\n // this.offset\n // }, dest end : ${this.end}`\n // );\n this.removeSourceEventHandlers();\n };\n\n public _read(): void {\n this.source.resume();\n }\n\n _destroy(error: Error | null, callback: (error?: Error) => void): void {\n // remove listener from source and release source\n this.removeSourceEventHandlers();\n (this.source as Readable).destroy();\n\n callback(error === null ? undefined : error);\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Creates a Blob from the given data.
3
+ * Uses an indirect constructor reference to work around React Native's restrictive
4
+ * Blob type definitions (which only accept string | Blob, not ArrayBuffer).
5
+ */
6
+ export declare function createBlobFromData(data: Blob | ArrayBuffer | ArrayBufferView): Blob;
7
+ //# sourceMappingURL=bufferHelpers.common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferHelpers.common.d.ts","sourceRoot":"","sources":["../../src/bufferHelpers.common.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,eAAe,GAAG,IAAI,CAYnF"}
@@ -0,0 +1,22 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Creates a Blob from the given data.
5
+ * Uses an indirect constructor reference to work around React Native's restrictive
6
+ * Blob type definitions (which only accept string | Blob, not ArrayBuffer).
7
+ */
8
+ export function createBlobFromData(data) {
9
+ if (data instanceof Blob) {
10
+ return data;
11
+ }
12
+ // Use indirect constructor to bypass restrictive type definitions in some environments
13
+ const BlobCtor = Blob;
14
+ if (data instanceof ArrayBuffer) {
15
+ return new BlobCtor([data]);
16
+ }
17
+ else {
18
+ const ab = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
19
+ return new BlobCtor([ab]);
20
+ }
21
+ }
22
+ //# sourceMappingURL=bufferHelpers.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferHelpers.common.js","sourceRoot":"","sources":["../../src/bufferHelpers.common.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA0C;IAC3E,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,uFAAuF;IACvF,MAAM,QAAQ,GAAG,IAAwC,CAAC;IAC1D,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates a Blob from the given data.\n * Uses an indirect constructor reference to work around React Native's restrictive\n * Blob type definitions (which only accept string | Blob, not ArrayBuffer).\n */\nexport function createBlobFromData(data: Blob | ArrayBuffer | ArrayBufferView): Blob {\n if (data instanceof Blob) {\n return data;\n }\n // Use indirect constructor to bypass restrictive type definitions in some environments\n const BlobCtor = Blob as { new (parts: unknown[]): Blob };\n if (data instanceof ArrayBuffer) {\n return new BlobCtor([data]);\n } else {\n const ab = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n return new BlobCtor([ab]);\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import type { NodeBuffer } from "@azure/core-rest-pipeline";
2
+ /**
3
+ * Checks whether a value is a Node.js Buffer.
4
+ */
5
+ export declare function isBuffer(value: unknown): value is NodeBuffer;
6
+ /**
7
+ * Allocates a new zero-filled Buffer of the given size.
8
+ */
9
+ export declare function allocBuffer(size: number): NodeBuffer;
10
+ /**
11
+ * Creates a Buffer from an ArrayBuffer, with optional offset and length.
12
+ */
13
+ export declare function bufferFromArrayBuffer(ab: ArrayBuffer, byteOffset?: number, length?: number): NodeBuffer;
14
+ /**
15
+ * Returns the byte length of a buffer.
16
+ */
17
+ export declare function getBufferLength(buffer: NodeBuffer): number;
18
+ //# sourceMappingURL=bufferHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferHelpers.d.ts","sourceRoot":"","sources":["../../src/bufferHelpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,27 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Checks whether a value is a Node.js Buffer.
5
+ */
6
+ export function isBuffer(value) {
7
+ return Buffer.isBuffer(value);
8
+ }
9
+ /**
10
+ * Allocates a new zero-filled Buffer of the given size.
11
+ */
12
+ export function allocBuffer(size) {
13
+ return Buffer.alloc(size);
14
+ }
15
+ /**
16
+ * Creates a Buffer from an ArrayBuffer, with optional offset and length.
17
+ */
18
+ export function bufferFromArrayBuffer(ab, byteOffset, length) {
19
+ return Buffer.from(ab, byteOffset, length);
20
+ }
21
+ /**
22
+ * Returns the byte length of a buffer.
23
+ */
24
+ export function getBufferLength(buffer) {
25
+ return buffer.length;
26
+ }
27
+ //# sourceMappingURL=bufferHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferHelpers.js","sourceRoot":"","sources":["../../src/bufferHelpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAe,EACf,UAAmB,EACnB,MAAe;IAEf,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NodeBuffer } from \"@azure/core-rest-pipeline\";\n\n/**\n * Checks whether a value is a Node.js Buffer.\n */\nexport function isBuffer(value: unknown): value is NodeBuffer {\n return Buffer.isBuffer(value);\n}\n\n/**\n * Allocates a new zero-filled Buffer of the given size.\n */\nexport function allocBuffer(size: number): NodeBuffer {\n return Buffer.alloc(size);\n}\n\n/**\n * Creates a Buffer from an ArrayBuffer, with optional offset and length.\n */\nexport function bufferFromArrayBuffer(\n ab: ArrayBuffer,\n byteOffset?: number,\n length?: number,\n): NodeBuffer {\n return Buffer.from(ab, byteOffset, length);\n}\n\n/**\n * Returns the byte length of a buffer.\n */\nexport function getBufferLength(buffer: NodeBuffer): number {\n return buffer.length;\n}\n"]}
package/dist/esm/crc64.js CHANGED
@@ -1,6 +1,30 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
 
4
+ // ESM-COMPAT-START (this block is stripped from dist/commonjs by copyJSFiles.cjs)
5
+ // In ESM under Node, `require`, `__filename`, and `__dirname` are not defined.
6
+ // Synthesize them from `import.meta.url` so the Emscripten Node branch below works as-is.
7
+ // Specifiers are held in variables to prevent web bundlers from statically resolving `node:*`.
8
+ // The detection check below MUST stay byte-for-byte identical to the Emscripten-generated
9
+ // `ENVIRONMENT_IS_NODE` check later in this file; otherwise the polyfill and the Node branch
10
+ // can disagree and the ESM `ReferenceError: require is not defined` bug returns.
11
+ import { createRequire } from "node:module";
12
+ import { dirname } from "node:path";
13
+ import { fileURLToPath } from "node:url";
14
+ const __isNode__ =
15
+ typeof process === "object" &&
16
+ typeof process.versions === "object" &&
17
+ typeof process.versions.node === "string";
18
+ let require;
19
+ let __filename;
20
+ let __dirname;
21
+ if (__isNode__) {
22
+ require = createRequire(import.meta.url);
23
+ __filename = fileURLToPath(import.meta.url);
24
+ __dirname = dirname(__filename);
25
+ }
26
+ // ESM-COMPAT-END
27
+
4
28
  var NativeCRC64 = (() => {
5
29
  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
6
30
  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
@@ -2925,4 +2949,6 @@ Crc64Hash.prototype['OnFinal'] = Crc64Hash.prototype.OnFinal = /** @suppress {un
2925
2949
  // else if (typeof exports === 'object')
2926
2950
  // exports["NativeCRC64"] = NativeCRC64;
2927
2951
 
2928
- export default NativeCRC64;
2952
+ // ESM-EXPORT-START (rewritten to `module.exports = NativeCRC64;` in dist/commonjs by copyJSFiles.cjs)
2953
+ export default NativeCRC64;
2954
+ // ESM-EXPORT-END
@@ -0,0 +1,38 @@
1
+ /**
2
+ * A user delegation key.
3
+ */
4
+ export interface UserDelegationKey {
5
+ /**
6
+ * The Azure Active Directory object ID in GUID format.
7
+ */
8
+ signedObjectId: string;
9
+ /**
10
+ * The Azure Active Directory tenant ID in GUID format.
11
+ */
12
+ signedTenantId: string;
13
+ /**
14
+ * The date-time the key is active.
15
+ */
16
+ signedStartsOn: Date;
17
+ /**
18
+ * The date-time the key expires.
19
+ */
20
+ signedExpiresOn: Date;
21
+ /**
22
+ * Abbreviation of the Azure Storage service that accepts the key.
23
+ */
24
+ signedService: string;
25
+ /**
26
+ * The service version that created the key.
27
+ */
28
+ signedVersion: string;
29
+ /**
30
+ * The delegated user tenant id in Azure AD. Return if DelegatedUserTenantId is specified.
31
+ */
32
+ signedDelegatedUserTenantId?: string;
33
+ /**
34
+ * The key as a base64 string.
35
+ */
36
+ value: string;
37
+ }
38
+ //# sourceMappingURL=UserDelegationKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDelegationKey.d.ts","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKey.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,IAAI,CAAC;IACrB;;OAEG;IACH,eAAe,EAAE,IAAI,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  export {};
4
- //# sourceMappingURL=interfaces.js.map
4
+ //# sourceMappingURL=UserDelegationKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDelegationKey.js","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKey.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * A user delegation key.\n */\nexport interface UserDelegationKey {\n /**\n * The Azure Active Directory object ID in GUID format.\n */\n signedObjectId: string;\n /**\n * The Azure Active Directory tenant ID in GUID format.\n */\n signedTenantId: string;\n /**\n * The date-time the key is active.\n */\n signedStartsOn: Date;\n /**\n * The date-time the key expires.\n */\n signedExpiresOn: Date;\n /**\n * Abbreviation of the Azure Storage service that accepts the key.\n */\n signedService: string;\n /**\n * The service version that created the key.\n */\n signedVersion: string;\n /**\n * The delegated user tenant id in Azure AD. Return if DelegatedUserTenantId is specified.\n */\n signedDelegatedUserTenantId?: string;\n /**\n * The key as a base64 string.\n */\n value: string;\n}\n"]}
@@ -1,40 +1,4 @@
1
- /**
2
- * A user delegation key.
3
- */
4
- export interface UserDelegationKey {
5
- /**
6
- * The Azure Active Directory object ID in GUID format.
7
- */
8
- signedObjectId: string;
9
- /**
10
- * The Azure Active Directory tenant ID in GUID format.
11
- */
12
- signedTenantId: string;
13
- /**
14
- * The date-time the key is active.
15
- */
16
- signedStartsOn: Date;
17
- /**
18
- * The date-time the key expires.
19
- */
20
- signedExpiresOn: Date;
21
- /**
22
- * Abbreviation of the Azure Storage service that accepts the key.
23
- */
24
- signedService: string;
25
- /**
26
- * The service version that created the key.
27
- */
28
- signedVersion: string;
29
- /**
30
- * The delegated user tenant id in Azure AD. Return if DelegatedUserTenantId is specified.
31
- */
32
- signedDelegatedUserTenantId: string | undefined;
33
- /**
34
- * The key as a base64 string.
35
- */
36
- value: string;
37
- }
1
+ import type { UserDelegationKey } from "./UserDelegationKey.js";
38
2
  /**
39
3
  * ONLY AVAILABLE IN NODE.JS RUNTIME.
40
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"UserDelegationKeyCredential.d.ts","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKeyCredential.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,IAAI,CAAC;IACrB;;OAEG;IACH,eAAe,EAAE,IAAI,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,2BAA2B,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC;;OAEG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IAErD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAMrE;;;;OAIG;IACI,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAKvD"}
1
+ {"version":3,"file":"UserDelegationKeyCredential.d.ts","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKeyCredential.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC;;OAEG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IAErD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAMrE;;;;OAIG;IACI,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAGvD"}
@@ -36,7 +36,6 @@ export class UserDelegationKeyCredential {
36
36
  * @param stringToSign -
37
37
  */
38
38
  computeHMACSHA256(stringToSign) {
39
- // console.log(`stringToSign: ${JSON.stringify(stringToSign)}`);
40
39
  return createHmac("sha256", this.key).update(stringToSign, "utf8").digest("base64");
41
40
  }
42
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UserDelegationKeyCredential.js","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKeyCredential.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAwCzC;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACtC;;OAEG;IACa,WAAW,CAAS;IAEpC;;OAEG;IACa,iBAAiB,CAAoB;IAErD;;OAEG;IACc,GAAG,CAAS;IAE7B;;;;OAIG;IACH,YAAY,WAAmB,EAAE,iBAAoC;QACnE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,YAAoB;QAC3C,gEAAgE;QAEhE,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\n\n/**\n * A user delegation key.\n */\nexport interface UserDelegationKey {\n /**\n * The Azure Active Directory object ID in GUID format.\n */\n signedObjectId: string;\n /**\n * The Azure Active Directory tenant ID in GUID format.\n */\n signedTenantId: string;\n /**\n * The date-time the key is active.\n */\n signedStartsOn: Date;\n /**\n * The date-time the key expires.\n */\n signedExpiresOn: Date;\n /**\n * Abbreviation of the Azure Storage service that accepts the key.\n */\n signedService: string;\n /**\n * The service version that created the key.\n */\n signedVersion: string;\n /**\n * The delegated user tenant id in Azure AD. Return if DelegatedUserTenantId is specified.\n */\n signedDelegatedUserTenantId: string | undefined;\n /**\n * The key as a base64 string.\n */\n value: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * UserDelegationKeyCredential is only used for generation of user delegation SAS.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-user-delegation-sas\n */\nexport class UserDelegationKeyCredential {\n /**\n * Azure Storage account name; readonly.\n */\n public readonly accountName: string;\n\n /**\n * Azure Storage user delegation key; readonly.\n */\n public readonly userDelegationKey: UserDelegationKey;\n\n /**\n * Key value in Buffer type.\n */\n private readonly key: Buffer;\n\n /**\n * Creates an instance of UserDelegationKeyCredential.\n * @param accountName -\n * @param userDelegationKey -\n */\n constructor(accountName: string, userDelegationKey: UserDelegationKey) {\n this.accountName = accountName;\n this.userDelegationKey = userDelegationKey;\n this.key = Buffer.from(userDelegationKey.value, \"base64\");\n }\n\n /**\n * Generates a hash signature for an HTTP request or for a SAS.\n *\n * @param stringToSign -\n */\n public computeHMACSHA256(stringToSign: string): string {\n // console.log(`stringToSign: ${JSON.stringify(stringToSign)}`);\n\n return createHmac(\"sha256\", this.key).update(stringToSign, \"utf8\").digest(\"base64\");\n }\n}\n"]}
1
+ {"version":3,"file":"UserDelegationKeyCredential.js","sourceRoot":"","sources":["../../../src/credentials/UserDelegationKeyCredential.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACtC;;OAEG;IACa,WAAW,CAAS;IAEpC;;OAEG;IACa,iBAAiB,CAAoB;IAErD;;OAEG;IACc,GAAG,CAAS;IAE7B;;;;OAIG;IACH,YAAY,WAAmB,EAAE,iBAAoC;QACnE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,YAAoB;QAC3C,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\nimport type { UserDelegationKey } from \"./UserDelegationKey.js\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * UserDelegationKeyCredential is only used for generation of user delegation SAS.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-user-delegation-sas\n */\nexport class UserDelegationKeyCredential {\n /**\n * Azure Storage account name; readonly.\n */\n public readonly accountName: string;\n\n /**\n * Azure Storage user delegation key; readonly.\n */\n public readonly userDelegationKey: UserDelegationKey;\n\n /**\n * Key value in Buffer type.\n */\n private readonly key: Buffer;\n\n /**\n * Creates an instance of UserDelegationKeyCredential.\n * @param accountName -\n * @param userDelegationKey -\n */\n constructor(accountName: string, userDelegationKey: UserDelegationKey) {\n this.accountName = accountName;\n this.userDelegationKey = userDelegationKey;\n this.key = Buffer.from(userDelegationKey.value, \"base64\");\n }\n\n /**\n * Generates a hash signature for an HTTP request or for a SAS.\n *\n * @param stringToSign -\n */\n public computeHMACSHA256(stringToSign: string): string {\n return createHmac(\"sha256\", this.key).update(stringToSign, \"utf8\").digest(\"base64\");\n }\n}\n"]}
@@ -1,22 +1,2 @@
1
- export * from "./BufferScheduler.js";
2
- export * from "./StructuredMessageEncodingStream.js";
3
- export * from "./StructuredMessageDecodingStream.js";
4
- export * from "./StorageCRC64Calculator.js";
5
- export { getCachedDefaultHttpClient } from "./cache.js";
6
- export type * from "./interfaces.js";
7
- export * from "./StorageBrowserPolicyFactory.js";
8
- export * from "./credentials/AnonymousCredential.js";
9
- export * from "./credentials/Credential.js";
10
- export * from "./credentials/StorageSharedKeyCredential.js";
11
- export * from "./StorageRetryPolicyFactory.js";
12
- export { BaseRequestPolicy } from "./policies/RequestPolicy.js";
13
- export * from "./policies/AnonymousCredentialPolicy.js";
14
- export * from "./policies/CredentialPolicy.js";
15
- export * from "./policies/StorageBrowserPolicyV2.js";
16
- export * from "./policies/StorageCorrectContentLengthPolicy.js";
17
- export * from "./policies/StorageRetryPolicyV2.js";
18
- export * from "./policies/StorageSharedKeyCredentialPolicy.js";
19
- export * from "./policies/StorageSharedKeyCredentialPolicyV2.js";
20
- export * from "./policies/StorageRequestFailureDetailsParserPolicy.js";
21
- export * from "./credentials/UserDelegationKeyCredential.js";
1
+ export * from "./indexPlatform.js";
22
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,mBAAmB,iBAAiB,CAAC;AAErC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAE5D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,wDAAwD,CAAC;AACvE,cAAc,8CAA8C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC"}