@azure/storage-common 12.0.0-beta.2 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/BuffersStream.js +14 -0
- package/dist/browser/BuffersStream.js.map +1 -1
- package/dist/browser/PooledBuffer.js +13 -5
- package/dist/browser/PooledBuffer.js.map +1 -1
- package/dist/browser/StorageBrowserPolicyFactory.d.ts +16 -0
- package/dist/browser/StorageBrowserPolicyFactory.d.ts.map +1 -0
- package/dist/browser/StorageBrowserPolicyFactory.js +19 -0
- package/dist/browser/StorageBrowserPolicyFactory.js.map +1 -0
- package/dist/browser/StorageRetryPolicyFactory.d.ts +66 -0
- package/dist/browser/StorageRetryPolicyFactory.d.ts.map +1 -0
- package/dist/browser/StorageRetryPolicyFactory.js +28 -0
- package/dist/browser/StorageRetryPolicyFactory.js.map +1 -0
- package/dist/browser/credentials/AnonymousCredential.d.ts +19 -0
- package/dist/browser/credentials/AnonymousCredential.d.ts.map +1 -0
- package/dist/browser/credentials/AnonymousCredential.js +22 -0
- package/dist/browser/credentials/AnonymousCredential.js.map +1 -0
- package/dist/browser/credentials/Credential.d.ts +20 -0
- package/dist/browser/credentials/Credential.d.ts.map +1 -0
- package/dist/browser/credentials/Credential.js +18 -0
- package/dist/browser/credentials/Credential.js.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential-browser.d.mts.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential-browser.mjs.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential.d.ts +3 -0
- package/dist/browser/credentials/StorageSharedKeyCredential.js +5 -0
- package/dist/browser/index-browser.d.mts.map +1 -0
- package/dist/browser/index-browser.mjs.map +1 -0
- package/dist/browser/index.d.ts +17 -1
- package/dist/browser/index.js +17 -1
- package/dist/browser/log.d.ts +5 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/dist/browser/log.js +8 -0
- package/dist/browser/log.js.map +1 -0
- package/dist/browser/policies/AnonymousCredentialPolicy.d.ts +15 -0
- package/dist/browser/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
- package/dist/browser/policies/AnonymousCredentialPolicy.js +20 -0
- package/dist/browser/policies/AnonymousCredentialPolicy.js.map +1 -0
- package/dist/browser/policies/CredentialPolicy.d.ts +22 -0
- package/dist/browser/policies/CredentialPolicy.d.ts.map +1 -0
- package/dist/browser/policies/CredentialPolicy.js +29 -0
- package/dist/browser/policies/CredentialPolicy.js.map +1 -0
- package/dist/browser/policies/RequestPolicy.d.ts +45 -0
- package/dist/browser/policies/RequestPolicy.d.ts.map +1 -0
- package/dist/browser/policies/RequestPolicy.js +42 -0
- package/dist/browser/policies/RequestPolicy.js.map +1 -0
- package/dist/browser/policies/StorageBrowserPolicy.d.ts +28 -0
- package/dist/browser/policies/StorageBrowserPolicy.d.ts.map +1 -0
- package/dist/browser/policies/StorageBrowserPolicy.js +47 -0
- package/dist/browser/policies/StorageBrowserPolicy.js.map +1 -0
- package/dist/browser/policies/StorageBrowserPolicyV2.d.ts +11 -0
- package/dist/browser/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
- package/dist/browser/policies/StorageBrowserPolicyV2.js +31 -0
- package/dist/browser/policies/StorageBrowserPolicyV2.js.map +1 -0
- package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.d.mts.map +1 -0
- package/dist/browser/policies/StorageCorrectContentLengthPolicy-browser.mjs.map +1 -0
- package/dist/browser/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
- package/dist/browser/policies/StorageCorrectContentLengthPolicy.js +18 -0
- package/dist/browser/policies/StorageRetryPolicy.d.ts +62 -0
- package/dist/browser/policies/StorageRetryPolicy.d.ts.map +1 -0
- package/dist/browser/policies/StorageRetryPolicy.js +220 -0
- package/dist/browser/policies/StorageRetryPolicy.js.map +1 -0
- package/dist/browser/policies/StorageRetryPolicyType.d.ts +14 -0
- package/dist/browser/policies/StorageRetryPolicyType.d.ts.map +1 -0
- package/dist/browser/policies/StorageRetryPolicyType.js +17 -0
- package/dist/browser/policies/StorageRetryPolicyType.js.map +1 -0
- package/dist/browser/policies/StorageRetryPolicyV2.d.ts +11 -0
- package/dist/browser/policies/StorageRetryPolicyV2.d.ts.map +1 -0
- package/dist/browser/policies/StorageRetryPolicyV2.js +165 -0
- package/dist/browser/policies/StorageRetryPolicyV2.js.map +1 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js +145 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.d.mts.map +1 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2-browser.mjs.map +1 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
- package/dist/browser/policies/StorageSharedKeyCredentialPolicyV2.js +18 -0
- package/dist/browser/utils/SharedKeyComparator.d.ts +2 -0
- package/dist/browser/utils/SharedKeyComparator.d.ts.map +1 -0
- package/dist/browser/utils/SharedKeyComparator.js +73 -0
- package/dist/browser/utils/SharedKeyComparator.js.map +1 -0
- package/dist/browser/utils/constants.d.ts +39 -0
- package/dist/browser/utils/constants.d.ts.map +1 -0
- package/dist/browser/utils/constants.js +64 -0
- package/dist/browser/utils/constants.js.map +1 -0
- package/dist/browser/utils/tracing.d.ts +6 -0
- package/dist/browser/utils/tracing.d.ts.map +1 -0
- package/dist/browser/utils/tracing.js +14 -0
- package/dist/browser/utils/tracing.js.map +1 -0
- package/dist/browser/utils/utils.common.d.ts +305 -0
- package/dist/browser/utils/utils.common.d.ts.map +1 -0
- package/dist/browser/utils/utils.common.js +544 -0
- package/dist/browser/utils/utils.common.js.map +1 -0
- package/dist/commonjs/BufferScheduler.js +70 -44
- package/dist/commonjs/BufferScheduler.js.map +1 -1
- package/dist/commonjs/BuffersStream.js +14 -0
- package/dist/commonjs/BuffersStream.js.map +1 -1
- package/dist/commonjs/PooledBuffer.js +13 -5
- package/dist/commonjs/PooledBuffer.js.map +1 -1
- package/dist/commonjs/StorageBrowserPolicyFactory.d.ts +16 -0
- package/dist/commonjs/StorageBrowserPolicyFactory.d.ts.map +1 -0
- package/dist/commonjs/StorageBrowserPolicyFactory.js +23 -0
- package/dist/commonjs/StorageBrowserPolicyFactory.js.map +1 -0
- package/dist/commonjs/StorageRetryPolicyFactory.d.ts +66 -0
- package/dist/commonjs/StorageRetryPolicyFactory.d.ts.map +1 -0
- package/dist/commonjs/StorageRetryPolicyFactory.js +33 -0
- package/dist/commonjs/StorageRetryPolicyFactory.js.map +1 -0
- package/dist/commonjs/credentials/AnonymousCredential.d.ts +19 -0
- package/dist/commonjs/credentials/AnonymousCredential.d.ts.map +1 -0
- package/dist/commonjs/credentials/AnonymousCredential.js +26 -0
- package/dist/commonjs/credentials/AnonymousCredential.js.map +1 -0
- package/dist/commonjs/credentials/Credential.d.ts +20 -0
- package/dist/commonjs/credentials/Credential.d.ts.map +1 -0
- package/dist/commonjs/credentials/Credential.js +22 -0
- package/dist/commonjs/credentials/Credential.js.map +1 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts +38 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js +52 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/commonjs/index.d.ts +17 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +19 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/log.d.ts +5 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +11 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts +15 -0
- package/dist/commonjs/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/AnonymousCredentialPolicy.js +24 -0
- package/dist/commonjs/policies/AnonymousCredentialPolicy.js.map +1 -0
- package/dist/commonjs/policies/CredentialPolicy.d.ts +22 -0
- package/dist/commonjs/policies/CredentialPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/CredentialPolicy.js +33 -0
- package/dist/commonjs/policies/CredentialPolicy.js.map +1 -0
- package/dist/commonjs/policies/RequestPolicy.d.ts +45 -0
- package/dist/commonjs/policies/RequestPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/RequestPolicy.js +46 -0
- package/dist/commonjs/policies/RequestPolicy.js.map +1 -0
- package/dist/commonjs/policies/StorageBrowserPolicy.d.ts +28 -0
- package/dist/commonjs/policies/StorageBrowserPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageBrowserPolicy.js +51 -0
- package/dist/commonjs/policies/StorageBrowserPolicy.js.map +1 -0
- package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts +11 -0
- package/dist/commonjs/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageBrowserPolicyV2.js +35 -0
- package/dist/commonjs/policies/StorageBrowserPolicyV2.js.map +1 -0
- package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
- package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js +31 -0
- package/dist/commonjs/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicy.d.ts +62 -0
- package/dist/commonjs/policies/StorageRetryPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicy.js +225 -0
- package/dist/commonjs/policies/StorageRetryPolicy.js.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicyType.d.ts +14 -0
- package/dist/commonjs/policies/StorageRetryPolicyType.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicyType.js +20 -0
- package/dist/commonjs/policies/StorageRetryPolicyType.js.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts +11 -0
- package/dist/commonjs/policies/StorageRetryPolicyV2.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageRetryPolicyV2.js +169 -0
- package/dist/commonjs/policies/StorageRetryPolicyV2.js.map +1 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js +149 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js +136 -0
- package/dist/commonjs/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/utils/SharedKeyComparator.d.ts +2 -0
- package/dist/commonjs/utils/SharedKeyComparator.d.ts.map +1 -0
- package/dist/commonjs/utils/SharedKeyComparator.js +76 -0
- package/dist/commonjs/utils/SharedKeyComparator.js.map +1 -0
- package/dist/commonjs/utils/constants.d.ts +39 -0
- package/dist/commonjs/utils/constants.d.ts.map +1 -0
- package/dist/commonjs/utils/constants.js +67 -0
- package/dist/commonjs/utils/constants.js.map +1 -0
- package/dist/commonjs/utils/tracing.d.ts +6 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -0
- package/dist/commonjs/utils/tracing.js +17 -0
- package/dist/commonjs/utils/tracing.js.map +1 -0
- package/dist/commonjs/utils/utils.common.d.ts +305 -0
- package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.common.js +573 -0
- package/dist/commonjs/utils/utils.common.js.map +1 -0
- package/dist/esm/BufferScheduler.js +70 -44
- package/dist/esm/BufferScheduler.js.map +1 -1
- package/dist/esm/BuffersStream.js +14 -0
- package/dist/esm/BuffersStream.js.map +1 -1
- package/dist/esm/PooledBuffer.js +13 -5
- package/dist/esm/PooledBuffer.js.map +1 -1
- package/dist/esm/StorageBrowserPolicyFactory.d.ts +16 -0
- package/dist/esm/StorageBrowserPolicyFactory.d.ts.map +1 -0
- package/dist/esm/StorageBrowserPolicyFactory.js +19 -0
- package/dist/esm/StorageBrowserPolicyFactory.js.map +1 -0
- package/dist/esm/StorageRetryPolicyFactory.d.ts +66 -0
- package/dist/esm/StorageRetryPolicyFactory.d.ts.map +1 -0
- package/dist/esm/StorageRetryPolicyFactory.js +28 -0
- package/dist/esm/StorageRetryPolicyFactory.js.map +1 -0
- package/dist/esm/credentials/AnonymousCredential.d.ts +19 -0
- package/dist/esm/credentials/AnonymousCredential.d.ts.map +1 -0
- package/dist/esm/credentials/AnonymousCredential.js +22 -0
- package/dist/esm/credentials/AnonymousCredential.js.map +1 -0
- package/dist/esm/credentials/Credential.d.ts +20 -0
- package/dist/esm/credentials/Credential.d.ts.map +1 -0
- package/dist/esm/credentials/Credential.js +18 -0
- package/dist/esm/credentials/Credential.js.map +1 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts +38 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.js +48 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/esm/index.d.ts +17 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/log.d.ts +5 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/dist/esm/log.js +8 -0
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/policies/AnonymousCredentialPolicy.d.ts +15 -0
- package/dist/esm/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
- package/dist/esm/policies/AnonymousCredentialPolicy.js +20 -0
- package/dist/esm/policies/AnonymousCredentialPolicy.js.map +1 -0
- package/dist/esm/policies/CredentialPolicy.d.ts +22 -0
- package/dist/esm/policies/CredentialPolicy.d.ts.map +1 -0
- package/dist/esm/policies/CredentialPolicy.js +29 -0
- package/dist/esm/policies/CredentialPolicy.js.map +1 -0
- package/dist/esm/policies/RequestPolicy.d.ts +45 -0
- package/dist/esm/policies/RequestPolicy.d.ts.map +1 -0
- package/dist/esm/policies/RequestPolicy.js +42 -0
- package/dist/esm/policies/RequestPolicy.js.map +1 -0
- package/dist/esm/policies/StorageBrowserPolicy.d.ts +28 -0
- package/dist/esm/policies/StorageBrowserPolicy.d.ts.map +1 -0
- package/dist/esm/policies/StorageBrowserPolicy.js +47 -0
- package/dist/esm/policies/StorageBrowserPolicy.js.map +1 -0
- package/dist/esm/policies/StorageBrowserPolicyV2.d.ts +11 -0
- package/dist/esm/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
- package/dist/esm/policies/StorageBrowserPolicyV2.js +31 -0
- package/dist/esm/policies/StorageBrowserPolicyV2.js.map +1 -0
- package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
- package/dist/esm/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
- package/dist/esm/policies/StorageCorrectContentLengthPolicy.js +27 -0
- package/dist/esm/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
- package/dist/esm/policies/StorageRetryPolicy.d.ts +62 -0
- package/dist/esm/policies/StorageRetryPolicy.d.ts.map +1 -0
- package/dist/esm/policies/StorageRetryPolicy.js +220 -0
- package/dist/esm/policies/StorageRetryPolicy.js.map +1 -0
- package/dist/esm/policies/StorageRetryPolicyType.d.ts +14 -0
- package/dist/esm/policies/StorageRetryPolicyType.d.ts.map +1 -0
- package/dist/esm/policies/StorageRetryPolicyType.js +17 -0
- package/dist/esm/policies/StorageRetryPolicyType.js.map +1 -0
- package/dist/esm/policies/StorageRetryPolicyV2.d.ts +11 -0
- package/dist/esm/policies/StorageRetryPolicyV2.d.ts.map +1 -0
- package/dist/esm/policies/StorageRetryPolicyV2.js +165 -0
- package/dist/esm/policies/StorageRetryPolicyV2.js.map +1 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js +145 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js +132 -0
- package/dist/esm/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
- package/dist/esm/utils/SharedKeyComparator.d.ts +2 -0
- package/dist/esm/utils/SharedKeyComparator.d.ts.map +1 -0
- package/dist/esm/utils/SharedKeyComparator.js +73 -0
- package/dist/esm/utils/SharedKeyComparator.js.map +1 -0
- package/dist/esm/utils/constants.d.ts +39 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +64 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/tracing.d.ts +6 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -0
- package/dist/esm/utils/tracing.js +14 -0
- package/dist/esm/utils/tracing.js.map +1 -0
- package/dist/esm/utils/utils.common.d.ts +305 -0
- package/dist/esm/utils/utils.common.d.ts.map +1 -0
- package/dist/esm/utils/utils.common.js +544 -0
- package/dist/esm/utils/utils.common.js.map +1 -0
- package/dist/react-native/BufferScheduler.js +70 -44
- package/dist/react-native/BufferScheduler.js.map +1 -1
- package/dist/react-native/BuffersStream.js +14 -0
- package/dist/react-native/BuffersStream.js.map +1 -1
- package/dist/react-native/PooledBuffer.js +13 -5
- package/dist/react-native/PooledBuffer.js.map +1 -1
- package/dist/react-native/StorageBrowserPolicyFactory.d.ts +16 -0
- package/dist/react-native/StorageBrowserPolicyFactory.d.ts.map +1 -0
- package/dist/react-native/StorageBrowserPolicyFactory.js +19 -0
- package/dist/react-native/StorageBrowserPolicyFactory.js.map +1 -0
- package/dist/react-native/StorageRetryPolicyFactory.d.ts +66 -0
- package/dist/react-native/StorageRetryPolicyFactory.d.ts.map +1 -0
- package/dist/react-native/StorageRetryPolicyFactory.js +28 -0
- package/dist/react-native/StorageRetryPolicyFactory.js.map +1 -0
- package/dist/react-native/credentials/AnonymousCredential.d.ts +19 -0
- package/dist/react-native/credentials/AnonymousCredential.d.ts.map +1 -0
- package/dist/react-native/credentials/AnonymousCredential.js +22 -0
- package/dist/react-native/credentials/AnonymousCredential.js.map +1 -0
- package/dist/react-native/credentials/Credential.d.ts +20 -0
- package/dist/react-native/credentials/Credential.d.ts.map +1 -0
- package/dist/react-native/credentials/Credential.js +18 -0
- package/dist/react-native/credentials/Credential.js.map +1 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts +38 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.js +48 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/react-native/index.d.ts +17 -0
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +17 -0
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/log.d.ts +5 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +8 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts +15 -0
- package/dist/react-native/policies/AnonymousCredentialPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/AnonymousCredentialPolicy.js +20 -0
- package/dist/react-native/policies/AnonymousCredentialPolicy.js.map +1 -0
- package/dist/react-native/policies/CredentialPolicy.d.ts +22 -0
- package/dist/react-native/policies/CredentialPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/CredentialPolicy.js +29 -0
- package/dist/react-native/policies/CredentialPolicy.js.map +1 -0
- package/dist/react-native/policies/RequestPolicy.d.ts +45 -0
- package/dist/react-native/policies/RequestPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/RequestPolicy.js +42 -0
- package/dist/react-native/policies/RequestPolicy.js.map +1 -0
- package/dist/react-native/policies/StorageBrowserPolicy.d.ts +28 -0
- package/dist/react-native/policies/StorageBrowserPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/StorageBrowserPolicy.js +47 -0
- package/dist/react-native/policies/StorageBrowserPolicy.js.map +1 -0
- package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts +11 -0
- package/dist/react-native/policies/StorageBrowserPolicyV2.d.ts.map +1 -0
- package/dist/react-native/policies/StorageBrowserPolicyV2.js +31 -0
- package/dist/react-native/policies/StorageBrowserPolicyV2.js.map +1 -0
- package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts +10 -0
- package/dist/react-native/policies/StorageCorrectContentLengthPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js +27 -0
- package/dist/react-native/policies/StorageCorrectContentLengthPolicy.js.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicy.d.ts +62 -0
- package/dist/react-native/policies/StorageRetryPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicy.js +220 -0
- package/dist/react-native/policies/StorageRetryPolicy.js.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicyType.d.ts +14 -0
- package/dist/react-native/policies/StorageRetryPolicyType.d.ts.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicyType.js +17 -0
- package/dist/react-native/policies/StorageRetryPolicyType.js.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicyV2.d.ts +11 -0
- package/dist/react-native/policies/StorageRetryPolicyV2.d.ts.map +1 -0
- package/dist/react-native/policies/StorageRetryPolicyV2.js +165 -0
- package/dist/react-native/policies/StorageRetryPolicyV2.js.map +1 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts +54 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.d.ts.map +1 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js +145 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicy.js.map +1 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts +17 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.d.ts.map +1 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js +132 -0
- package/dist/react-native/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -0
- package/dist/react-native/utils/SharedKeyComparator.d.ts +2 -0
- package/dist/react-native/utils/SharedKeyComparator.d.ts.map +1 -0
- package/dist/react-native/utils/SharedKeyComparator.js +73 -0
- package/dist/react-native/utils/SharedKeyComparator.js.map +1 -0
- package/dist/react-native/utils/constants.d.ts +39 -0
- package/dist/react-native/utils/constants.d.ts.map +1 -0
- package/dist/react-native/utils/constants.js +64 -0
- package/dist/react-native/utils/constants.js.map +1 -0
- package/dist/react-native/utils/tracing.d.ts +6 -0
- package/dist/react-native/utils/tracing.d.ts.map +1 -0
- package/dist/react-native/utils/tracing.js +14 -0
- package/dist/react-native/utils/tracing.js.map +1 -0
- package/dist/react-native/utils/utils.common.d.ts +305 -0
- package/dist/react-native/utils/utils.common.d.ts.map +1 -0
- package/dist/react-native/utils/utils.common.js +544 -0
- package/dist/react-native/utils/utils.common.js.map +1 -0
- package/package.json +12 -6
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js.map +0 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { HeaderConstants } from "../utils/constants.js";
|
|
4
|
+
import { getURLPath, getURLQueries } from "../utils/utils.common.js";
|
|
5
|
+
import { CredentialPolicy } from "./CredentialPolicy.js";
|
|
6
|
+
import { compareHeader } from "../utils/SharedKeyComparator.js";
|
|
7
|
+
/**
|
|
8
|
+
* StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.
|
|
9
|
+
*/
|
|
10
|
+
export class StorageSharedKeyCredentialPolicy extends CredentialPolicy {
|
|
11
|
+
/**
|
|
12
|
+
* Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy
|
|
13
|
+
*/
|
|
14
|
+
factory;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an instance of StorageSharedKeyCredentialPolicy.
|
|
17
|
+
* @param nextPolicy -
|
|
18
|
+
* @param options -
|
|
19
|
+
* @param factory -
|
|
20
|
+
*/
|
|
21
|
+
constructor(nextPolicy, options, factory) {
|
|
22
|
+
super(nextPolicy, options);
|
|
23
|
+
this.factory = factory;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Signs request.
|
|
27
|
+
*
|
|
28
|
+
* @param request -
|
|
29
|
+
*/
|
|
30
|
+
signRequest(request) {
|
|
31
|
+
request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());
|
|
32
|
+
if (request.body &&
|
|
33
|
+
(typeof request.body === "string" || request.body !== undefined) &&
|
|
34
|
+
request.body.length > 0) {
|
|
35
|
+
request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
|
|
36
|
+
}
|
|
37
|
+
const stringToSign = [
|
|
38
|
+
request.method.toUpperCase(),
|
|
39
|
+
this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),
|
|
40
|
+
this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),
|
|
41
|
+
this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),
|
|
42
|
+
this.getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),
|
|
43
|
+
this.getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),
|
|
44
|
+
this.getHeaderValueToSign(request, HeaderConstants.DATE),
|
|
45
|
+
this.getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),
|
|
46
|
+
this.getHeaderValueToSign(request, HeaderConstants.IF_MATCH),
|
|
47
|
+
this.getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),
|
|
48
|
+
this.getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),
|
|
49
|
+
this.getHeaderValueToSign(request, HeaderConstants.RANGE),
|
|
50
|
+
].join("\n") +
|
|
51
|
+
"\n" +
|
|
52
|
+
this.getCanonicalizedHeadersString(request) +
|
|
53
|
+
this.getCanonicalizedResourceString(request);
|
|
54
|
+
const signature = this.factory.computeHMACSHA256(stringToSign);
|
|
55
|
+
request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${this.factory.accountName}:${signature}`);
|
|
56
|
+
// console.log(`[URL]:${request.url}`);
|
|
57
|
+
// console.log(`[HEADERS]:${request.headers.toString()}`);
|
|
58
|
+
// console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
|
|
59
|
+
// console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
|
|
60
|
+
return request;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieve header value according to shared key sign rules.
|
|
64
|
+
* @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
|
|
65
|
+
*
|
|
66
|
+
* @param request -
|
|
67
|
+
* @param headerName -
|
|
68
|
+
*/
|
|
69
|
+
getHeaderValueToSign(request, headerName) {
|
|
70
|
+
const value = request.headers.get(headerName);
|
|
71
|
+
if (!value) {
|
|
72
|
+
return "";
|
|
73
|
+
}
|
|
74
|
+
// When using version 2015-02-21 or later, if Content-Length is zero, then
|
|
75
|
+
// set the Content-Length part of the StringToSign to an empty string.
|
|
76
|
+
// https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
|
|
77
|
+
if (headerName === HeaderConstants.CONTENT_LENGTH && value === "0") {
|
|
78
|
+
return "";
|
|
79
|
+
}
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
|
|
84
|
+
* 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
|
|
85
|
+
* 2. Convert each HTTP header name to lowercase.
|
|
86
|
+
* 3. Sort the headers lexicographically by header name, in ascending order.
|
|
87
|
+
* Each header may appear only once in the string.
|
|
88
|
+
* 4. Replace any linear whitespace in the header value with a single space.
|
|
89
|
+
* 5. Trim any whitespace around the colon in the header.
|
|
90
|
+
* 6. Finally, append a new-line character to each canonicalized header in the resulting list.
|
|
91
|
+
* Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
|
|
92
|
+
*
|
|
93
|
+
* @param request -
|
|
94
|
+
*/
|
|
95
|
+
getCanonicalizedHeadersString(request) {
|
|
96
|
+
let headersArray = request.headers.headersArray().filter((value) => {
|
|
97
|
+
return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE);
|
|
98
|
+
});
|
|
99
|
+
headersArray.sort((a, b) => {
|
|
100
|
+
return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());
|
|
101
|
+
});
|
|
102
|
+
// Remove duplicate headers
|
|
103
|
+
headersArray = headersArray.filter((value, index, array) => {
|
|
104
|
+
if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
109
|
+
let canonicalizedHeadersStringToSign = "";
|
|
110
|
+
headersArray.forEach((header) => {
|
|
111
|
+
canonicalizedHeadersStringToSign += `${header.name
|
|
112
|
+
.toLowerCase()
|
|
113
|
+
.trimRight()}:${header.value.trimLeft()}\n`;
|
|
114
|
+
});
|
|
115
|
+
return canonicalizedHeadersStringToSign;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Retrieves the webResource canonicalized resource string.
|
|
119
|
+
*
|
|
120
|
+
* @param request -
|
|
121
|
+
*/
|
|
122
|
+
getCanonicalizedResourceString(request) {
|
|
123
|
+
const path = getURLPath(request.url) || "/";
|
|
124
|
+
let canonicalizedResourceString = "";
|
|
125
|
+
canonicalizedResourceString += `/${this.factory.accountName}${path}`;
|
|
126
|
+
const queries = getURLQueries(request.url);
|
|
127
|
+
const lowercaseQueries = {};
|
|
128
|
+
if (queries) {
|
|
129
|
+
const queryKeys = [];
|
|
130
|
+
for (const key in queries) {
|
|
131
|
+
if (Object.prototype.hasOwnProperty.call(queries, key)) {
|
|
132
|
+
const lowercaseKey = key.toLowerCase();
|
|
133
|
+
lowercaseQueries[lowercaseKey] = queries[key];
|
|
134
|
+
queryKeys.push(lowercaseKey);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
queryKeys.sort();
|
|
138
|
+
for (const key of queryKeys) {
|
|
139
|
+
canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return canonicalizedResourceString;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=StorageSharedKeyCredentialPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageSharedKeyCredentialPolicy.js","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n RequestPolicy,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n} from \"@azure/core-http-compat\";\nimport type { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential.js\";\nimport { HeaderConstants } from \"../utils/constants.js\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common.js\";\nimport { CredentialPolicy } from \"./CredentialPolicy.js\";\nimport { compareHeader } from \"../utils/SharedKeyComparator.js\";\n\n/**\n * StorageSharedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport class StorageSharedKeyCredentialPolicy extends CredentialPolicy {\n /**\n * Reference to StorageSharedKeyCredential which generates StorageSharedKeyCredentialPolicy\n */\n private readonly factory: StorageSharedKeyCredential;\n\n /**\n * Creates an instance of StorageSharedKeyCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n * @param factory -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n factory: StorageSharedKeyCredential,\n ) {\n super(nextPolicy, options);\n this.factory = factory;\n }\n\n /**\n * Signs request.\n *\n * @param request -\n */\n protected signRequest(request: WebResource): WebResource {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || (request.body as Buffer) !== undefined) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n this.getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n this.getHeaderValueToSign(request, HeaderConstants.DATE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n this.getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n this.getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n this.getCanonicalizedHeadersString(request) +\n this.getCanonicalizedResourceString(request);\n\n const signature: string = this.factory.computeHMACSHA256(stringToSign);\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${this.factory.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n return request;\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n *\n * @param request -\n * @param headerName -\n */\n private getHeaderValueToSign(request: WebResource, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n * @param request -\n */\n private getCanonicalizedHeadersString(request: WebResource): string {\n let headersArray = request.headers.headersArray().filter((value) => {\n return value.name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE);\n });\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n /**\n * Retrieves the webResource canonicalized resource string.\n *\n * @param request -\n */\n private getCanonicalizedResourceString(request: WebResource): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${this.factory.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PipelinePolicy } from "@azure/core-rest-pipeline";
|
|
2
|
+
/**
|
|
3
|
+
* The programmatic identifier of the storageSharedKeyCredentialPolicy.
|
|
4
|
+
*/
|
|
5
|
+
export declare const storageSharedKeyCredentialPolicyName = "storageSharedKeyCredentialPolicy";
|
|
6
|
+
/**
|
|
7
|
+
* Options used to configure StorageSharedKeyCredentialPolicy.
|
|
8
|
+
*/
|
|
9
|
+
export interface StorageSharedKeyCredentialPolicyOptions {
|
|
10
|
+
accountName: string;
|
|
11
|
+
accountKey: Buffer;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* storageSharedKeyCredentialPolicy handles signing requests using storage account keys.
|
|
15
|
+
*/
|
|
16
|
+
export declare function storageSharedKeyCredentialPolicy(options: StorageSharedKeyCredentialPolicyOptions): PipelinePolicy;
|
|
17
|
+
//# sourceMappingURL=StorageSharedKeyCredentialPolicyV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageSharedKeyCredentialPolicyV2.d.ts","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicyV2.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,2BAA2B,CAAC;AAKnC;;GAEG;AACH,eAAO,MAAM,oCAAoC,qCAAqC,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,cAAc,CA8IhB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { createHmac } from "node:crypto";
|
|
4
|
+
import { HeaderConstants } from "../utils/constants.js";
|
|
5
|
+
import { getURLPath, getURLQueries } from "../utils/utils.common.js";
|
|
6
|
+
import { compareHeader } from "../utils/SharedKeyComparator.js";
|
|
7
|
+
/**
|
|
8
|
+
* The programmatic identifier of the storageSharedKeyCredentialPolicy.
|
|
9
|
+
*/
|
|
10
|
+
export const storageSharedKeyCredentialPolicyName = "storageSharedKeyCredentialPolicy";
|
|
11
|
+
/**
|
|
12
|
+
* storageSharedKeyCredentialPolicy handles signing requests using storage account keys.
|
|
13
|
+
*/
|
|
14
|
+
export function storageSharedKeyCredentialPolicy(options) {
|
|
15
|
+
function signRequest(request) {
|
|
16
|
+
request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());
|
|
17
|
+
if (request.body &&
|
|
18
|
+
(typeof request.body === "string" || Buffer.isBuffer(request.body)) &&
|
|
19
|
+
request.body.length > 0) {
|
|
20
|
+
request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));
|
|
21
|
+
}
|
|
22
|
+
const stringToSign = [
|
|
23
|
+
request.method.toUpperCase(),
|
|
24
|
+
getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),
|
|
25
|
+
getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),
|
|
26
|
+
getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),
|
|
27
|
+
getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),
|
|
28
|
+
getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),
|
|
29
|
+
getHeaderValueToSign(request, HeaderConstants.DATE),
|
|
30
|
+
getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),
|
|
31
|
+
getHeaderValueToSign(request, HeaderConstants.IF_MATCH),
|
|
32
|
+
getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),
|
|
33
|
+
getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),
|
|
34
|
+
getHeaderValueToSign(request, HeaderConstants.RANGE),
|
|
35
|
+
].join("\n") +
|
|
36
|
+
"\n" +
|
|
37
|
+
getCanonicalizedHeadersString(request) +
|
|
38
|
+
getCanonicalizedResourceString(request);
|
|
39
|
+
const signature = createHmac("sha256", options.accountKey)
|
|
40
|
+
.update(stringToSign, "utf8")
|
|
41
|
+
.digest("base64");
|
|
42
|
+
request.headers.set(HeaderConstants.AUTHORIZATION, `SharedKey ${options.accountName}:${signature}`);
|
|
43
|
+
// console.log(`[URL]:${request.url}`);
|
|
44
|
+
// console.log(`[HEADERS]:${request.headers.toString()}`);
|
|
45
|
+
// console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);
|
|
46
|
+
// console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Retrieve header value according to shared key sign rules.
|
|
50
|
+
* @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
|
|
51
|
+
*/
|
|
52
|
+
function getHeaderValueToSign(request, headerName) {
|
|
53
|
+
const value = request.headers.get(headerName);
|
|
54
|
+
if (!value) {
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
// When using version 2015-02-21 or later, if Content-Length is zero, then
|
|
58
|
+
// set the Content-Length part of the StringToSign to an empty string.
|
|
59
|
+
// https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key
|
|
60
|
+
if (headerName === HeaderConstants.CONTENT_LENGTH && value === "0") {
|
|
61
|
+
return "";
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* To construct the CanonicalizedHeaders portion of the signature string, follow these steps:
|
|
67
|
+
* 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
|
|
68
|
+
* 2. Convert each HTTP header name to lowercase.
|
|
69
|
+
* 3. Sort the headers lexicographically by header name, in ascending order.
|
|
70
|
+
* Each header may appear only once in the string.
|
|
71
|
+
* 4. Replace any linear whitespace in the header value with a single space.
|
|
72
|
+
* 5. Trim any whitespace around the colon in the header.
|
|
73
|
+
* 6. Finally, append a new-line character to each canonicalized header in the resulting list.
|
|
74
|
+
* Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
function getCanonicalizedHeadersString(request) {
|
|
78
|
+
let headersArray = [];
|
|
79
|
+
for (const [name, value] of request.headers) {
|
|
80
|
+
if (name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE)) {
|
|
81
|
+
headersArray.push({ name, value });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
headersArray.sort((a, b) => {
|
|
85
|
+
return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());
|
|
86
|
+
});
|
|
87
|
+
// Remove duplicate headers
|
|
88
|
+
headersArray = headersArray.filter((value, index, array) => {
|
|
89
|
+
if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
});
|
|
94
|
+
let canonicalizedHeadersStringToSign = "";
|
|
95
|
+
headersArray.forEach((header) => {
|
|
96
|
+
canonicalizedHeadersStringToSign += `${header.name
|
|
97
|
+
.toLowerCase()
|
|
98
|
+
.trimRight()}:${header.value.trimLeft()}\n`;
|
|
99
|
+
});
|
|
100
|
+
return canonicalizedHeadersStringToSign;
|
|
101
|
+
}
|
|
102
|
+
function getCanonicalizedResourceString(request) {
|
|
103
|
+
const path = getURLPath(request.url) || "/";
|
|
104
|
+
let canonicalizedResourceString = "";
|
|
105
|
+
canonicalizedResourceString += `/${options.accountName}${path}`;
|
|
106
|
+
const queries = getURLQueries(request.url);
|
|
107
|
+
const lowercaseQueries = {};
|
|
108
|
+
if (queries) {
|
|
109
|
+
const queryKeys = [];
|
|
110
|
+
for (const key in queries) {
|
|
111
|
+
if (Object.prototype.hasOwnProperty.call(queries, key)) {
|
|
112
|
+
const lowercaseKey = key.toLowerCase();
|
|
113
|
+
lowercaseQueries[lowercaseKey] = queries[key];
|
|
114
|
+
queryKeys.push(lowercaseKey);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
queryKeys.sort();
|
|
118
|
+
for (const key of queryKeys) {
|
|
119
|
+
canonicalizedResourceString += `\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return canonicalizedResourceString;
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
name: storageSharedKeyCredentialPolicyName,
|
|
126
|
+
async sendRequest(request, next) {
|
|
127
|
+
signRequest(request);
|
|
128
|
+
return next(request);
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=StorageSharedKeyCredentialPolicyV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageSharedKeyCredentialPolicyV2.js","sourceRoot":"","sources":["../../../src/policies/StorageSharedKeyCredentialPolicyV2.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\nimport type {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"../utils/constants.js\";\nimport { getURLPath, getURLQueries } from \"../utils/utils.common.js\";\nimport { compareHeader } from \"../utils/SharedKeyComparator.js\";\n\n/**\n * The programmatic identifier of the storageSharedKeyCredentialPolicy.\n */\nexport const storageSharedKeyCredentialPolicyName = \"storageSharedKeyCredentialPolicy\";\n\n/**\n * Options used to configure StorageSharedKeyCredentialPolicy.\n */\nexport interface StorageSharedKeyCredentialPolicyOptions {\n accountName: string;\n accountKey: Buffer;\n}\n\n/**\n * storageSharedKeyCredentialPolicy handles signing requests using storage account keys.\n */\nexport function storageSharedKeyCredentialPolicy(\n options: StorageSharedKeyCredentialPolicyOptions,\n): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n\n if (\n request.body &&\n (typeof request.body === \"string\" || Buffer.isBuffer(request.body)) &&\n request.body.length > 0\n ) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n const stringToSign: string =\n [\n request.method.toUpperCase(),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LANGUAGE),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_ENCODING),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_LENGTH),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_MD5),\n getHeaderValueToSign(request, HeaderConstants.CONTENT_TYPE),\n getHeaderValueToSign(request, HeaderConstants.DATE),\n getHeaderValueToSign(request, HeaderConstants.IF_MODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.IF_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_NONE_MATCH),\n getHeaderValueToSign(request, HeaderConstants.IF_UNMODIFIED_SINCE),\n getHeaderValueToSign(request, HeaderConstants.RANGE),\n ].join(\"\\n\") +\n \"\\n\" +\n getCanonicalizedHeadersString(request) +\n getCanonicalizedResourceString(request);\n\n const signature: string = createHmac(\"sha256\", options.accountKey)\n .update(stringToSign, \"utf8\")\n .digest(\"base64\");\n request.headers.set(\n HeaderConstants.AUTHORIZATION,\n `SharedKey ${options.accountName}:${signature}`,\n );\n\n // console.log(`[URL]:${request.url}`);\n // console.log(`[HEADERS]:${request.headers.toString()}`);\n // console.log(`[STRING TO SIGN]:${JSON.stringify(stringToSign)}`);\n // console.log(`[KEY]: ${request.headers.get(HeaderConstants.AUTHORIZATION)}`);\n }\n\n /**\n * Retrieve header value according to shared key sign rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n */\n function getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n\n // When using version 2015-02-21 or later, if Content-Length is zero, then\n // set the Content-Length part of the StringToSign to an empty string.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/authenticate-with-shared-key\n if (headerName === HeaderConstants.CONTENT_LENGTH && value === \"0\") {\n return \"\";\n }\n\n return value;\n }\n\n /**\n * To construct the CanonicalizedHeaders portion of the signature string, follow these steps:\n * 1. Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.\n * 2. Convert each HTTP header name to lowercase.\n * 3. Sort the headers lexicographically by header name, in ascending order.\n * Each header may appear only once in the string.\n * 4. Replace any linear whitespace in the header value with a single space.\n * 5. Trim any whitespace around the colon in the header.\n * 6. Finally, append a new-line character to each canonicalized header in the resulting list.\n * Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.\n *\n */\n function getCanonicalizedHeadersString(request: PipelineRequest): string {\n let headersArray: Array<{ name: string; value: string }> = [];\n for (const [name, value] of request.headers) {\n if (name.toLowerCase().startsWith(HeaderConstants.PREFIX_FOR_STORAGE)) {\n headersArray.push({ name, value });\n }\n }\n\n headersArray.sort((a, b): number => {\n return compareHeader(a.name.toLowerCase(), b.name.toLowerCase());\n });\n\n // Remove duplicate headers\n headersArray = headersArray.filter((value, index, array) => {\n if (index > 0 && value.name.toLowerCase() === array[index - 1].name.toLowerCase()) {\n return false;\n }\n return true;\n });\n\n let canonicalizedHeadersStringToSign: string = \"\";\n headersArray.forEach((header) => {\n canonicalizedHeadersStringToSign += `${header.name\n .toLowerCase()\n .trimRight()}:${header.value.trimLeft()}\\n`;\n });\n\n return canonicalizedHeadersStringToSign;\n }\n\n function getCanonicalizedResourceString(request: PipelineRequest): string {\n const path = getURLPath(request.url) || \"/\";\n\n let canonicalizedResourceString: string = \"\";\n canonicalizedResourceString += `/${options.accountName}${path}`;\n\n const queries = getURLQueries(request.url);\n const lowercaseQueries: { [key: string]: string } = {};\n if (queries) {\n const queryKeys: string[] = [];\n for (const key in queries) {\n if (Object.prototype.hasOwnProperty.call(queries, key)) {\n const lowercaseKey = key.toLowerCase();\n lowercaseQueries[lowercaseKey] = queries[key];\n queryKeys.push(lowercaseKey);\n }\n }\n\n queryKeys.sort();\n for (const key of queryKeys) {\n canonicalizedResourceString += `\\n${key}:${decodeURIComponent(lowercaseQueries[key])}`;\n }\n }\n\n return canonicalizedResourceString;\n }\n\n return {\n name: storageSharedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n },\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedKeyComparator.d.ts","sourceRoot":"","sources":["../../../src/utils/SharedKeyComparator.ts"],"names":[],"mappings":"AAqCA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/*
|
|
4
|
+
* We need to imitate .Net culture-aware sorting, which is used in storage service.
|
|
5
|
+
* Below tables contain sort-keys for en-US culture.
|
|
6
|
+
*/
|
|
7
|
+
const table_lv0 = new Uint32Array([
|
|
8
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
9
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721,
|
|
10
|
+
0x723, 0x725, 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e,
|
|
11
|
+
0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe02, 0xe09, 0xe0a,
|
|
12
|
+
0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89,
|
|
13
|
+
0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x0, 0x0, 0x743, 0x744, 0x748,
|
|
14
|
+
0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70,
|
|
15
|
+
0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c,
|
|
16
|
+
0x0, 0x750, 0x0,
|
|
17
|
+
]);
|
|
18
|
+
const table_lv2 = new Uint32Array([
|
|
19
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
20
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
21
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
22
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
|
|
23
|
+
0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
|
|
24
|
+
0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
25
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
26
|
+
]);
|
|
27
|
+
const table_lv4 = new Uint32Array([
|
|
28
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
29
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
30
|
+
0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
31
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
32
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
33
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
34
|
+
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
35
|
+
]);
|
|
36
|
+
export function compareHeader(lhs, rhs) {
|
|
37
|
+
if (isLessThan(lhs, rhs))
|
|
38
|
+
return -1;
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
function isLessThan(lhs, rhs) {
|
|
42
|
+
const tables = [table_lv0, table_lv2, table_lv4];
|
|
43
|
+
let curr_level = 0;
|
|
44
|
+
let i = 0;
|
|
45
|
+
let j = 0;
|
|
46
|
+
while (curr_level < tables.length) {
|
|
47
|
+
if (curr_level === tables.length - 1 && i !== j) {
|
|
48
|
+
return i > j;
|
|
49
|
+
}
|
|
50
|
+
const weight1 = i < lhs.length ? tables[curr_level][lhs[i].charCodeAt(0)] : 0x1;
|
|
51
|
+
const weight2 = j < rhs.length ? tables[curr_level][rhs[j].charCodeAt(0)] : 0x1;
|
|
52
|
+
if (weight1 === 0x1 && weight2 === 0x1) {
|
|
53
|
+
i = 0;
|
|
54
|
+
j = 0;
|
|
55
|
+
++curr_level;
|
|
56
|
+
}
|
|
57
|
+
else if (weight1 === weight2) {
|
|
58
|
+
++i;
|
|
59
|
+
++j;
|
|
60
|
+
}
|
|
61
|
+
else if (weight1 === 0) {
|
|
62
|
+
++i;
|
|
63
|
+
}
|
|
64
|
+
else if (weight2 === 0) {
|
|
65
|
+
++j;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return weight1 < weight2;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=SharedKeyComparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedKeyComparator.js","sourceRoot":"","sources":["../../../src/utils/SharedKeyComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/*\n * We need to imitate .Net culture-aware sorting, which is used in storage service.\n * Below tables contain sort-keys for en-US culture.\n */\nconst table_lv0 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x71c, 0x0, 0x71f, 0x721,\n 0x723, 0x725, 0x0, 0x0, 0x0, 0x72d, 0x803, 0x0, 0x0, 0x733, 0x0, 0xd03, 0xd1a, 0xd1c, 0xd1e,\n 0xd20, 0xd22, 0xd24, 0xd26, 0xd28, 0xd2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe02, 0xe09, 0xe0a,\n 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70, 0xe7c, 0xe7e, 0xe89,\n 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x0, 0x0, 0x743, 0x744, 0x748,\n 0xe02, 0xe09, 0xe0a, 0xe1a, 0xe21, 0xe23, 0xe25, 0xe2c, 0xe32, 0xe35, 0xe36, 0xe48, 0xe51, 0xe70,\n 0xe7c, 0xe7e, 0xe89, 0xe8a, 0xe91, 0xe99, 0xe9f, 0xea2, 0xea4, 0xea6, 0xea7, 0xea9, 0x0, 0x74c,\n 0x0, 0x750, 0x0,\n]);\nconst table_lv2 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,\n 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\nconst table_lv4 = new Uint32Array([\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x8012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8212, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n]);\n\nexport function compareHeader(lhs: string, rhs: string): number {\n if (isLessThan(lhs, rhs)) return -1;\n\n return 1;\n}\n\nfunction isLessThan(lhs: string, rhs: string): boolean {\n const tables = [table_lv0, table_lv2, table_lv4];\n let curr_level = 0;\n let i = 0;\n let j = 0;\n while (curr_level < tables.length) {\n if (curr_level === tables.length - 1 && i !== j) {\n return i > j;\n }\n const weight1 = i < lhs.length ? tables[curr_level][lhs[i].charCodeAt(0)] : 0x1;\n const weight2 = j < rhs.length ? tables[curr_level][rhs[j].charCodeAt(0)] : 0x1;\n if (weight1 === 0x1 && weight2 === 0x1) {\n i = 0;\n j = 0;\n ++curr_level;\n } else if (weight1 === weight2) {\n ++i;\n ++j;\n } else if (weight1 === 0) {\n ++i;\n } else if (weight2 === 0) {\n ++j;\n } else {\n return weight1 < weight2;\n }\n }\n return false;\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const SDK_VERSION: string;
|
|
2
|
+
export declare const URLConstants: {
|
|
3
|
+
Parameters: {
|
|
4
|
+
FORCE_BROWSER_NO_CACHE: string;
|
|
5
|
+
SIGNATURE: string;
|
|
6
|
+
SNAPSHOT: string;
|
|
7
|
+
VERSIONID: string;
|
|
8
|
+
TIMEOUT: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const HeaderConstants: {
|
|
12
|
+
AUTHORIZATION: string;
|
|
13
|
+
AUTHORIZATION_SCHEME: string;
|
|
14
|
+
CONTENT_ENCODING: string;
|
|
15
|
+
CONTENT_ID: string;
|
|
16
|
+
CONTENT_LANGUAGE: string;
|
|
17
|
+
CONTENT_LENGTH: string;
|
|
18
|
+
CONTENT_MD5: string;
|
|
19
|
+
CONTENT_TRANSFER_ENCODING: string;
|
|
20
|
+
CONTENT_TYPE: string;
|
|
21
|
+
COOKIE: string;
|
|
22
|
+
DATE: string;
|
|
23
|
+
IF_MATCH: string;
|
|
24
|
+
IF_MODIFIED_SINCE: string;
|
|
25
|
+
IF_NONE_MATCH: string;
|
|
26
|
+
IF_UNMODIFIED_SINCE: string;
|
|
27
|
+
PREFIX_FOR_STORAGE: string;
|
|
28
|
+
RANGE: string;
|
|
29
|
+
USER_AGENT: string;
|
|
30
|
+
X_MS_CLIENT_REQUEST_ID: string;
|
|
31
|
+
X_MS_COPY_SOURCE: string;
|
|
32
|
+
X_MS_DATE: string;
|
|
33
|
+
X_MS_ERROR_CODE: string;
|
|
34
|
+
X_MS_VERSION: string;
|
|
35
|
+
X_MS_CopySourceErrorCode: string;
|
|
36
|
+
};
|
|
37
|
+
export declare const DevelopmentConnectionString = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;";
|
|
38
|
+
export declare const PathStylePorts: string[];
|
|
39
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,EAAE,MAAgB,CAAC;AAE3C,eAAO,MAAM,YAAY;;;;;;;;CAQxB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AACF,eAAO,MAAM,2BAA2B,yNAAyN,CAAC;AAIlQ,eAAO,MAAM,cAAc,UAqB1B,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
export const SDK_VERSION = "1.0.0";
|
|
4
|
+
export const URLConstants = {
|
|
5
|
+
Parameters: {
|
|
6
|
+
FORCE_BROWSER_NO_CACHE: "_",
|
|
7
|
+
SIGNATURE: "sig",
|
|
8
|
+
SNAPSHOT: "snapshot",
|
|
9
|
+
VERSIONID: "versionid",
|
|
10
|
+
TIMEOUT: "timeout",
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
export const HeaderConstants = {
|
|
14
|
+
AUTHORIZATION: "Authorization",
|
|
15
|
+
AUTHORIZATION_SCHEME: "Bearer",
|
|
16
|
+
CONTENT_ENCODING: "Content-Encoding",
|
|
17
|
+
CONTENT_ID: "Content-ID",
|
|
18
|
+
CONTENT_LANGUAGE: "Content-Language",
|
|
19
|
+
CONTENT_LENGTH: "Content-Length",
|
|
20
|
+
CONTENT_MD5: "Content-Md5",
|
|
21
|
+
CONTENT_TRANSFER_ENCODING: "Content-Transfer-Encoding",
|
|
22
|
+
CONTENT_TYPE: "Content-Type",
|
|
23
|
+
COOKIE: "Cookie",
|
|
24
|
+
DATE: "date",
|
|
25
|
+
IF_MATCH: "if-match",
|
|
26
|
+
IF_MODIFIED_SINCE: "if-modified-since",
|
|
27
|
+
IF_NONE_MATCH: "if-none-match",
|
|
28
|
+
IF_UNMODIFIED_SINCE: "if-unmodified-since",
|
|
29
|
+
PREFIX_FOR_STORAGE: "x-ms-",
|
|
30
|
+
RANGE: "Range",
|
|
31
|
+
USER_AGENT: "User-Agent",
|
|
32
|
+
X_MS_CLIENT_REQUEST_ID: "x-ms-client-request-id",
|
|
33
|
+
X_MS_COPY_SOURCE: "x-ms-copy-source",
|
|
34
|
+
X_MS_DATE: "x-ms-date",
|
|
35
|
+
X_MS_ERROR_CODE: "x-ms-error-code",
|
|
36
|
+
X_MS_VERSION: "x-ms-version",
|
|
37
|
+
X_MS_CopySourceErrorCode: "x-ms-copy-source-error-code",
|
|
38
|
+
};
|
|
39
|
+
export const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;
|
|
40
|
+
/// List of ports used for path style addressing.
|
|
41
|
+
/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.
|
|
42
|
+
export const PathStylePorts = [
|
|
43
|
+
"10000",
|
|
44
|
+
"10001",
|
|
45
|
+
"10002",
|
|
46
|
+
"10003",
|
|
47
|
+
"10004",
|
|
48
|
+
"10100",
|
|
49
|
+
"10101",
|
|
50
|
+
"10102",
|
|
51
|
+
"10103",
|
|
52
|
+
"10104",
|
|
53
|
+
"11000",
|
|
54
|
+
"11001",
|
|
55
|
+
"11002",
|
|
56
|
+
"11003",
|
|
57
|
+
"11004",
|
|
58
|
+
"11100",
|
|
59
|
+
"11101",
|
|
60
|
+
"11102",
|
|
61
|
+
"11103",
|
|
62
|
+
"11104",
|
|
63
|
+
];
|
|
64
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAW,OAAO,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,sBAAsB,EAAE,GAAG;QAC3B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,eAAe;IAC9B,oBAAoB,EAAE,QAAQ;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,yBAAyB,EAAE,2BAA2B;IACtD,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,OAAO;IAC3B,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,wBAAwB,EAAE,6BAA6B;CACxD,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,sNAAsN,CAAC;AAElQ,iDAAiD;AACjD,wGAAwG;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"1.0.0\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n X_MS_CopySourceErrorCode: \"x-ms-copy-source-error-code\",\n};\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,aAAa,6CAIxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { createTracingClient } from "@azure/core-tracing";
|
|
4
|
+
import { SDK_VERSION } from "./constants.js";
|
|
5
|
+
/**
|
|
6
|
+
* Creates a span using the global tracer.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export const tracingClient = createTracingClient({
|
|
10
|
+
packageName: "@azure/storage-common",
|
|
11
|
+
packageVersion: SDK_VERSION,
|
|
12
|
+
namespace: "Microsoft.Storage",
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,WAAW,EAAE,uBAAuB;IACpC,cAAc,EAAE,WAAW;IAC3B,SAAS,EAAE,mBAAmB;CAC/B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\nimport { SDK_VERSION } from \"./constants.js\";\n\n/**\n * Creates a span using the global tracer.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n packageName: \"@azure/storage-common\",\n packageVersion: SDK_VERSION,\n namespace: \"Microsoft.Storage\",\n});\n"]}
|