@azure/storage-file-datalake 12.25.0-beta.1 → 12.25.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/index.js +2 -10
- package/dist/index.js.map +1 -1
- package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js.map +1 -1
- package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/CredentialPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/RequestPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.browser.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js +1 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js.map +1 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/cache.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/constants.js +1 -1
- package/dist-esm/storage-blob/src/utils/constants.js.map +1 -1
- package/dist-esm/storage-blob/src/utils/utils.common.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/DataLakeFileSystemClient.js +0 -1
- package/dist-esm/storage-file-datalake/src/DataLakeFileSystemClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/DataLakeLeaseClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/DataLakeServiceClient.js +1 -2
- package/dist-esm/storage-file-datalake/src/DataLakeServiceClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/Pipeline.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/StorageClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/StorageContextClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/clients.js +0 -4
- package/dist-esm/storage-file-datalake/src/clients.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/credentials/UserDelegationKeyCredential.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/generated/src/storageClient.js +1 -1
- package/dist-esm/storage-file-datalake/src/generated/src/storageClient.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/models.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/sas/AccountSASSignatureValues.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/sas/DataLakeSASSignatureValues.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/sas/SASQueryParameters.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/transforms.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/utils/BufferScheduler.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/utils/DataLakeAclChangeFailedError.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/utils/PathClientInternal.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/utils/constants.js +1 -1
- package/dist-esm/storage-file-datalake/src/utils/constants.js.map +1 -1
- package/dist-esm/storage-file-datalake/src/utils/utils.common.js +0 -2
- package/dist-esm/storage-file-datalake/src/utils/utils.common.js.map +1 -1
- package/package.json +4 -8
- package/types/latest/storage-file-datalake.d.ts +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLakeSASSignatureValues.js","sourceRoot":"","sources":["../../../../src/sas/DataLakeSASSignatureValues.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { UserDelegationKeyCredential } from \"../credentials/UserDelegationKeyCredential\";\nimport { DataLakeSASPermissions } from \"./DataLakeSASPermissions\";\nimport { FileSystemSASPermissions } from \"./FileSystemSASPermissions\";\nimport { UserDelegationKey } from \"../models\";\nimport { ipRangeToString, SasIPRange } from \"./SasIPRange\";\nimport { SASProtocol, SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\nimport { DirectorySASPermissions } from \"./DirectorySASPermissions\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * DataLakeSASSignatureValues is used to help generating Blob and DataLake service SAS tokens for containers, blobs, filesystem, directories and files.\n */\nexport interface DataLakeSASSignatureValues {\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 {@link FileSystemSASPermissions}, {@link DirectorySASPermissions} or {@link DataLakeSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: DataLakeSASPermissions | DirectorySASPermissions | FileSystemSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the file system the SAS user may access.\n */\n fileSystemName: string;\n\n /**\n * Optional. The path name of the directory or file SAS user may access. Required if snapshotTime is provided.\n */\n pathName?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this value defines whether or not the {@link pathName} is a directory.\n * If this value is set to true, the Path is a Directory for a Directory SAS. If set to false or default, the Path\n * is a File Path for a File Path SAS.\n */\n isDirectory?: boolean;\n\n /**\n * Optional. Beginning in version 2020-02-10, indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Authorized AAD Object Id in GUID format. The AAD Object ID of a user\n * authorized by the owner of the user delegation key to perform the action granted by the SAS. The Azure Storage service will\n * ensure that the owner of the user delegation key has the required permissions before granting access but no additional permission\n * check for the user specified in this value will be performed. This cannot be used in conjuction with {@link agentObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed\n * to be unauthorized by the owner of the user delegation key. The Azure Storage Service will perform an additional POSIX ACL check to determine\n * if the user is authorized to perform the requested operation. This cannot be used in conjuction with {@link preauthorizedAgentObjectId}.\n * This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this is a GUID value that will be logged in the storage diagnostic logs and can be used to\n * correlate SAS generation with storage resource access. This is only used for User Delegation SAS.\n */\n correlationId?: string;\n\n /**\n * Optional. Snapshot timestamp string the SAS user may access. Only supported from API version 2018-11-09.\n */\n snapshotTime?: string;\n\n /**\n * Optional. The name of the access policy on the file system this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: 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 * Fill in the required details before running the following snippets.\n * @example\n * ```js\n * // Generate service level SAS for a file system\n * const containerSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: ContainerSASPermissions.parse(\"racwdl\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * // Fill in the required details before running the snippet.\n * @example\n * ```js\n * // Generate service level SAS for a file\n * const fileSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * fileName, // Required\n * permissions: DataLakeSASPermissions.parse(\"racwd\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * cacheControl: \"cache-control-override\", // Optional\n * contentDisposition: \"content-disposition-override\", // Optional\n * contentEncoding: \"content-encoding-override\", // Optional\n * contentLanguage: \"content-language-override\", // Optional\n * contentType: \"content-type-override\", // Optional\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters;\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n * WARNING: identifier will be ignored when generating user delegation SAS, permissions and expiresOn are required.\n *\n * @example\n * ```js\n * // Generate user delegation SAS for a file system\n * const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);\n * const fileSystemSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: FileSystemSASPermissions.parse(\"racwdl\"), // Required\n * startsOn, // Optional. Date type\n * expiresOn, // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2018-11-09\" // Must greater than or equal to 2018-11-09 to generate user delegation SAS\n * },\n * userDelegationKey, // UserDelegationKey\n * accountName\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @param accountName -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKey: UserDelegationKey,\n accountName: string,\n): SASQueryParameters;\n\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): SASQueryParameters {\n return generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey,\n accountName,\n ).sasQueryParameter;\n}\n\nexport function generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : 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 && userDelegationKeyCredential === undefined) {\n throw TypeError(\"Invalid sharedKeyCredential, userDelegationKey or accountName.\");\n }\n\n // Version 2020-12-06 adds support for encryptionscope in SAS.\n if (version >= \"2020-12-06\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n return generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string\n if (version >= \"2018-11-09\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.\n if (version >= \"2020-02-10\") {\n return generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n } else {\n return generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n }\n\n if (version >= \"2015-04-05\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n throw new RangeError(\n \"'version' must be >= '2018-11-09' when generating user delegation SAS using user delegation key.\",\n );\n }\n }\n\n throw new RangeError(\"'version' must be >= '2015-04-05'.\");\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2015-04-05 AND BEFORE 2018-11-09.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for DataLake SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n resource = \"b\";\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope ? dataLakeSASSignatureValues.encryptionScope : \"\",\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n undefined,\n undefined,\n undefined,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, containerName: string, blobName?: string): string {\n // FileSystem: \"/blob/account/fileSystemName\"\n // File: \"/blob/account/fileSystemName/fileName\"\n const elements: string[] = [`/blob/${accountName}/${containerName}`];\n if (blobName) {\n elements.push(`/${blobName}`);\n }\n return elements.join(\"\");\n}\n\nfunction SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n version: string,\n): DataLakeSASSignatureValues {\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.isDirectory || dataLakeSASSignatureValues.directoryDepth)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' to support directory SAS.\");\n }\n if (dataLakeSASSignatureValues.isDirectory && dataLakeSASSignatureValues.pathName === undefined) {\n throw RangeError(\"Must provide 'pathName' when 'isDirectory' is true.\");\n }\n if (\n dataLakeSASSignatureValues.directoryDepth !== undefined &&\n (!Number.isInteger(dataLakeSASSignatureValues.directoryDepth) ||\n dataLakeSASSignatureValues.directoryDepth < 0)\n ) {\n throw RangeError(\"'directoryDepth' must be a non-negative interger.\");\n }\n if (\n dataLakeSASSignatureValues.isDirectory &&\n dataLakeSASSignatureValues.directoryDepth === undefined\n ) {\n // calculate directoryDepth from pathName\n if (dataLakeSASSignatureValues.pathName === \"/\") {\n dataLakeSASSignatureValues.directoryDepth = 0;\n } else {\n dataLakeSASSignatureValues.directoryDepth = dataLakeSASSignatureValues.pathName\n ?.split(\"/\")\n .filter((x) => x !== \"\").length;\n }\n }\n\n if (\n version < \"2020-02-10\" &&\n dataLakeSASSignatureValues.permissions &&\n (dataLakeSASSignatureValues.permissions.move ||\n dataLakeSASSignatureValues.permissions.execute ||\n dataLakeSASSignatureValues.permissions.manageOwnership ||\n dataLakeSASSignatureValues.permissions.manageAccessControl)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing m, e, o or p permission.\");\n }\n\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.preauthorizedAgentObjectId ||\n dataLakeSASSignatureValues.agentObjectId ||\n dataLakeSASSignatureValues.correlationId)\n ) {\n throw RangeError(\n \"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId', 'agentObjectId' or 'correlationId'.\",\n );\n }\n if (\n dataLakeSASSignatureValues.preauthorizedAgentObjectId &&\n dataLakeSASSignatureValues.agentObjectId\n ) {\n throw RangeError(\n \"'preauthorizedAgentObjectId' or 'agentObjectId' shouldn't be specified at the same time.\",\n );\n }\n\n if (dataLakeSASSignatureValues.snapshotTime && version < \"2018-11-09\") {\n throw RangeError(\"'version' must be >= '2018-11-09' when provided 'snapshotTime'.\");\n }\n if (\n dataLakeSASSignatureValues.pathName === undefined &&\n dataLakeSASSignatureValues.snapshotTime\n ) {\n throw RangeError(\"Must provide 'blobName' when provided 'snapshotTime'.\");\n }\n\n return dataLakeSASSignatureValues;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DataLakeSASSignatureValues.js","sourceRoot":"","sources":["../../../../src/sas/DataLakeSASSignatureValues.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { UserDelegationKeyCredential } from \"../credentials/UserDelegationKeyCredential\";\nimport { DataLakeSASPermissions } from \"./DataLakeSASPermissions\";\nimport { FileSystemSASPermissions } from \"./FileSystemSASPermissions\";\nimport type { UserDelegationKey } from \"../models\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\nimport { DirectorySASPermissions } from \"./DirectorySASPermissions\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * DataLakeSASSignatureValues is used to help generating Blob and DataLake service SAS tokens for containers, blobs, filesystem, directories and files.\n */\nexport interface DataLakeSASSignatureValues {\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 {@link FileSystemSASPermissions}, {@link DirectorySASPermissions} or {@link DataLakeSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: DataLakeSASPermissions | DirectorySASPermissions | FileSystemSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the file system the SAS user may access.\n */\n fileSystemName: string;\n\n /**\n * Optional. The path name of the directory or file SAS user may access. Required if snapshotTime is provided.\n */\n pathName?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this value defines whether or not the {@link pathName} is a directory.\n * If this value is set to true, the Path is a Directory for a Directory SAS. If set to false or default, the Path\n * is a File Path for a File Path SAS.\n */\n isDirectory?: boolean;\n\n /**\n * Optional. Beginning in version 2020-02-10, indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Authorized AAD Object Id in GUID format. The AAD Object ID of a user\n * authorized by the owner of the user delegation key to perform the action granted by the SAS. The Azure Storage service will\n * ensure that the owner of the user delegation key has the required permissions before granting access but no additional permission\n * check for the user specified in this value will be performed. This cannot be used in conjuction with {@link agentObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed\n * to be unauthorized by the owner of the user delegation key. The Azure Storage Service will perform an additional POSIX ACL check to determine\n * if the user is authorized to perform the requested operation. This cannot be used in conjuction with {@link preauthorizedAgentObjectId}.\n * This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this is a GUID value that will be logged in the storage diagnostic logs and can be used to\n * correlate SAS generation with storage resource access. This is only used for User Delegation SAS.\n */\n correlationId?: string;\n\n /**\n * Optional. Snapshot timestamp string the SAS user may access. Only supported from API version 2018-11-09.\n */\n snapshotTime?: string;\n\n /**\n * Optional. The name of the access policy on the file system this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: 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 * Fill in the required details before running the following snippets.\n * @example\n * ```js\n * // Generate service level SAS for a file system\n * const containerSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: ContainerSASPermissions.parse(\"racwdl\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * // Fill in the required details before running the snippet.\n * @example\n * ```js\n * // Generate service level SAS for a file\n * const fileSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * fileName, // Required\n * permissions: DataLakeSASPermissions.parse(\"racwd\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * cacheControl: \"cache-control-override\", // Optional\n * contentDisposition: \"content-disposition-override\", // Optional\n * contentEncoding: \"content-encoding-override\", // Optional\n * contentLanguage: \"content-language-override\", // Optional\n * contentType: \"content-type-override\", // Optional\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters;\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n * WARNING: identifier will be ignored when generating user delegation SAS, permissions and expiresOn are required.\n *\n * @example\n * ```js\n * // Generate user delegation SAS for a file system\n * const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);\n * const fileSystemSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: FileSystemSASPermissions.parse(\"racwdl\"), // Required\n * startsOn, // Optional. Date type\n * expiresOn, // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2018-11-09\" // Must greater than or equal to 2018-11-09 to generate user delegation SAS\n * },\n * userDelegationKey, // UserDelegationKey\n * accountName\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @param accountName -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKey: UserDelegationKey,\n accountName: string,\n): SASQueryParameters;\n\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): SASQueryParameters {\n return generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey,\n accountName,\n ).sasQueryParameter;\n}\n\nexport function generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : 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 && userDelegationKeyCredential === undefined) {\n throw TypeError(\"Invalid sharedKeyCredential, userDelegationKey or accountName.\");\n }\n\n // Version 2020-12-06 adds support for encryptionscope in SAS.\n if (version >= \"2020-12-06\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n return generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string\n if (version >= \"2018-11-09\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.\n if (version >= \"2020-02-10\") {\n return generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n } else {\n return generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n }\n\n if (version >= \"2015-04-05\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n throw new RangeError(\n \"'version' must be >= '2018-11-09' when generating user delegation SAS using user delegation key.\",\n );\n }\n }\n\n throw new RangeError(\"'version' must be >= '2015-04-05'.\");\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2015-04-05 AND BEFORE 2018-11-09.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for DataLake SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n resource = \"b\";\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\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 dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope ? dataLakeSASSignatureValues.encryptionScope : \"\",\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n undefined,\n undefined,\n undefined,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\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.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\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 dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, containerName: string, blobName?: string): string {\n // FileSystem: \"/blob/account/fileSystemName\"\n // File: \"/blob/account/fileSystemName/fileName\"\n const elements: string[] = [`/blob/${accountName}/${containerName}`];\n if (blobName) {\n elements.push(`/${blobName}`);\n }\n return elements.join(\"\");\n}\n\nfunction SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n version: string,\n): DataLakeSASSignatureValues {\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.isDirectory || dataLakeSASSignatureValues.directoryDepth)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' to support directory SAS.\");\n }\n if (dataLakeSASSignatureValues.isDirectory && dataLakeSASSignatureValues.pathName === undefined) {\n throw RangeError(\"Must provide 'pathName' when 'isDirectory' is true.\");\n }\n if (\n dataLakeSASSignatureValues.directoryDepth !== undefined &&\n (!Number.isInteger(dataLakeSASSignatureValues.directoryDepth) ||\n dataLakeSASSignatureValues.directoryDepth < 0)\n ) {\n throw RangeError(\"'directoryDepth' must be a non-negative interger.\");\n }\n if (\n dataLakeSASSignatureValues.isDirectory &&\n dataLakeSASSignatureValues.directoryDepth === undefined\n ) {\n // calculate directoryDepth from pathName\n if (dataLakeSASSignatureValues.pathName === \"/\") {\n dataLakeSASSignatureValues.directoryDepth = 0;\n } else {\n dataLakeSASSignatureValues.directoryDepth = dataLakeSASSignatureValues.pathName\n ?.split(\"/\")\n .filter((x) => x !== \"\").length;\n }\n }\n\n if (\n version < \"2020-02-10\" &&\n dataLakeSASSignatureValues.permissions &&\n (dataLakeSASSignatureValues.permissions.move ||\n dataLakeSASSignatureValues.permissions.execute ||\n dataLakeSASSignatureValues.permissions.manageOwnership ||\n dataLakeSASSignatureValues.permissions.manageAccessControl)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing m, e, o or p permission.\");\n }\n\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.preauthorizedAgentObjectId ||\n dataLakeSASSignatureValues.agentObjectId ||\n dataLakeSASSignatureValues.correlationId)\n ) {\n throw RangeError(\n \"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId', 'agentObjectId' or 'correlationId'.\",\n );\n }\n if (\n dataLakeSASSignatureValues.preauthorizedAgentObjectId &&\n dataLakeSASSignatureValues.agentObjectId\n ) {\n throw RangeError(\n \"'preauthorizedAgentObjectId' or 'agentObjectId' shouldn't be specified at the same time.\",\n );\n }\n\n if (dataLakeSASSignatureValues.snapshotTime && version < \"2018-11-09\") {\n throw RangeError(\"'version' must be >= '2018-11-09' when provided 'snapshotTime'.\");\n }\n if (\n dataLakeSASSignatureValues.pathName === undefined &&\n dataLakeSASSignatureValues.snapshotTime\n ) {\n throw RangeError(\"Must provide 'blobName' when provided 'snapshotTime'.\");\n }\n\n return dataLakeSASSignatureValues;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SASQueryParameters.js","sourceRoot":"","sources":["../../../../src/sas/SASQueryParameters.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { UserDelegationKey } from \"../models\";\nimport { ipRangeToString, SasIPRange } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\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 * Options to construct {@link SASQueryParameters}.\n */\nexport interface SASQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SASProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n cacheControl?: string;\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n contentDisposition?: string;\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n contentEncoding?: string;\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n contentLanguage?: string;\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n contentType?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}. This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\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 BlobSASSignatureValues}\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 BlobSASPermissions}, or {@link ContainerSASPermissions} 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 BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\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 * 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 * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n public readonly directoryDepth?: number;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly agentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n public readonly encryptionScope?: string;\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 * @param userDelegationKey - Representing the user delegation key properties\n * @param preauthorizedAgentObjectId - Representing the authorized AAD Object ID (only for User Delegation SAS)\n * @param agentObjectId - Representing the unauthorized AAD Object ID (only for User Delegation SAS)\n * @param correlationId - Representing the correlation ID (only for User Delegation 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 directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\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 options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options?: SASQueryParametersOptions);\n\n constructor(\n version: string,\n signature: string,\n permissionsOrOptions?: string | SASQueryParametersOptions,\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 directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\n ) {\n this.version = version;\n this.signature = signature;\n\n if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== \"string\") {\n // SASQueryParametersOptions\n const options = permissionsOrOptions;\n this.services = options.services;\n this.resourceTypes = options.resourceTypes;\n this.expiresOn = options.expiresOn;\n this.permissions = options.permissions;\n this.protocol = options.protocol;\n this.startsOn = options.startsOn;\n this.ipRangeInner = options.ipRange;\n this.identifier = options.identifier;\n this.resource = options.resource;\n this.cacheControl = options.cacheControl;\n this.contentDisposition = options.contentDisposition;\n this.contentEncoding = options.contentEncoding;\n this.contentLanguage = options.contentLanguage;\n this.contentType = options.contentType;\n this.directoryDepth = options.directoryDepth;\n this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId;\n this.agentObjectId = options.agentObjectId;\n this.correlationId = options.correlationId;\n this.encryptionScope = options.encryptionScope;\n\n if (options.userDelegationKey) {\n this.signedOid = options.userDelegationKey.signedObjectId;\n this.signedTenantId = options.userDelegationKey.signedTenantId;\n this.signedStartsOn = options.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = options.userDelegationKey.signedExpiresOn;\n this.signedService = options.userDelegationKey.signedService;\n this.signedVersion = options.userDelegationKey.signedVersion;\n }\n } else {\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissionsOrOptions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n this.directoryDepth = directoryDepth;\n this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;\n this.agentObjectId = agentObjectId;\n this.correlationId = correlationId;\n this.encryptionScope = encryptionScope;\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 }\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 \"ses\",\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 \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"sdd\",\n \"saoid\",\n \"suoid\",\n \"scid\",\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 \"ses\":\n this.tryAppendQueryParameter(queries, param, this.encryptionScope);\n break;\n case \"skoid\": // Signed object ID\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 \"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 \"sdd\":\n this.tryAppendQueryParameter(queries, param, this.directoryDepth?.toString());\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"suoid\":\n this.tryAppendQueryParameter(queries, param, this.agentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\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/sas/SASQueryParameters.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { UserDelegationKey } from \"../models\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\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 * Options to construct {@link SASQueryParameters}.\n */\nexport interface SASQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SASProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n cacheControl?: string;\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n contentDisposition?: string;\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n contentEncoding?: string;\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n contentLanguage?: string;\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n contentType?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}. This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\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 BlobSASSignatureValues}\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 BlobSASPermissions}, or {@link ContainerSASPermissions} 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 BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\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 * 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 * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n public readonly directoryDepth?: number;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly agentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n public readonly encryptionScope?: string;\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 * @param userDelegationKey - Representing the user delegation key properties\n * @param preauthorizedAgentObjectId - Representing the authorized AAD Object ID (only for User Delegation SAS)\n * @param agentObjectId - Representing the unauthorized AAD Object ID (only for User Delegation SAS)\n * @param correlationId - Representing the correlation ID (only for User Delegation 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 directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\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 options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options?: SASQueryParametersOptions);\n\n constructor(\n version: string,\n signature: string,\n permissionsOrOptions?: string | SASQueryParametersOptions,\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 directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\n ) {\n this.version = version;\n this.signature = signature;\n\n if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== \"string\") {\n // SASQueryParametersOptions\n const options = permissionsOrOptions;\n this.services = options.services;\n this.resourceTypes = options.resourceTypes;\n this.expiresOn = options.expiresOn;\n this.permissions = options.permissions;\n this.protocol = options.protocol;\n this.startsOn = options.startsOn;\n this.ipRangeInner = options.ipRange;\n this.identifier = options.identifier;\n this.resource = options.resource;\n this.cacheControl = options.cacheControl;\n this.contentDisposition = options.contentDisposition;\n this.contentEncoding = options.contentEncoding;\n this.contentLanguage = options.contentLanguage;\n this.contentType = options.contentType;\n this.directoryDepth = options.directoryDepth;\n this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId;\n this.agentObjectId = options.agentObjectId;\n this.correlationId = options.correlationId;\n this.encryptionScope = options.encryptionScope;\n\n if (options.userDelegationKey) {\n this.signedOid = options.userDelegationKey.signedObjectId;\n this.signedTenantId = options.userDelegationKey.signedTenantId;\n this.signedStartsOn = options.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = options.userDelegationKey.signedExpiresOn;\n this.signedService = options.userDelegationKey.signedService;\n this.signedVersion = options.userDelegationKey.signedVersion;\n }\n } else {\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissionsOrOptions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n this.directoryDepth = directoryDepth;\n this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;\n this.agentObjectId = agentObjectId;\n this.correlationId = correlationId;\n this.encryptionScope = encryptionScope;\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 }\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 \"ses\",\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 \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"sdd\",\n \"saoid\",\n \"suoid\",\n \"scid\",\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 \"ses\":\n this.tryAppendQueryParameter(queries, param, this.encryptionScope);\n break;\n case \"skoid\": // Signed object ID\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 \"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 \"sdd\":\n this.tryAppendQueryParameter(queries, param, this.directoryDepth?.toString());\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"suoid\":\n this.tryAppendQueryParameter(queries, param, this.agentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../src/transforms.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\nimport {\n ContainerItem,\n CpkInfo as BlobCpkInfo,\n PublicAccessType as ContainerPublicAccessType,\n} from \"@azure/storage-blob\";\n\nimport { AclFailedEntry, CpkInfo } from \"./generated/src/models\";\nimport {\n AccessControlChangeError,\n FileSystemItem,\n Metadata,\n PathAccessControlItem,\n PathPermissions,\n PublicAccessType,\n RemovePathAccessControlItem,\n RolePermissions,\n ServiceListContainersSegmentResponse,\n ServiceListFileSystemsSegmentResponse,\n} from \"./models\";\nimport { ToBlobEndpointHostMappings, ToDfsEndpointHostMappings } from \"./utils/constants\";\nimport { base64encode } from \"./utils/utils.common\";\n\n/**\n * Get a blob endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToBlobEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.blob.core.windows.net\n * http://account.dfs.core.windows.net - http://account.blob.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toBlobEndpointUrl(url: string): string {\n return mapHostUrl(url, ToBlobEndpointHostMappings, \"toBlobEndpointUrl\");\n}\n\n/**\n * Get a dfs endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToDfsEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.dfs.core.windows.net\n * http://account.dfs.core.windows.net - http://account.dfs.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toDfsEndpointUrl(url: string): string {\n return mapHostUrl(url, ToDfsEndpointHostMappings, \"toDfsEndpointUrl\");\n}\n\nfunction mapHostUrl(url: string, hostMappings: string[][], callerMethodName: string): string {\n let urlParsed: URL;\n try {\n urlParsed = new URL(url);\n } catch (e) {\n // invalid urls are returned unmodified\n return url;\n }\n\n let host = urlParsed.hostname;\n if (host === undefined) {\n throw RangeError(`${callerMethodName}() parameter url ${url} doesn't include valid host.`);\n }\n\n for (const mapping of hostMappings) {\n if (host.includes(mapping[0])) {\n host = host.replace(mapping[0], mapping[1]);\n break;\n }\n }\n urlParsed.hostname = host;\n const result = urlParsed.toString();\n // don't add a trailing slash if one wasn't already present\n if (!url.endsWith(\"/\") && result.endsWith(\"/\")) {\n return result.slice(0, -1);\n } else {\n return result;\n }\n}\n\nfunction toFileSystemAsyncIterableIterator(\n iter: AsyncIterableIterator<ServiceListContainersSegmentResponse>,\n): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return {\n async next() {\n const rawResult = await iter.next();\n if (rawResult.value) {\n rawResult.value.fileSystemItems = rawResult.value.containerItems.map(\n (val: ContainerItem): FileSystemItem => {\n return {\n ...val,\n versionId: val.version,\n properties: {\n ...val.properties,\n publicAccess: toPublicAccessType(val.properties.publicAccess),\n },\n };\n },\n );\n }\n return rawResult as any;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n\nexport function toFileSystemPagedAsyncIterableIterator(\n iter: PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse>,\n): PagedAsyncIterableIterator<FileSystemItem, ServiceListFileSystemsSegmentResponse> {\n return {\n async next(): Promise<IteratorResult<FileSystemItem>> {\n const rawResult = await iter.next();\n const result = rawResult as IteratorResult<FileSystemItem>;\n if (!result.done && !rawResult.done) {\n result.value.properties.publicAccess = toPublicAccessType(\n rawResult.value.properties.publicAccess,\n );\n result.value.versionId = rawResult.value.version;\n }\n return result;\n },\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<\n FileSystemItem,\n ServiceListFileSystemsSegmentResponse\n > {\n return this;\n },\n byPage(\n settings: PageSettings = {},\n ): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return toFileSystemAsyncIterableIterator(iter.byPage(settings));\n },\n };\n}\n\nexport function toContainerPublicAccessType(\n publicAccessType?: PublicAccessType,\n): ContainerPublicAccessType | undefined {\n if (!publicAccessType) {\n return undefined;\n }\n\n switch (publicAccessType) {\n case \"filesystem\":\n return \"container\";\n case \"file\":\n return \"blob\";\n default:\n throw TypeError(\n `toContainerPublicAccessType() parameter ${publicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toPublicAccessType(\n containerPublicAccessType?: ContainerPublicAccessType,\n): PublicAccessType | undefined {\n if (!containerPublicAccessType) {\n return undefined;\n }\n\n switch (containerPublicAccessType) {\n case \"container\":\n return \"filesystem\";\n case \"blob\":\n return \"file\";\n default:\n throw TypeError(\n `toPublicAccessType() parameter ${containerPublicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toProperties(metadata?: Metadata): string | undefined {\n if (metadata === undefined) {\n return undefined;\n }\n\n const properties = [];\n for (const key in metadata) {\n if (Object.prototype.hasOwnProperty.call(metadata, key)) {\n const value = metadata[key];\n properties.push(`${key}=${base64encode(value)}`);\n }\n }\n\n return properties.join(\",\");\n}\n\nexport function toRolePermissions(permissionsString: string): RolePermissions {\n const error = new RangeError(\n `toRolePermissions() Invalid role permissions string ${permissionsString}`,\n );\n if (permissionsString.length !== 3) {\n throw error;\n }\n\n permissionsString = permissionsString.toLowerCase();\n\n let read = false;\n if (permissionsString[0] === \"r\") {\n read = true;\n } else if (permissionsString[0] !== \"-\") {\n throw error;\n }\n\n let write = false;\n if (permissionsString[1] === \"w\") {\n write = true;\n } else if (permissionsString[1] !== \"-\") {\n throw error;\n }\n\n let execute = false;\n if (permissionsString[2] === \"x\") {\n execute = true;\n } else if (permissionsString[2] !== \"-\") {\n throw error;\n }\n\n return { read, write, execute };\n}\n\nexport function toPermissions(permissionsString?: string): PathPermissions | undefined {\n if (permissionsString === undefined || permissionsString === \"\" || permissionsString === null) {\n return undefined;\n }\n\n if (permissionsString.length !== 9 && permissionsString.length !== 10) {\n throw RangeError(`toPermissions() Invalid permissions string ${permissionsString}`);\n }\n\n let stickyBit = false;\n if (permissionsString[8] === \"t\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"x\" + lastPart;\n } else if (permissionsString[8] === \"T\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"-\" + lastPart;\n }\n\n // Case insensitive\n permissionsString = permissionsString.toLowerCase();\n\n let extendedAcls = false;\n if (permissionsString.length === 10) {\n if (permissionsString[9] === \"+\") {\n extendedAcls = true;\n } else {\n throw RangeError(\n `toPermissions() Invalid extendedAcls bit ${permissionsString[9]} in permissions string ${permissionsString}`,\n );\n }\n }\n\n const owner = toRolePermissions(permissionsString.substr(0, 3));\n const group = toRolePermissions(permissionsString.substr(3, 3));\n const other = toRolePermissions(permissionsString.substr(6, 3));\n\n return {\n owner,\n group,\n other,\n stickyBit,\n extendedAcls,\n };\n}\n\nexport function toAccessControlItem(aclItemString: string): PathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string ${aclItemString} is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 3 || parts.length > 4) {\n throw error;\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts.length === 4) {\n if (parts[index] !== \"default\") {\n throw error;\n }\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n const permissions = toRolePermissions(parts[index++]);\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n permissions,\n };\n}\n\nexport function toRemoveAccessControlItem(aclItemString: string): RemovePathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string \"${aclItemString}\" is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 1 || parts.length > 3) {\n throw error;\n }\n\n if (parts.length === 3) {\n if (parts[0] !== \"default\") {\n throw error;\n }\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts[index] === \"default\") {\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n };\n}\n\nexport function toAcl(aclString?: string): PathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toRemoveAcl(aclString?: string): RemovePathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toRemoveAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toAccessControlItemString(item: PathAccessControlItem): string {\n const entityIdString = item.entityId !== undefined ? `:${item.entityId}` : \"\";\n const permissionsString =\n item.permissions !== undefined ? `:${toRolePermissionsString(item.permissions)}` : \"\";\n return `${item.defaultScope ? \"default:\" : \"\"}${\n item.accessControlType\n }${entityIdString}${permissionsString}`;\n}\n\nexport function toAclString(acl: PathAccessControlItem[]): string {\n return acl.map(toAccessControlItemString).join(\",\");\n}\n\nexport function toRolePermissionsString(p: RolePermissions, stickyBit: boolean = false): string {\n return `${p.read ? \"r\" : \"-\"}${p.write ? \"w\" : \"-\"}${\n stickyBit ? (p.execute ? \"t\" : \"T\") : p.execute ? \"x\" : \"-\"\n }`;\n}\n\nexport function toPermissionsString(permissions: PathPermissions): string {\n return `${toRolePermissionsString(permissions.owner)}${toRolePermissionsString(\n permissions.group,\n )}${toRolePermissionsString(permissions.other, permissions.stickyBit)}${\n permissions.extendedAcls ? \"+\" : \"\"\n }`;\n}\n\nexport function toAccessControlChangeFailureArray(\n aclFailedEntries: AclFailedEntry[] = [],\n): AccessControlChangeError[] {\n return aclFailedEntries.map((aclFailedEntry: AclFailedEntry) => {\n return {\n name: aclFailedEntry.name || \"\",\n isDirectory: (aclFailedEntry.type || \"\").toLowerCase() === \"directory\",\n message: aclFailedEntry.errorMessage || \"\",\n };\n });\n}\n\nexport function toBlobCpkInfo(input?: CpkInfo): BlobCpkInfo | undefined {\n return input\n ? {\n encryptionKey: input.encryptionKey,\n encryptionKeySha256: input.encryptionKeySha256,\n encryptionAlgorithm: \"AES256\",\n }\n : undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../src/transforms.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\nimport type {\n ContainerItem,\n CpkInfo as BlobCpkInfo,\n PublicAccessType as ContainerPublicAccessType,\n} from \"@azure/storage-blob\";\n\nimport type { AclFailedEntry, CpkInfo } from \"./generated/src/models\";\nimport type {\n AccessControlChangeError,\n FileSystemItem,\n Metadata,\n PathAccessControlItem,\n PathPermissions,\n PublicAccessType,\n RemovePathAccessControlItem,\n RolePermissions,\n ServiceListContainersSegmentResponse,\n ServiceListFileSystemsSegmentResponse,\n} from \"./models\";\nimport { ToBlobEndpointHostMappings, ToDfsEndpointHostMappings } from \"./utils/constants\";\nimport { base64encode } from \"./utils/utils.common\";\n\n/**\n * Get a blob endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToBlobEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.blob.core.windows.net\n * http://account.dfs.core.windows.net - http://account.blob.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toBlobEndpointUrl(url: string): string {\n return mapHostUrl(url, ToBlobEndpointHostMappings, \"toBlobEndpointUrl\");\n}\n\n/**\n * Get a dfs endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToDfsEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.dfs.core.windows.net\n * http://account.dfs.core.windows.net - http://account.dfs.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toDfsEndpointUrl(url: string): string {\n return mapHostUrl(url, ToDfsEndpointHostMappings, \"toDfsEndpointUrl\");\n}\n\nfunction mapHostUrl(url: string, hostMappings: string[][], callerMethodName: string): string {\n let urlParsed: URL;\n try {\n urlParsed = new URL(url);\n } catch (e) {\n // invalid urls are returned unmodified\n return url;\n }\n\n let host = urlParsed.hostname;\n if (host === undefined) {\n throw RangeError(`${callerMethodName}() parameter url ${url} doesn't include valid host.`);\n }\n\n for (const mapping of hostMappings) {\n if (host.includes(mapping[0])) {\n host = host.replace(mapping[0], mapping[1]);\n break;\n }\n }\n urlParsed.hostname = host;\n const result = urlParsed.toString();\n // don't add a trailing slash if one wasn't already present\n if (!url.endsWith(\"/\") && result.endsWith(\"/\")) {\n return result.slice(0, -1);\n } else {\n return result;\n }\n}\n\nfunction toFileSystemAsyncIterableIterator(\n iter: AsyncIterableIterator<ServiceListContainersSegmentResponse>,\n): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return {\n async next() {\n const rawResult = await iter.next();\n if (rawResult.value) {\n rawResult.value.fileSystemItems = rawResult.value.containerItems.map(\n (val: ContainerItem): FileSystemItem => {\n return {\n ...val,\n versionId: val.version,\n properties: {\n ...val.properties,\n publicAccess: toPublicAccessType(val.properties.publicAccess),\n },\n };\n },\n );\n }\n return rawResult as any;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n\nexport function toFileSystemPagedAsyncIterableIterator(\n iter: PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse>,\n): PagedAsyncIterableIterator<FileSystemItem, ServiceListFileSystemsSegmentResponse> {\n return {\n async next(): Promise<IteratorResult<FileSystemItem>> {\n const rawResult = await iter.next();\n const result = rawResult as IteratorResult<FileSystemItem>;\n if (!result.done && !rawResult.done) {\n result.value.properties.publicAccess = toPublicAccessType(\n rawResult.value.properties.publicAccess,\n );\n result.value.versionId = rawResult.value.version;\n }\n return result;\n },\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<\n FileSystemItem,\n ServiceListFileSystemsSegmentResponse\n > {\n return this;\n },\n byPage(\n settings: PageSettings = {},\n ): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return toFileSystemAsyncIterableIterator(iter.byPage(settings));\n },\n };\n}\n\nexport function toContainerPublicAccessType(\n publicAccessType?: PublicAccessType,\n): ContainerPublicAccessType | undefined {\n if (!publicAccessType) {\n return undefined;\n }\n\n switch (publicAccessType) {\n case \"filesystem\":\n return \"container\";\n case \"file\":\n return \"blob\";\n default:\n throw TypeError(\n `toContainerPublicAccessType() parameter ${publicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toPublicAccessType(\n containerPublicAccessType?: ContainerPublicAccessType,\n): PublicAccessType | undefined {\n if (!containerPublicAccessType) {\n return undefined;\n }\n\n switch (containerPublicAccessType) {\n case \"container\":\n return \"filesystem\";\n case \"blob\":\n return \"file\";\n default:\n throw TypeError(\n `toPublicAccessType() parameter ${containerPublicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toProperties(metadata?: Metadata): string | undefined {\n if (metadata === undefined) {\n return undefined;\n }\n\n const properties = [];\n for (const key in metadata) {\n if (Object.prototype.hasOwnProperty.call(metadata, key)) {\n const value = metadata[key];\n properties.push(`${key}=${base64encode(value)}`);\n }\n }\n\n return properties.join(\",\");\n}\n\nexport function toRolePermissions(permissionsString: string): RolePermissions {\n const error = new RangeError(\n `toRolePermissions() Invalid role permissions string ${permissionsString}`,\n );\n if (permissionsString.length !== 3) {\n throw error;\n }\n\n permissionsString = permissionsString.toLowerCase();\n\n let read = false;\n if (permissionsString[0] === \"r\") {\n read = true;\n } else if (permissionsString[0] !== \"-\") {\n throw error;\n }\n\n let write = false;\n if (permissionsString[1] === \"w\") {\n write = true;\n } else if (permissionsString[1] !== \"-\") {\n throw error;\n }\n\n let execute = false;\n if (permissionsString[2] === \"x\") {\n execute = true;\n } else if (permissionsString[2] !== \"-\") {\n throw error;\n }\n\n return { read, write, execute };\n}\n\nexport function toPermissions(permissionsString?: string): PathPermissions | undefined {\n if (permissionsString === undefined || permissionsString === \"\" || permissionsString === null) {\n return undefined;\n }\n\n if (permissionsString.length !== 9 && permissionsString.length !== 10) {\n throw RangeError(`toPermissions() Invalid permissions string ${permissionsString}`);\n }\n\n let stickyBit = false;\n if (permissionsString[8] === \"t\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"x\" + lastPart;\n } else if (permissionsString[8] === \"T\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"-\" + lastPart;\n }\n\n // Case insensitive\n permissionsString = permissionsString.toLowerCase();\n\n let extendedAcls = false;\n if (permissionsString.length === 10) {\n if (permissionsString[9] === \"+\") {\n extendedAcls = true;\n } else {\n throw RangeError(\n `toPermissions() Invalid extendedAcls bit ${permissionsString[9]} in permissions string ${permissionsString}`,\n );\n }\n }\n\n const owner = toRolePermissions(permissionsString.substr(0, 3));\n const group = toRolePermissions(permissionsString.substr(3, 3));\n const other = toRolePermissions(permissionsString.substr(6, 3));\n\n return {\n owner,\n group,\n other,\n stickyBit,\n extendedAcls,\n };\n}\n\nexport function toAccessControlItem(aclItemString: string): PathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string ${aclItemString} is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 3 || parts.length > 4) {\n throw error;\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts.length === 4) {\n if (parts[index] !== \"default\") {\n throw error;\n }\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n const permissions = toRolePermissions(parts[index++]);\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n permissions,\n };\n}\n\nexport function toRemoveAccessControlItem(aclItemString: string): RemovePathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string \"${aclItemString}\" is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 1 || parts.length > 3) {\n throw error;\n }\n\n if (parts.length === 3) {\n if (parts[0] !== \"default\") {\n throw error;\n }\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts[index] === \"default\") {\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n };\n}\n\nexport function toAcl(aclString?: string): PathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toRemoveAcl(aclString?: string): RemovePathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toRemoveAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toAccessControlItemString(item: PathAccessControlItem): string {\n const entityIdString = item.entityId !== undefined ? `:${item.entityId}` : \"\";\n const permissionsString =\n item.permissions !== undefined ? `:${toRolePermissionsString(item.permissions)}` : \"\";\n return `${item.defaultScope ? \"default:\" : \"\"}${\n item.accessControlType\n }${entityIdString}${permissionsString}`;\n}\n\nexport function toAclString(acl: PathAccessControlItem[]): string {\n return acl.map(toAccessControlItemString).join(\",\");\n}\n\nexport function toRolePermissionsString(p: RolePermissions, stickyBit: boolean = false): string {\n return `${p.read ? \"r\" : \"-\"}${p.write ? \"w\" : \"-\"}${\n stickyBit ? (p.execute ? \"t\" : \"T\") : p.execute ? \"x\" : \"-\"\n }`;\n}\n\nexport function toPermissionsString(permissions: PathPermissions): string {\n return `${toRolePermissionsString(permissions.owner)}${toRolePermissionsString(\n permissions.group,\n )}${toRolePermissionsString(permissions.other, permissions.stickyBit)}${\n permissions.extendedAcls ? \"+\" : \"\"\n }`;\n}\n\nexport function toAccessControlChangeFailureArray(\n aclFailedEntries: AclFailedEntry[] = [],\n): AccessControlChangeError[] {\n return aclFailedEntries.map((aclFailedEntry: AclFailedEntry) => {\n return {\n name: aclFailedEntry.name || \"\",\n isDirectory: (aclFailedEntry.type || \"\").toLowerCase() === \"directory\",\n message: aclFailedEntry.errorMessage || \"\",\n };\n });\n}\n\nexport function toBlobCpkInfo(input?: CpkInfo): BlobCpkInfo | undefined {\n return input\n ? {\n encryptionKey: input.encryptionKey,\n encryptionKeySha256: input.encryptionKeySha256,\n encryptionAlgorithm: \"AES256\",\n }\n : undefined;\n}\n"]}
|