@azure/storage-file-share 12.29.1 → 12.30.0-alpha.20251128.2
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/Clients.d.ts +52 -2
- package/dist/browser/Clients.d.ts.map +1 -1
- package/dist/browser/Clients.js +72 -0
- package/dist/browser/Clients.js.map +1 -1
- package/dist/browser/FileSASSignatureValues.d.ts +18 -17
- package/dist/browser/FileSASSignatureValues.d.ts.map +1 -1
- package/dist/browser/FileSASSignatureValues.js +82 -4
- package/dist/browser/FileSASSignatureValues.js.map +1 -1
- package/dist/browser/SASQueryParameters.d.ts +38 -1
- package/dist/browser/SASQueryParameters.d.ts.map +1 -1
- package/dist/browser/SASQueryParameters.js +74 -1
- package/dist/browser/SASQueryParameters.js.map +1 -1
- package/dist/browser/ShareServiceClient.d.ts +23 -1
- package/dist/browser/ShareServiceClient.d.ts.map +1 -1
- package/dist/browser/ShareServiceClient.js +41 -1
- package/dist/browser/ShareServiceClient.js.map +1 -1
- package/dist/browser/generated/src/models/index.d.ts +115 -18
- package/dist/browser/generated/src/models/index.d.ts.map +1 -1
- package/dist/browser/generated/src/models/index.js +8 -0
- package/dist/browser/generated/src/models/index.js.map +1 -1
- package/dist/browser/generated/src/models/mappers.d.ts +7 -0
- package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/browser/generated/src/models/mappers.js +222 -0
- package/dist/browser/generated/src/models/mappers.js.map +1 -1
- package/dist/browser/generated/src/models/parameters.d.ts +21 -17
- package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
- package/dist/browser/generated/src/models/parameters.js +103 -68
- package/dist/browser/generated/src/models/parameters.js.map +1 -1
- package/dist/browser/generated/src/operations/directory.js +5 -4
- package/dist/browser/generated/src/operations/directory.js.map +1 -1
- package/dist/browser/generated/src/operations/file.js +28 -21
- package/dist/browser/generated/src/operations/file.js.map +1 -1
- package/dist/browser/generated/src/operations/service.d.ts +8 -1
- package/dist/browser/generated/src/operations/service.d.ts.map +1 -1
- package/dist/browser/generated/src/operations/service.js +40 -0
- package/dist/browser/generated/src/operations/service.js.map +1 -1
- package/dist/browser/generated/src/operations/share.js +16 -16
- package/dist/browser/generated/src/operations/share.js.map +1 -1
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts +8 -1
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts.map +1 -1
- package/dist/browser/generated/src/operationsInterfaces/service.js.map +1 -1
- package/dist/browser/generated/src/storageClient.js +2 -2
- package/dist/browser/generated/src/storageClient.js.map +1 -1
- package/dist/browser/generatedModels.d.ts +7 -2
- package/dist/browser/generatedModels.d.ts.map +1 -1
- package/dist/browser/generatedModels.js.map +1 -1
- package/dist/browser/index-browser.d.mts.map +1 -1
- package/dist/browser/index-browser.mjs.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/utils/constants.d.ts.map +1 -1
- package/dist/browser/utils/constants.js +2 -2
- package/dist/browser/utils/constants.js.map +1 -1
- package/dist/commonjs/Clients.d.ts +52 -2
- package/dist/commonjs/Clients.d.ts.map +1 -1
- package/dist/commonjs/Clients.js +72 -0
- package/dist/commonjs/Clients.js.map +1 -1
- package/dist/commonjs/FileSASSignatureValues.d.ts +18 -17
- package/dist/commonjs/FileSASSignatureValues.d.ts.map +1 -1
- package/dist/commonjs/FileSASSignatureValues.js +84 -4
- package/dist/commonjs/FileSASSignatureValues.js.map +1 -1
- package/dist/commonjs/SASQueryParameters.d.ts +38 -1
- package/dist/commonjs/SASQueryParameters.d.ts.map +1 -1
- package/dist/commonjs/SASQueryParameters.js +74 -1
- package/dist/commonjs/SASQueryParameters.js.map +1 -1
- package/dist/commonjs/ShareServiceClient.d.ts +23 -1
- package/dist/commonjs/ShareServiceClient.d.ts.map +1 -1
- package/dist/commonjs/ShareServiceClient.js +40 -0
- package/dist/commonjs/ShareServiceClient.js.map +1 -1
- package/dist/commonjs/generated/src/models/index.d.ts +115 -18
- package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models/index.js +9 -1
- package/dist/commonjs/generated/src/models/index.js.map +1 -1
- package/dist/commonjs/generated/src/models/mappers.d.ts +7 -0
- package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models/mappers.js +225 -3
- package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
- package/dist/commonjs/generated/src/models/parameters.d.ts +21 -17
- package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models/parameters.js +105 -70
- package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
- package/dist/commonjs/generated/src/operations/directory.js +5 -4
- package/dist/commonjs/generated/src/operations/directory.js.map +1 -1
- package/dist/commonjs/generated/src/operations/file.js +28 -21
- package/dist/commonjs/generated/src/operations/file.js.map +1 -1
- package/dist/commonjs/generated/src/operations/service.d.ts +8 -1
- package/dist/commonjs/generated/src/operations/service.d.ts.map +1 -1
- package/dist/commonjs/generated/src/operations/service.js +40 -0
- package/dist/commonjs/generated/src/operations/service.js.map +1 -1
- package/dist/commonjs/generated/src/operations/share.js +16 -16
- package/dist/commonjs/generated/src/operations/share.js.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts +8 -1
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/service.js.map +1 -1
- package/dist/commonjs/generated/src/storageClient.js +2 -2
- package/dist/commonjs/generated/src/storageClient.js.map +1 -1
- package/dist/commonjs/generatedModels.d.ts +7 -2
- package/dist/commonjs/generatedModels.d.ts.map +1 -1
- package/dist/commonjs/generatedModels.js.map +1 -1
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/constants.d.ts.map +1 -1
- package/dist/commonjs/utils/constants.js +2 -2
- package/dist/commonjs/utils/constants.js.map +1 -1
- package/dist/esm/Clients.d.ts +52 -2
- package/dist/esm/Clients.d.ts.map +1 -1
- package/dist/esm/Clients.js +72 -0
- package/dist/esm/Clients.js.map +1 -1
- package/dist/esm/FileSASSignatureValues.d.ts +18 -17
- package/dist/esm/FileSASSignatureValues.d.ts.map +1 -1
- package/dist/esm/FileSASSignatureValues.js +82 -4
- package/dist/esm/FileSASSignatureValues.js.map +1 -1
- package/dist/esm/SASQueryParameters.d.ts +38 -1
- package/dist/esm/SASQueryParameters.d.ts.map +1 -1
- package/dist/esm/SASQueryParameters.js +74 -1
- package/dist/esm/SASQueryParameters.js.map +1 -1
- package/dist/esm/ShareServiceClient.d.ts +23 -1
- package/dist/esm/ShareServiceClient.d.ts.map +1 -1
- package/dist/esm/ShareServiceClient.js +41 -1
- package/dist/esm/ShareServiceClient.js.map +1 -1
- package/dist/esm/generated/src/models/index.d.ts +115 -18
- package/dist/esm/generated/src/models/index.d.ts.map +1 -1
- package/dist/esm/generated/src/models/index.js +8 -0
- package/dist/esm/generated/src/models/index.js.map +1 -1
- package/dist/esm/generated/src/models/mappers.d.ts +7 -0
- package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/esm/generated/src/models/mappers.js +222 -0
- package/dist/esm/generated/src/models/mappers.js.map +1 -1
- package/dist/esm/generated/src/models/parameters.d.ts +21 -17
- package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
- package/dist/esm/generated/src/models/parameters.js +103 -68
- package/dist/esm/generated/src/models/parameters.js.map +1 -1
- package/dist/esm/generated/src/operations/directory.js +5 -4
- package/dist/esm/generated/src/operations/directory.js.map +1 -1
- package/dist/esm/generated/src/operations/file.js +28 -21
- package/dist/esm/generated/src/operations/file.js.map +1 -1
- package/dist/esm/generated/src/operations/service.d.ts +8 -1
- package/dist/esm/generated/src/operations/service.d.ts.map +1 -1
- package/dist/esm/generated/src/operations/service.js +40 -0
- package/dist/esm/generated/src/operations/service.js.map +1 -1
- package/dist/esm/generated/src/operations/share.js +16 -16
- package/dist/esm/generated/src/operations/share.js.map +1 -1
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts +8 -1
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts.map +1 -1
- package/dist/esm/generated/src/operationsInterfaces/service.js.map +1 -1
- package/dist/esm/generated/src/storageClient.js +2 -2
- package/dist/esm/generated/src/storageClient.js.map +1 -1
- package/dist/esm/generatedModels.d.ts +7 -2
- package/dist/esm/generatedModels.d.ts.map +1 -1
- package/dist/esm/generatedModels.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +2 -2
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/react-native/Clients.d.ts +52 -2
- package/dist/react-native/Clients.d.ts.map +1 -1
- package/dist/react-native/Clients.js +72 -0
- package/dist/react-native/Clients.js.map +1 -1
- package/dist/react-native/FileSASSignatureValues.d.ts +18 -17
- package/dist/react-native/FileSASSignatureValues.d.ts.map +1 -1
- package/dist/react-native/FileSASSignatureValues.js +82 -4
- package/dist/react-native/FileSASSignatureValues.js.map +1 -1
- package/dist/react-native/SASQueryParameters.d.ts +38 -1
- package/dist/react-native/SASQueryParameters.d.ts.map +1 -1
- package/dist/react-native/SASQueryParameters.js +74 -1
- package/dist/react-native/SASQueryParameters.js.map +1 -1
- package/dist/react-native/ShareServiceClient.d.ts +23 -1
- package/dist/react-native/ShareServiceClient.d.ts.map +1 -1
- package/dist/react-native/ShareServiceClient.js +41 -1
- package/dist/react-native/ShareServiceClient.js.map +1 -1
- package/dist/react-native/generated/src/models/index.d.ts +115 -18
- package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
- package/dist/react-native/generated/src/models/index.js +8 -0
- package/dist/react-native/generated/src/models/index.js.map +1 -1
- package/dist/react-native/generated/src/models/mappers.d.ts +7 -0
- package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/react-native/generated/src/models/mappers.js +222 -0
- package/dist/react-native/generated/src/models/mappers.js.map +1 -1
- package/dist/react-native/generated/src/models/parameters.d.ts +21 -17
- package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
- package/dist/react-native/generated/src/models/parameters.js +103 -68
- package/dist/react-native/generated/src/models/parameters.js.map +1 -1
- package/dist/react-native/generated/src/operations/directory.js +5 -4
- package/dist/react-native/generated/src/operations/directory.js.map +1 -1
- package/dist/react-native/generated/src/operations/file.js +28 -21
- package/dist/react-native/generated/src/operations/file.js.map +1 -1
- package/dist/react-native/generated/src/operations/service.d.ts +8 -1
- package/dist/react-native/generated/src/operations/service.d.ts.map +1 -1
- package/dist/react-native/generated/src/operations/service.js +40 -0
- package/dist/react-native/generated/src/operations/service.js.map +1 -1
- package/dist/react-native/generated/src/operations/share.js +16 -16
- package/dist/react-native/generated/src/operations/share.js.map +1 -1
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts +8 -1
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts.map +1 -1
- package/dist/react-native/generated/src/operationsInterfaces/service.js.map +1 -1
- package/dist/react-native/generated/src/storageClient.js +2 -2
- package/dist/react-native/generated/src/storageClient.js.map +1 -1
- package/dist/react-native/generatedModels.d.ts +7 -2
- package/dist/react-native/generatedModels.d.ts.map +1 -1
- package/dist/react-native/generatedModels.js.map +1 -1
- package/dist/react-native/index.d.ts +1 -1
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/utils/constants.d.ts.map +1 -1
- package/dist/react-native/utils/constants.js +2 -2
- package/dist/react-native/utils/constants.js.map +1 -1
- package/package.json +27 -26
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { StorageSharedKeyCredential, UserDelegationKey } from "@azure/storage-common";
|
|
2
2
|
import { FileSASPermissions } from "./FileSASPermissions.js";
|
|
3
3
|
import type { SasIPRange } from "./SasIPRange.js";
|
|
4
4
|
import type { SASProtocol } from "./SASQueryParameters.js";
|
|
5
5
|
import { SASQueryParameters } from "./SASQueryParameters.js";
|
|
6
6
|
import { ShareSASPermissions } from "./ShareSASPermissions.js";
|
|
7
|
+
import { UserDelegationKeyCredential } from "@azure/storage-common";
|
|
7
8
|
/**
|
|
8
9
|
* ONLY AVAILABLE IN NODE.JS RUNTIME.
|
|
9
10
|
*
|
|
@@ -51,6 +52,12 @@ export interface FileSASSignatureValues {
|
|
|
51
52
|
* @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy
|
|
52
53
|
*/
|
|
53
54
|
identifier?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user who is authorized to
|
|
57
|
+
* use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been
|
|
58
|
+
* issued to the user specified in this value.
|
|
59
|
+
*/
|
|
60
|
+
delegatedUserObjectId?: string;
|
|
54
61
|
/**
|
|
55
62
|
* Optional. The cache-control header for the SAS.
|
|
56
63
|
*/
|
|
@@ -72,23 +79,17 @@ export interface FileSASSignatureValues {
|
|
|
72
79
|
*/
|
|
73
80
|
contentType?: string;
|
|
74
81
|
}
|
|
75
|
-
|
|
76
|
-
* ONLY AVAILABLE IN NODE.JS RUNTIME.
|
|
77
|
-
*
|
|
78
|
-
* Creates an instance of SASQueryParameters.
|
|
79
|
-
*
|
|
80
|
-
* Only accepts required settings needed to create a SAS. For optional settings please
|
|
81
|
-
* set corresponding properties directly, such as permissions, startsOn and identifier.
|
|
82
|
-
*
|
|
83
|
-
* WARNING: When identifier is not provided, permissions and expiresOn are required.
|
|
84
|
-
* You MUST assign value to identifier or expiresOn & permissions manually if you initial with
|
|
85
|
-
* this constructor.
|
|
86
|
-
*
|
|
87
|
-
* @param fileSASSignatureValues -
|
|
88
|
-
* @param sharedKeyCredential -
|
|
89
|
-
*/
|
|
82
|
+
export declare function generateFileSASQueryParameters(fileSASSignatureValues: FileSASSignatureValues, userDelegationKey: UserDelegationKey, accountName: string): SASQueryParameters;
|
|
90
83
|
export declare function generateFileSASQueryParameters(fileSASSignatureValues: FileSASSignatureValues, sharedKeyCredential: StorageSharedKeyCredential): SASQueryParameters;
|
|
91
|
-
export declare function generateFileSASQueryParametersInternal(fileSASSignatureValues: FileSASSignatureValues,
|
|
84
|
+
export declare function generateFileSASQueryParametersInternal(fileSASSignatureValues: FileSASSignatureValues, sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey, accountName?: string): {
|
|
85
|
+
sasQueryParameters: SASQueryParameters;
|
|
86
|
+
stringToSign: string;
|
|
87
|
+
};
|
|
88
|
+
export declare function generateFileSASQueryParametersDefault(fileSASSignatureValues: FileSASSignatureValues, sharedKeyCredential: StorageSharedKeyCredential): {
|
|
89
|
+
sasQueryParameters: SASQueryParameters;
|
|
90
|
+
stringToSign: string;
|
|
91
|
+
};
|
|
92
|
+
export declare function generateFileSASQueryParametersUDK20250705(fileSASSignatureValues: FileSASSignatureValues, userDelegationKeyCredential: UserDelegationKeyCredential, accountName: string): {
|
|
92
93
|
sasQueryParameters: SASQueryParameters;
|
|
93
94
|
stringToSign: string;
|
|
94
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSASSignatureValues.d.ts","sourceRoot":"","sources":["../../src/FileSASSignatureValues.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"FileSASSignatureValues.d.ts","sourceRoot":"","sources":["../../src/FileSASSignatureValues.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE;;;;GAIG;AAEH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IAEvD;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,8BAA8B,CAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,GAClB,kBAAkB,CAAC;AAEtB,wBAAgB,8BAA8B,CAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,mBAAmB,EAAE,0BAA0B,GAC9C,kBAAkB,CAAC;AA8BtB,wBAAgB,sCAAsC,CACpD,sBAAsB,EAAE,sBAAsB,EAC9C,sCAAsC,EAAE,0BAA0B,GAAG,iBAAiB,EACtF,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA+BlE;AAED,wBAAgB,qCAAqC,CACnD,sBAAsB,EAAE,sBAAsB,EAC9C,mBAAmB,EAAE,0BAA0B,GAC9C;IAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA8ElE;AAED,wBAAgB,yCAAyC,CACvD,sBAAsB,EAAE,sBAAsB,EAC9C,2BAA2B,EAAE,2BAA2B,EACxD,WAAW,EAAE,MAAM,GAClB;IAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAwFlE"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
+
import { StorageSharedKeyCredential } from "@azure/storage-common";
|
|
3
4
|
import { FileSASPermissions } from "./FileSASPermissions.js";
|
|
4
5
|
import { ipRangeToString } from "./SasIPRange.js";
|
|
5
6
|
import { SASQueryParameters } from "./SASQueryParameters.js";
|
|
6
7
|
import { ShareSASPermissions } from "./ShareSASPermissions.js";
|
|
7
8
|
import { SERVICE_VERSION } from "./utils/constants.js";
|
|
8
9
|
import { truncatedISO8061Date } from "./utils/utils.common.js";
|
|
10
|
+
import { UserDelegationKeyCredential } from "@azure/storage-common";
|
|
9
11
|
/**
|
|
10
12
|
* ONLY AVAILABLE IN NODE.JS RUNTIME.
|
|
11
13
|
*
|
|
@@ -21,11 +23,31 @@ import { truncatedISO8061Date } from "./utils/utils.common.js";
|
|
|
21
23
|
* @param fileSASSignatureValues -
|
|
22
24
|
* @param sharedKeyCredential -
|
|
23
25
|
*/
|
|
24
|
-
export function generateFileSASQueryParameters(fileSASSignatureValues,
|
|
25
|
-
return generateFileSASQueryParametersInternal(fileSASSignatureValues,
|
|
26
|
-
.sasQueryParameters;
|
|
26
|
+
export function generateFileSASQueryParameters(fileSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) {
|
|
27
|
+
return generateFileSASQueryParametersInternal(fileSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName).sasQueryParameters;
|
|
27
28
|
}
|
|
28
|
-
export function generateFileSASQueryParametersInternal(fileSASSignatureValues,
|
|
29
|
+
export function generateFileSASQueryParametersInternal(fileSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) {
|
|
30
|
+
const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;
|
|
31
|
+
const sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential
|
|
32
|
+
? sharedKeyCredentialOrUserDelegationKey
|
|
33
|
+
: undefined;
|
|
34
|
+
let userDelegationKeyCredential;
|
|
35
|
+
if (sharedKeyCredential === undefined && accountName !== undefined) {
|
|
36
|
+
userDelegationKeyCredential = new UserDelegationKeyCredential(accountName, sharedKeyCredentialOrUserDelegationKey);
|
|
37
|
+
}
|
|
38
|
+
if (sharedKeyCredential !== undefined) {
|
|
39
|
+
return generateFileSASQueryParametersDefault(fileSASSignatureValues, sharedKeyCredential);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
if (version >= "2025-07-05") {
|
|
43
|
+
return generateFileSASQueryParametersUDK20250705(fileSASSignatureValues, userDelegationKeyCredential, accountName);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new RangeError("'version' must be >= '2025-07-05' when generating user delegation SAS using user delegation key.");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function generateFileSASQueryParametersDefault(fileSASSignatureValues, sharedKeyCredential) {
|
|
29
51
|
if (!fileSASSignatureValues.identifier &&
|
|
30
52
|
!(fileSASSignatureValues.permissions && fileSASSignatureValues.expiresOn)) {
|
|
31
53
|
throw new RangeError("Must provide 'permissions' and 'expiresOn' for File SAS generation when 'identifier' is not provided.");
|
|
@@ -71,6 +93,62 @@ export function generateFileSASQueryParametersInternal(fileSASSignatureValues, s
|
|
|
71
93
|
stringToSign: stringToSign,
|
|
72
94
|
};
|
|
73
95
|
}
|
|
96
|
+
export function generateFileSASQueryParametersUDK20250705(fileSASSignatureValues, userDelegationKeyCredential, accountName) {
|
|
97
|
+
if (!(fileSASSignatureValues.permissions && fileSASSignatureValues.expiresOn)) {
|
|
98
|
+
throw new RangeError("Must provide 'permissions' and 'expiresOn' for File SAS generation when generating user delegation SAS.");
|
|
99
|
+
}
|
|
100
|
+
const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;
|
|
101
|
+
let resource = "s";
|
|
102
|
+
if (fileSASSignatureValues.filePath) {
|
|
103
|
+
resource = "f";
|
|
104
|
+
}
|
|
105
|
+
let verifiedPermissions;
|
|
106
|
+
// Calling parse and toString guarantees the proper ordering and throws on invalid characters.
|
|
107
|
+
if (fileSASSignatureValues.permissions) {
|
|
108
|
+
if (fileSASSignatureValues.filePath) {
|
|
109
|
+
verifiedPermissions = FileSASPermissions.parse(fileSASSignatureValues.permissions.toString()).toString();
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
verifiedPermissions = ShareSASPermissions.parse(fileSASSignatureValues.permissions.toString()).toString();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Signature is generated on the un-url-encoded values.
|
|
116
|
+
const stringToSign = [
|
|
117
|
+
verifiedPermissions,
|
|
118
|
+
fileSASSignatureValues.startsOn
|
|
119
|
+
? truncatedISO8061Date(fileSASSignatureValues.startsOn, false)
|
|
120
|
+
: "",
|
|
121
|
+
fileSASSignatureValues.expiresOn
|
|
122
|
+
? truncatedISO8061Date(fileSASSignatureValues.expiresOn, false)
|
|
123
|
+
: "",
|
|
124
|
+
getCanonicalName(accountName, fileSASSignatureValues.shareName, fileSASSignatureValues.filePath),
|
|
125
|
+
userDelegationKeyCredential.userDelegationKey.signedObjectId,
|
|
126
|
+
userDelegationKeyCredential.userDelegationKey.signedTenantId,
|
|
127
|
+
userDelegationKeyCredential.userDelegationKey.signedStartsOn
|
|
128
|
+
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)
|
|
129
|
+
: "",
|
|
130
|
+
userDelegationKeyCredential.userDelegationKey.signedExpiresOn
|
|
131
|
+
? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)
|
|
132
|
+
: "",
|
|
133
|
+
userDelegationKeyCredential.userDelegationKey.signedService,
|
|
134
|
+
userDelegationKeyCredential.userDelegationKey.signedVersion,
|
|
135
|
+
undefined, // shared key delegation signed tenant id.
|
|
136
|
+
fileSASSignatureValues.delegatedUserObjectId,
|
|
137
|
+
fileSASSignatureValues.ipRange ? ipRangeToString(fileSASSignatureValues.ipRange) : "",
|
|
138
|
+
fileSASSignatureValues.protocol,
|
|
139
|
+
version,
|
|
140
|
+
fileSASSignatureValues.cacheControl,
|
|
141
|
+
fileSASSignatureValues.contentDisposition,
|
|
142
|
+
fileSASSignatureValues.contentEncoding,
|
|
143
|
+
fileSASSignatureValues.contentLanguage,
|
|
144
|
+
fileSASSignatureValues.contentType,
|
|
145
|
+
].join("\n");
|
|
146
|
+
const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);
|
|
147
|
+
return {
|
|
148
|
+
sasQueryParameters: new SASQueryParameters(version, signature, verifiedPermissions, undefined, undefined, fileSASSignatureValues.protocol, fileSASSignatureValues.startsOn, fileSASSignatureValues.expiresOn, fileSASSignatureValues.ipRange, fileSASSignatureValues.identifier, resource, fileSASSignatureValues.cacheControl, fileSASSignatureValues.contentDisposition, fileSASSignatureValues.contentEncoding, fileSASSignatureValues.contentLanguage, fileSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, fileSASSignatureValues.delegatedUserObjectId),
|
|
149
|
+
stringToSign: stringToSign,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
74
152
|
function getCanonicalName(accountName, shareName, filePath) {
|
|
75
153
|
// Share: "/file/account/sharename"
|
|
76
154
|
// File: "/file/account/sharename/filename"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSASSignatureValues.js","sourceRoot":"","sources":["../../src/FileSASSignatureValues.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { StorageSharedKeyCredential } from \"@azure/storage-common\";\nimport { FileSASPermissions } from \"./FileSASPermissions.js\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { SASQueryParameters } from \"./SASQueryParameters.js\";\nimport { ShareSASPermissions } from \"./ShareSASPermissions.js\";\nimport { SERVICE_VERSION } from \"./utils/constants.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * FileSASSignatureValues is used to help generating File service SAS tokens for shares or files.\n */\n\nexport interface FileSASSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to either {@link ShareSASPermissions} or {@link FileSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: FileSASPermissions | ShareSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the share the SAS user may access.\n */\n shareName: string;\n\n /**\n * Optional. The path of the file like, \"directory/FileName\" or \"FileName\".\n */\n filePath?: string;\n\n /**\n * Optional. The name of the access policy on the share this SAS references if any.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param fileSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateFileSASQueryParameters(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateFileSASQueryParametersInternal(fileSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateFileSASQueryParametersInternal(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n if (\n !fileSASSignatureValues.identifier &&\n !(fileSASSignatureValues.permissions && fileSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for File SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;\n let resource: string = \"s\";\n if (fileSASSignatureValues.filePath) {\n resource = \"f\";\n }\n\n let verifiedPermissions: string | undefined;\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n if (fileSASSignatureValues.permissions) {\n if (fileSASSignatureValues.filePath) {\n verifiedPermissions = FileSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = ShareSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions,\n fileSASSignatureValues.startsOn\n ? truncatedISO8061Date(fileSASSignatureValues.startsOn, false)\n : \"\",\n fileSASSignatureValues.expiresOn\n ? truncatedISO8061Date(fileSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n fileSASSignatureValues.shareName,\n fileSASSignatureValues.filePath,\n ),\n fileSASSignatureValues.identifier,\n fileSASSignatureValues.ipRange ? ipRangeToString(fileSASSignatureValues.ipRange) : \"\",\n fileSASSignatureValues.protocol,\n version,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n fileSASSignatureValues.protocol,\n fileSASSignatureValues.startsOn,\n fileSASSignatureValues.expiresOn,\n fileSASSignatureValues.ipRange,\n fileSASSignatureValues.identifier,\n resource,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, shareName: string, filePath?: string): string {\n // Share: \"/file/account/sharename\"\n // File: \"/file/account/sharename/filename\"\n // File: \"/file/account/sharename/directoryname/filename\"\n const elements: string[] = [`/file/${accountName}/${shareName}`];\n if (filePath) {\n elements.push(`/${filePath}`);\n }\n return elements.join(\"\");\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FileSASSignatureValues.js","sourceRoot":"","sources":["../../src/FileSASSignatureValues.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageSharedKeyCredential, UserDelegationKey } from \"@azure/storage-common\";\nimport { FileSASPermissions } from \"./FileSASPermissions.js\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { SASQueryParameters } from \"./SASQueryParameters.js\";\nimport { ShareSASPermissions } from \"./ShareSASPermissions.js\";\nimport { SERVICE_VERSION } from \"./utils/constants.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\nimport { UserDelegationKeyCredential } from \"@azure/storage-common\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * FileSASSignatureValues is used to help generating File service SAS tokens for shares or files.\n */\n\nexport interface FileSASSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to either {@link ShareSASPermissions} or {@link FileSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: FileSASPermissions | ShareSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the share the SAS user may access.\n */\n shareName: string;\n\n /**\n * Optional. The path of the file like, \"directory/FileName\" or \"FileName\".\n */\n filePath?: string;\n\n /**\n * Optional. The name of the access policy on the share this SAS references if any.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user who is authorized to\n * use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been\n * issued to the user specified in this value.\n */\n delegatedUserObjectId?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\nexport function generateFileSASQueryParameters(\n fileSASSignatureValues: FileSASSignatureValues,\n userDelegationKey: UserDelegationKey,\n accountName: string,\n): SASQueryParameters;\n\nexport function generateFileSASQueryParameters(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters;\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param fileSASSignatureValues -\n * @param sharedKeyCredential -\n */\n\nexport function generateFileSASQueryParameters(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): SASQueryParameters {\n return generateFileSASQueryParametersInternal(\n fileSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey,\n accountName,\n ).sasQueryParameters;\n}\n\nexport function generateFileSASQueryParametersInternal(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;\n\n const sharedKeyCredential =\n sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential\n ? sharedKeyCredentialOrUserDelegationKey\n : undefined;\n let userDelegationKeyCredential: UserDelegationKeyCredential | undefined;\n\n if (sharedKeyCredential === undefined && accountName !== undefined) {\n userDelegationKeyCredential = new UserDelegationKeyCredential(\n accountName,\n sharedKeyCredentialOrUserDelegationKey as UserDelegationKey,\n );\n }\n\n if (sharedKeyCredential !== undefined) {\n return generateFileSASQueryParametersDefault(fileSASSignatureValues, sharedKeyCredential!);\n } else {\n if (version >= \"2025-07-05\") {\n return generateFileSASQueryParametersUDK20250705(\n fileSASSignatureValues,\n userDelegationKeyCredential!,\n accountName!,\n );\n } else {\n throw new RangeError(\n \"'version' must be >= '2025-07-05' when generating user delegation SAS using user delegation key.\",\n );\n }\n }\n}\n\nexport function generateFileSASQueryParametersDefault(\n fileSASSignatureValues: FileSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n if (\n !fileSASSignatureValues.identifier &&\n !(fileSASSignatureValues.permissions && fileSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for File SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;\n let resource: string = \"s\";\n if (fileSASSignatureValues.filePath) {\n resource = \"f\";\n }\n\n let verifiedPermissions: string | undefined;\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n if (fileSASSignatureValues.permissions) {\n if (fileSASSignatureValues.filePath) {\n verifiedPermissions = FileSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = ShareSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions,\n fileSASSignatureValues.startsOn\n ? truncatedISO8061Date(fileSASSignatureValues.startsOn, false)\n : \"\",\n fileSASSignatureValues.expiresOn\n ? truncatedISO8061Date(fileSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n fileSASSignatureValues.shareName,\n fileSASSignatureValues.filePath,\n ),\n fileSASSignatureValues.identifier,\n fileSASSignatureValues.ipRange ? ipRangeToString(fileSASSignatureValues.ipRange) : \"\",\n fileSASSignatureValues.protocol,\n version,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n fileSASSignatureValues.protocol,\n fileSASSignatureValues.startsOn,\n fileSASSignatureValues.expiresOn,\n fileSASSignatureValues.ipRange,\n fileSASSignatureValues.identifier,\n resource,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n ),\n stringToSign: stringToSign,\n };\n}\n\nexport function generateFileSASQueryParametersUDK20250705(\n fileSASSignatureValues: FileSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n accountName: string,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n if (!(fileSASSignatureValues.permissions && fileSASSignatureValues.expiresOn)) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for File SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = fileSASSignatureValues.version ? fileSASSignatureValues.version : SERVICE_VERSION;\n let resource: string = \"s\";\n if (fileSASSignatureValues.filePath) {\n resource = \"f\";\n }\n\n let verifiedPermissions: string | undefined;\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n if (fileSASSignatureValues.permissions) {\n if (fileSASSignatureValues.filePath) {\n verifiedPermissions = FileSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = ShareSASPermissions.parse(\n fileSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions,\n fileSASSignatureValues.startsOn\n ? truncatedISO8061Date(fileSASSignatureValues.startsOn, false)\n : \"\",\n fileSASSignatureValues.expiresOn\n ? truncatedISO8061Date(fileSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n accountName,\n fileSASSignatureValues.shareName,\n fileSASSignatureValues.filePath,\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n undefined, // shared key delegation signed tenant id.\n fileSASSignatureValues.delegatedUserObjectId,\n fileSASSignatureValues.ipRange ? ipRangeToString(fileSASSignatureValues.ipRange) : \"\",\n fileSASSignatureValues.protocol,\n version,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n fileSASSignatureValues.protocol,\n fileSASSignatureValues.startsOn,\n fileSASSignatureValues.expiresOn,\n fileSASSignatureValues.ipRange,\n fileSASSignatureValues.identifier,\n resource,\n fileSASSignatureValues.cacheControl,\n fileSASSignatureValues.contentDisposition,\n fileSASSignatureValues.contentEncoding,\n fileSASSignatureValues.contentLanguage,\n fileSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n fileSASSignatureValues.delegatedUserObjectId,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, shareName: string, filePath?: string): string {\n // Share: \"/file/account/sharename\"\n // File: \"/file/account/sharename/filename\"\n // File: \"/file/account/sharename/directoryname/filename\"\n const elements: string[] = [`/file/${accountName}/${shareName}`];\n if (filePath) {\n elements.push(`/${filePath}`);\n }\n return elements.join(\"\");\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UserDelegationKey } from "@azure/storage-common";
|
|
1
2
|
import type { SasIPRange } from "./SasIPRange.js";
|
|
2
3
|
/**
|
|
3
4
|
* Protocols for generated SAS.
|
|
@@ -60,6 +61,12 @@ export declare class SASQueryParameters {
|
|
|
60
61
|
* @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy
|
|
61
62
|
*/
|
|
62
63
|
readonly identifier?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user who is authorized to
|
|
66
|
+
* use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been
|
|
67
|
+
* issued to the user specified in this value.
|
|
68
|
+
*/
|
|
69
|
+
readonly delegatedUserObjectId?: string;
|
|
63
70
|
/**
|
|
64
71
|
* Optional. The storage share or file path (only for {@link FileSASSignatureValues}).
|
|
65
72
|
*/
|
|
@@ -88,6 +95,36 @@ export declare class SASQueryParameters {
|
|
|
88
95
|
* Value for content-type header in Blob/File Service SAS.
|
|
89
96
|
*/
|
|
90
97
|
readonly contentType?: string;
|
|
98
|
+
/**
|
|
99
|
+
* The Azure Active Directory object ID in GUID format.
|
|
100
|
+
* Property of user delegation key.
|
|
101
|
+
*/
|
|
102
|
+
private readonly signedOid?;
|
|
103
|
+
/**
|
|
104
|
+
* The Azure Active Directory tenant ID in GUID format.
|
|
105
|
+
* Property of user delegation key.
|
|
106
|
+
*/
|
|
107
|
+
private readonly signedTenantId?;
|
|
108
|
+
/**
|
|
109
|
+
* The date-time the key is active.
|
|
110
|
+
* Property of user delegation key.
|
|
111
|
+
*/
|
|
112
|
+
private readonly signedStartsOn?;
|
|
113
|
+
/**
|
|
114
|
+
* The date-time the key expires.
|
|
115
|
+
* Property of user delegation key.
|
|
116
|
+
*/
|
|
117
|
+
private readonly signedExpiresOn?;
|
|
118
|
+
/**
|
|
119
|
+
* Abbreviation of the Azure Storage service that accepts the user delegation key.
|
|
120
|
+
* Property of user delegation key.
|
|
121
|
+
*/
|
|
122
|
+
private readonly signedService?;
|
|
123
|
+
/**
|
|
124
|
+
* The service version that created the user delegation key.
|
|
125
|
+
* Property of user delegation key.
|
|
126
|
+
*/
|
|
127
|
+
private readonly signedVersion?;
|
|
91
128
|
/**
|
|
92
129
|
* Inner value of getter ipRange.
|
|
93
130
|
*/
|
|
@@ -118,7 +155,7 @@ export declare class SASQueryParameters {
|
|
|
118
155
|
* @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)
|
|
119
156
|
* @param contentType - Representing the content-type header (only for Blob/File Service SAS)
|
|
120
157
|
*/
|
|
121
|
-
constructor(version: string, signature: string, permissions?: string, services?: string, resourceTypes?: string, protocol?: SASProtocol, startsOn?: Date, expiresOn?: Date, ipRange?: SasIPRange, identifier?: string, resource?: string, cacheControl?: string, contentDisposition?: string, contentEncoding?: string, contentLanguage?: string, contentType?: string);
|
|
158
|
+
constructor(version: string, signature: string, permissions?: string, services?: string, resourceTypes?: string, protocol?: SASProtocol, startsOn?: Date, expiresOn?: Date, ipRange?: SasIPRange, identifier?: string, resource?: string, cacheControl?: string, contentDisposition?: string, contentEncoding?: string, contentLanguage?: string, contentType?: string, userDelegationKey?: UserDelegationKey, delegatedUserObjectId?: string);
|
|
122
159
|
/**
|
|
123
160
|
* Encodes all SAS query parameters into a string that can be appended to a URL.
|
|
124
161
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SASQueryParameters.d.ts","sourceRoot":"","sources":["../../src/SASQueryParameters.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;GAEG;AACH,oBAAY,WAAW;IACrB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,YAAY,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvC;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhC;;OAEG;IACH,SAAgB,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;OAIG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5C;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzC;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzC;;OAEG;IACH,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAa;IAE3C;;;;OAIG;IACH,IAAW,OAAO,IAAI,UAAU,GAAG,SAAS,CAQ3C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;gBAED,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,WAAW,EACtB,QAAQ,CAAC,EAAE,IAAI,EACf,SAAS,CAAC,EAAE,IAAI,EAChB,OAAO,CAAC,EAAE,UAAU,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"SASQueryParameters.d.ts","sourceRoot":"","sources":["../../src/SASQueryParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;GAEG;AACH,oBAAY,WAAW;IACrB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,YAAY,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvC;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhC;;OAEG;IACH,SAAgB,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;OAIG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;OAIG;IACH,SAAgB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/C;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5C;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzC;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzC;;OAEG;IACH,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IAEpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAO;IAEvC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAO;IAExC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAa;IAE3C;;;;OAIG;IACH,IAAW,OAAO,IAAI,UAAU,GAAG,SAAS,CAQ3C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;gBAED,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,WAAW,EACtB,QAAQ,CAAC,EAAE,IAAI,EACf,SAAS,CAAC,EAAE,IAAI,EAChB,OAAO,CAAC,EAAE,UAAU,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,qBAAqB,CAAC,EAAE,MAAM;IA8BhC;;;OAGG;IACI,QAAQ,IAAI,MAAM;IA4HzB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;CAWhC"}
|
|
@@ -64,6 +64,12 @@ export class SASQueryParameters {
|
|
|
64
64
|
* @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy
|
|
65
65
|
*/
|
|
66
66
|
identifier;
|
|
67
|
+
/**
|
|
68
|
+
* Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user who is authorized to
|
|
69
|
+
* use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been
|
|
70
|
+
* issued to the user specified in this value.
|
|
71
|
+
*/
|
|
72
|
+
delegatedUserObjectId;
|
|
67
73
|
/**
|
|
68
74
|
* Optional. The storage share or file path (only for {@link FileSASSignatureValues}).
|
|
69
75
|
*/
|
|
@@ -92,6 +98,36 @@ export class SASQueryParameters {
|
|
|
92
98
|
* Value for content-type header in Blob/File Service SAS.
|
|
93
99
|
*/
|
|
94
100
|
contentType;
|
|
101
|
+
/**
|
|
102
|
+
* The Azure Active Directory object ID in GUID format.
|
|
103
|
+
* Property of user delegation key.
|
|
104
|
+
*/
|
|
105
|
+
signedOid;
|
|
106
|
+
/**
|
|
107
|
+
* The Azure Active Directory tenant ID in GUID format.
|
|
108
|
+
* Property of user delegation key.
|
|
109
|
+
*/
|
|
110
|
+
signedTenantId;
|
|
111
|
+
/**
|
|
112
|
+
* The date-time the key is active.
|
|
113
|
+
* Property of user delegation key.
|
|
114
|
+
*/
|
|
115
|
+
signedStartsOn;
|
|
116
|
+
/**
|
|
117
|
+
* The date-time the key expires.
|
|
118
|
+
* Property of user delegation key.
|
|
119
|
+
*/
|
|
120
|
+
signedExpiresOn;
|
|
121
|
+
/**
|
|
122
|
+
* Abbreviation of the Azure Storage service that accepts the user delegation key.
|
|
123
|
+
* Property of user delegation key.
|
|
124
|
+
*/
|
|
125
|
+
signedService;
|
|
126
|
+
/**
|
|
127
|
+
* The service version that created the user delegation key.
|
|
128
|
+
* Property of user delegation key.
|
|
129
|
+
*/
|
|
130
|
+
signedVersion;
|
|
95
131
|
/**
|
|
96
132
|
* Inner value of getter ipRange.
|
|
97
133
|
*/
|
|
@@ -130,7 +166,7 @@ export class SASQueryParameters {
|
|
|
130
166
|
* @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)
|
|
131
167
|
* @param contentType - Representing the content-type header (only for Blob/File Service SAS)
|
|
132
168
|
*/
|
|
133
|
-
constructor(version, signature, permissions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType) {
|
|
169
|
+
constructor(version, signature, permissions, services, resourceTypes, protocol, startsOn, expiresOn, ipRange, identifier, resource, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, userDelegationKey, delegatedUserObjectId) {
|
|
134
170
|
this.version = version;
|
|
135
171
|
this.services = services;
|
|
136
172
|
this.resourceTypes = resourceTypes;
|
|
@@ -147,6 +183,15 @@ export class SASQueryParameters {
|
|
|
147
183
|
this.contentEncoding = contentEncoding;
|
|
148
184
|
this.contentLanguage = contentLanguage;
|
|
149
185
|
this.contentType = contentType;
|
|
186
|
+
if (userDelegationKey) {
|
|
187
|
+
this.signedOid = userDelegationKey.signedObjectId;
|
|
188
|
+
this.signedTenantId = userDelegationKey.signedTenantId;
|
|
189
|
+
this.signedStartsOn = userDelegationKey.signedStartsOn;
|
|
190
|
+
this.signedExpiresOn = userDelegationKey.signedExpiresOn;
|
|
191
|
+
this.signedService = userDelegationKey.signedService;
|
|
192
|
+
this.signedVersion = userDelegationKey.signedVersion;
|
|
193
|
+
this.delegatedUserObjectId = delegatedUserObjectId;
|
|
194
|
+
}
|
|
150
195
|
}
|
|
151
196
|
/**
|
|
152
197
|
* Encodes all SAS query parameters into a string that can be appended to a URL.
|
|
@@ -170,6 +215,13 @@ export class SASQueryParameters {
|
|
|
170
215
|
"rsce",
|
|
171
216
|
"rscl",
|
|
172
217
|
"rsct",
|
|
218
|
+
"skoid", // Signed object ID
|
|
219
|
+
"sktid", // Signed tenant ID
|
|
220
|
+
"skt", // Signed key start time
|
|
221
|
+
"ske", // Signed key expiry time
|
|
222
|
+
"sks", // Signed key service
|
|
223
|
+
"skv", // Signed key version
|
|
224
|
+
"sduoid", // Signed key user delegation object ID
|
|
173
225
|
];
|
|
174
226
|
const queries = [];
|
|
175
227
|
for (const param of params) {
|
|
@@ -222,6 +274,27 @@ export class SASQueryParameters {
|
|
|
222
274
|
case "rsct":
|
|
223
275
|
this.tryAppendQueryParameter(queries, param, this.contentType);
|
|
224
276
|
break;
|
|
277
|
+
case "skoid":
|
|
278
|
+
this.tryAppendQueryParameter(queries, param, this.signedOid);
|
|
279
|
+
break;
|
|
280
|
+
case "sktid": // Signed tenant ID
|
|
281
|
+
this.tryAppendQueryParameter(queries, param, this.signedTenantId);
|
|
282
|
+
break;
|
|
283
|
+
case "skt": // Signed key start time
|
|
284
|
+
this.tryAppendQueryParameter(queries, param, this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined);
|
|
285
|
+
break;
|
|
286
|
+
case "ske": // Signed key expiry time
|
|
287
|
+
this.tryAppendQueryParameter(queries, param, this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined);
|
|
288
|
+
break;
|
|
289
|
+
case "sks": // Signed key service
|
|
290
|
+
this.tryAppendQueryParameter(queries, param, this.signedService);
|
|
291
|
+
break;
|
|
292
|
+
case "skv": // Signed key version
|
|
293
|
+
this.tryAppendQueryParameter(queries, param, this.signedVersion);
|
|
294
|
+
break;
|
|
295
|
+
case "sduoid": // Signed key user delegation object ID
|
|
296
|
+
this.tryAppendQueryParameter(queries, param, this.delegatedUserObjectId);
|
|
297
|
+
break;
|
|
225
298
|
}
|
|
226
299
|
}
|
|
227
300
|
return queries.join("&");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SASQueryParameters.js","sourceRoot":"","sources":["../../src/SASQueryParameters.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\n\n/**\n * Protocols for generated SAS.\n */\nexport enum SASProtocol {\n /**\n * Protocol that allows HTTPS only\n */\n Https = \"https\",\n\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n HttpsAndHttp = \"https,http\",\n}\n\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link FileSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n /**\n * The storage API version.\n */\n public readonly version: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SASProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link FileSASPermissions}, or {@link ShareSASPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link FileSASSignatureValues}).\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. The storage share or file path (only for {@link FileSASSignatureValues}).\n */\n public readonly resource?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n public readonly cacheControl?: string;\n\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n public readonly contentDisposition?: string;\n\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n public readonly contentEncoding?: string;\n\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n public readonly contentLanguage?: string;\n\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n public readonly contentType?: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param permissions - Representing the storage permissions\n * @param services - Representing the storage services being accessed (only for Account SAS)\n * @param resourceTypes - Representing the storage resource types being accessed (only for Account SAS)\n * @param protocol - Representing the allowed HTTP protocol(s)\n * @param startsOn - Representing the start time for this SAS token\n * @param expiresOn - Representing the expiry time for this SAS token\n * @param ipRange - Representing the range of valid IP addresses for this SAS token\n * @param identifier - Representing the signed identifier (only for Service SAS)\n * @param resource - Representing the storage container or blob (only for Service SAS)\n * @param cacheControl - Representing the cache-control header (only for Blob/File Service SAS)\n * @param contentDisposition - Representing the content-disposition header (only for Blob/File Service SAS)\n * @param contentEncoding - Representing the content-encoding header (only for Blob/File Service SAS)\n * @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)\n * @param contentType - Representing the content-type header (only for Blob/File Service SAS)\n */\n constructor(\n version: string,\n signature: string,\n permissions?: string,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n ) {\n this.version = version;\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.signature = signature;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\",\n \"ss\",\n \"srt\",\n \"spr\",\n \"st\",\n \"se\",\n \"sip\",\n \"si\",\n \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"rscc\":\n this.tryAppendQueryParameter(queries, param, this.cacheControl);\n break;\n case \"rscd\":\n this.tryAppendQueryParameter(queries, param, this.contentDisposition);\n break;\n case \"rsce\":\n this.tryAppendQueryParameter(queries, param, this.contentEncoding);\n break;\n case \"rscl\":\n this.tryAppendQueryParameter(queries, param, this.contentLanguage);\n break;\n case \"rsct\":\n this.tryAppendQueryParameter(queries, param, this.contentType);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SASQueryParameters.js","sourceRoot":"","sources":["../../src/SASQueryParameters.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { UserDelegationKey } from \"@azure/storage-common\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\n\n/**\n * Protocols for generated SAS.\n */\nexport enum SASProtocol {\n /**\n * Protocol that allows HTTPS only\n */\n Https = \"https\",\n\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n HttpsAndHttp = \"https,http\",\n}\n\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link FileSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n /**\n * The storage API version.\n */\n public readonly version: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SASProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link FileSASPermissions}, or {@link ShareSASPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link FileSASSignatureValues}).\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user who is authorized to\n * use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been\n * issued to the user specified in this value.\n */\n public readonly delegatedUserObjectId?: string;\n\n /**\n * Optional. The storage share or file path (only for {@link FileSASSignatureValues}).\n */\n public readonly resource?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n public readonly cacheControl?: string;\n\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n public readonly contentDisposition?: string;\n\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n public readonly contentEncoding?: string;\n\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n public readonly contentLanguage?: string;\n\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n public readonly contentType?: string;\n\n /**\n * The Azure Active Directory object ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedOid?: string;\n\n /**\n * The Azure Active Directory tenant ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedTenantId?: string;\n\n /**\n * The date-time the key is active.\n * Property of user delegation key.\n */\n private readonly signedStartsOn?: Date;\n\n /**\n * The date-time the key expires.\n * Property of user delegation key.\n */\n private readonly signedExpiresOn?: Date;\n\n /**\n * Abbreviation of the Azure Storage service that accepts the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedService?: string;\n\n /**\n * The service version that created the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedVersion?: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param permissions - Representing the storage permissions\n * @param services - Representing the storage services being accessed (only for Account SAS)\n * @param resourceTypes - Representing the storage resource types being accessed (only for Account SAS)\n * @param protocol - Representing the allowed HTTP protocol(s)\n * @param startsOn - Representing the start time for this SAS token\n * @param expiresOn - Representing the expiry time for this SAS token\n * @param ipRange - Representing the range of valid IP addresses for this SAS token\n * @param identifier - Representing the signed identifier (only for Service SAS)\n * @param resource - Representing the storage container or blob (only for Service SAS)\n * @param cacheControl - Representing the cache-control header (only for Blob/File Service SAS)\n * @param contentDisposition - Representing the content-disposition header (only for Blob/File Service SAS)\n * @param contentEncoding - Representing the content-encoding header (only for Blob/File Service SAS)\n * @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)\n * @param contentType - Representing the content-type header (only for Blob/File Service SAS)\n */\n constructor(\n version: string,\n signature: string,\n permissions?: string,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n userDelegationKey?: UserDelegationKey,\n delegatedUserObjectId?: string,\n ) {\n this.version = version;\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.signature = signature;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n\n if (userDelegationKey) {\n this.signedOid = userDelegationKey.signedObjectId;\n this.signedTenantId = userDelegationKey.signedTenantId;\n this.signedStartsOn = userDelegationKey.signedStartsOn;\n this.signedExpiresOn = userDelegationKey.signedExpiresOn;\n this.signedService = userDelegationKey.signedService;\n this.signedVersion = userDelegationKey.signedVersion;\n this.delegatedUserObjectId = delegatedUserObjectId;\n }\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\",\n \"ss\",\n \"srt\",\n \"spr\",\n \"st\",\n \"se\",\n \"sip\",\n \"si\",\n \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"skoid\", // Signed object ID\n \"sktid\", // Signed tenant ID\n \"skt\", // Signed key start time\n \"ske\", // Signed key expiry time\n \"sks\", // Signed key service\n \"skv\", // Signed key version\n \"sduoid\", // Signed key user delegation object ID\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"rscc\":\n this.tryAppendQueryParameter(queries, param, this.cacheControl);\n break;\n case \"rscd\":\n this.tryAppendQueryParameter(queries, param, this.contentDisposition);\n break;\n case \"rsce\":\n this.tryAppendQueryParameter(queries, param, this.contentEncoding);\n break;\n case \"rscl\":\n this.tryAppendQueryParameter(queries, param, this.contentLanguage);\n break;\n case \"rsct\":\n this.tryAppendQueryParameter(queries, param, this.contentType);\n break;\n case \"skoid\":\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined,\n );\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined,\n );\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sduoid\": // Signed key user delegation object ID\n this.tryAppendQueryParameter(queries, param, this.delegatedUserObjectId);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AbortSignalLike } from "@azure/abort-controller";
|
|
2
|
-
import type { FileServiceProperties, ShareCreateResponse, ShareDeleteResponse, ServiceGetPropertiesResponse, ServiceSetPropertiesResponse, ServiceListSharesSegmentHeaders, ListSharesResponseModel, SharePropertiesInternal } from "./generatedModels.js";
|
|
2
|
+
import type { FileServiceProperties, ShareCreateResponse, ShareDeleteResponse, ServiceGetPropertiesResponse, ServiceSetPropertiesResponse, ServiceListSharesSegmentHeaders, ListSharesResponseModel, SharePropertiesInternal, ServiceGetUserDelegationKeyResponse } from "./generatedModels.js";
|
|
3
3
|
import type { Pipeline } from "./Pipeline.js";
|
|
4
4
|
import type { CommonOptions } from "./StorageClient.js";
|
|
5
5
|
import { StorageClient } from "./StorageClient.js";
|
|
@@ -129,6 +129,16 @@ export interface ServiceGenerateAccountSasUrlOptions {
|
|
|
129
129
|
*/
|
|
130
130
|
ipRange?: SasIPRange;
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Options to configure the Service - Get User Delegation Key.
|
|
134
|
+
*/
|
|
135
|
+
export interface ServiceGetUserDelegationKeyOptions extends CommonOptions {
|
|
136
|
+
/**
|
|
137
|
+
* An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
|
|
138
|
+
* For example, use the @azure/abort-controller to create an `AbortSignal`.
|
|
139
|
+
*/
|
|
140
|
+
abortSignal?: AbortSignalLike;
|
|
141
|
+
}
|
|
132
142
|
/**
|
|
133
143
|
* A ShareServiceClient represents a URL to the Azure Storage File service allowing you
|
|
134
144
|
* to manipulate file shares.
|
|
@@ -423,5 +433,17 @@ export declare class ShareServiceClient extends StorageClient {
|
|
|
423
433
|
* @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.
|
|
424
434
|
*/
|
|
425
435
|
generateSasStringToSign(expiresOn?: Date, permissions?: AccountSASPermissions, resourceTypes?: string, options?: ServiceGenerateAccountSasUrlOptions): string;
|
|
436
|
+
/**
|
|
437
|
+
* ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential).
|
|
438
|
+
*
|
|
439
|
+
* Retrieves a user delegation key for the File service. This is only a valid operation when using
|
|
440
|
+
* bearer token authentication.
|
|
441
|
+
*
|
|
442
|
+
* @see https://learn.microsoft.com/rest/api/storageservices/get-user-delegation-key
|
|
443
|
+
*
|
|
444
|
+
* @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time
|
|
445
|
+
* @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time
|
|
446
|
+
*/
|
|
447
|
+
getUserDelegationKey(startsOn: Date, expiresOn: Date, options?: ServiceGetUserDelegationKeyOptions): Promise<ServiceGetUserDelegationKeyResponse>;
|
|
426
448
|
}
|
|
427
449
|
//# sourceMappingURL=ShareServiceClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareServiceClient.d.ts","sourceRoot":"","sources":["../../src/ShareServiceClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EACV,qBAAqB,EAErB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"ShareServiceClient.d.ts","sourceRoot":"","sources":["../../src/ShareServiceClient.ts"],"names":[],"mappings":"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"}
|