@azure/storage-file-datalake 12.30.0-beta.1 → 12.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/DataLakeFileSystemClient.d.ts +3 -3
- package/dist/browser/DataLakeFileSystemClient.d.ts.map +1 -1
- package/dist/browser/DataLakeFileSystemClient.js +1 -1
- package/dist/browser/DataLakeFileSystemClient.js.map +1 -1
- package/dist/browser/DataLakeServiceClient.d.ts +4 -4
- package/dist/browser/DataLakeServiceClient.d.ts.map +1 -1
- package/dist/browser/DataLakeServiceClient.js +1 -1
- package/dist/browser/DataLakeServiceClient.js.map +1 -1
- package/dist/browser/Pipeline.d.ts +1 -2
- package/dist/browser/Pipeline.d.ts.map +1 -1
- package/dist/browser/Pipeline.js +1 -2
- package/dist/browser/Pipeline.js.map +1 -1
- package/dist/browser/StorageClient.d.ts +1 -2
- package/dist/browser/StorageClient.d.ts.map +1 -1
- package/dist/browser/StorageClient.js.map +1 -1
- package/dist/browser/clients.d.ts +4 -4
- package/dist/browser/clients.d.ts.map +1 -1
- package/dist/browser/clients.js +1 -1
- package/dist/browser/clients.js.map +1 -1
- package/dist/browser/generated/src/storageClient.js +1 -1
- package/dist/browser/generated/src/storageClient.js.map +1 -1
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/models.d.ts +14 -2
- package/dist/browser/models.d.ts.map +1 -1
- package/dist/browser/models.js.map +1 -1
- package/dist/browser/utils/constants.d.ts.map +1 -1
- package/dist/browser/utils/constants.js +1 -1
- package/dist/browser/utils/constants.js.map +1 -1
- package/dist/commonjs/DataLakeFileSystemClient.d.ts +3 -3
- package/dist/commonjs/DataLakeFileSystemClient.d.ts.map +1 -1
- package/dist/commonjs/DataLakeFileSystemClient.js +3 -2
- package/dist/commonjs/DataLakeFileSystemClient.js.map +4 -4
- package/dist/commonjs/DataLakeLeaseClient.js +2 -0
- package/dist/commonjs/DataLakeLeaseClient.js.map +2 -2
- package/dist/commonjs/DataLakeServiceClient.d.ts +4 -4
- package/dist/commonjs/DataLakeServiceClient.d.ts.map +1 -1
- package/dist/commonjs/DataLakeServiceClient.js +4 -3
- package/dist/commonjs/DataLakeServiceClient.js.map +4 -4
- package/dist/commonjs/Pipeline.d.ts +1 -2
- package/dist/commonjs/Pipeline.d.ts.map +1 -1
- package/dist/commonjs/Pipeline.js +18 -18
- package/dist/commonjs/Pipeline.js.map +4 -4
- package/dist/commonjs/StorageClient.d.ts +1 -2
- package/dist/commonjs/StorageClient.d.ts.map +1 -1
- package/dist/commonjs/StorageClient.js +1 -0
- package/dist/commonjs/StorageClient.js.map +3 -3
- package/dist/commonjs/StorageContextClient.js +1 -0
- package/dist/commonjs/StorageContextClient.js.map +1 -1
- package/dist/commonjs/clients.d.ts +4 -4
- package/dist/commonjs/clients.d.ts.map +1 -1
- package/dist/commonjs/clients.js +6 -5
- package/dist/commonjs/clients.js.map +4 -4
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts +1 -1
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts.map +1 -1
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js +3 -2
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +3 -3
- package/dist/commonjs/generated/src/index.js +1 -0
- package/dist/commonjs/generated/src/index.js.map +1 -1
- package/dist/commonjs/generated/src/models/index.js +1 -0
- package/dist/commonjs/generated/src/models/index.js.map +1 -1
- package/dist/commonjs/generated/src/models/mappers.js +1 -0
- package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
- package/dist/commonjs/generated/src/models/parameters.js +1 -0
- package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
- package/dist/commonjs/generated/src/operations/fileSystemOperations.js +1 -0
- package/dist/commonjs/generated/src/operations/fileSystemOperations.js.map +1 -1
- package/dist/commonjs/generated/src/operations/index.js +1 -0
- package/dist/commonjs/generated/src/operations/index.js.map +1 -1
- package/dist/commonjs/generated/src/operations/pathOperations.js +1 -0
- package/dist/commonjs/generated/src/operations/pathOperations.js.map +1 -1
- package/dist/commonjs/generated/src/operations/service.js +1 -0
- package/dist/commonjs/generated/src/operations/service.js.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.js +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.js.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/index.js +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.js +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.js.map +1 -1
- package/dist/commonjs/generated/src/operationsInterfaces/service.js +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.js.map +1 -1
- package/dist/commonjs/generated/src/storageClient.js +2 -1
- package/dist/commonjs/generated/src/storageClient.js.map +2 -2
- package/dist/commonjs/index.d.ts +2 -2
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +14 -13
- package/dist/commonjs/index.js.map +3 -3
- package/dist/commonjs/log.js +1 -0
- package/dist/commonjs/log.js.map +1 -1
- package/dist/commonjs/models.d.ts +14 -2
- package/dist/commonjs/models.d.ts.map +1 -1
- package/dist/commonjs/models.internal.js +1 -0
- package/dist/commonjs/models.internal.js.map +1 -1
- package/dist/commonjs/models.js +1 -0
- package/dist/commonjs/models.js.map +2 -2
- package/dist/commonjs/sas/AccountSASPermissions.js +1 -0
- package/dist/commonjs/sas/AccountSASPermissions.js.map +1 -1
- package/dist/commonjs/sas/AccountSASResourceTypes.js +1 -0
- package/dist/commonjs/sas/AccountSASResourceTypes.js.map +1 -1
- package/dist/commonjs/sas/AccountSASServices.js +1 -0
- package/dist/commonjs/sas/AccountSASServices.js.map +1 -1
- package/dist/commonjs/sas/AccountSASSignatureValues.js +1 -0
- package/dist/commonjs/sas/AccountSASSignatureValues.js.map +1 -1
- package/dist/commonjs/sas/DataLakeSASPermissions.js +1 -0
- package/dist/commonjs/sas/DataLakeSASPermissions.js.map +1 -1
- package/dist/commonjs/sas/DataLakeSASSignatureValues.js +1 -0
- package/dist/commonjs/sas/DataLakeSASSignatureValues.js.map +1 -1
- package/dist/commonjs/sas/DirectorySASPermissions.js +1 -0
- package/dist/commonjs/sas/DirectorySASPermissions.js.map +1 -1
- package/dist/commonjs/sas/FileSystemSASPermissions.js +1 -0
- package/dist/commonjs/sas/FileSystemSASPermissions.js.map +1 -1
- package/dist/commonjs/sas/SASQueryParameters.js +1 -0
- package/dist/commonjs/sas/SASQueryParameters.js.map +1 -1
- package/dist/commonjs/sas/SasIPRange.js +1 -0
- package/dist/commonjs/sas/SasIPRange.js.map +1 -1
- package/dist/commonjs/transforms.js +1 -0
- package/dist/commonjs/transforms.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/Batch.js +1 -0
- package/dist/commonjs/utils/Batch.js.map +1 -1
- package/dist/commonjs/utils/BufferScheduler.js +1 -0
- package/dist/commonjs/utils/BufferScheduler.js.map +1 -1
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.js +1 -0
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.js.map +1 -1
- package/dist/commonjs/utils/PathClientInternal.js +1 -0
- package/dist/commonjs/utils/PathClientInternal.js.map +1 -1
- package/dist/commonjs/utils/constants.d.ts.map +1 -1
- package/dist/commonjs/utils/constants.js +2 -1
- package/dist/commonjs/utils/constants.js.map +2 -2
- package/dist/commonjs/utils/tracing.js +1 -0
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/utils/utils.common.js +1 -0
- package/dist/commonjs/utils/utils.common.js.map +1 -1
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +24 -21
- package/dist/commonjs/utils/utils.js.map +3 -3
- package/dist/esm/DataLakeFileSystemClient.d.ts +3 -3
- package/dist/esm/DataLakeFileSystemClient.d.ts.map +1 -1
- package/dist/esm/DataLakeFileSystemClient.js +1 -1
- package/dist/esm/DataLakeFileSystemClient.js.map +1 -1
- package/dist/esm/DataLakeServiceClient.d.ts +4 -4
- package/dist/esm/DataLakeServiceClient.d.ts.map +1 -1
- package/dist/esm/DataLakeServiceClient.js +1 -1
- package/dist/esm/DataLakeServiceClient.js.map +1 -1
- package/dist/esm/Pipeline.d.ts +1 -2
- package/dist/esm/Pipeline.d.ts.map +1 -1
- package/dist/esm/Pipeline.js +1 -2
- package/dist/esm/Pipeline.js.map +1 -1
- package/dist/esm/StorageClient.d.ts +1 -2
- package/dist/esm/StorageClient.d.ts.map +1 -1
- package/dist/esm/StorageClient.js.map +1 -1
- package/dist/esm/clients.d.ts +4 -4
- package/dist/esm/clients.d.ts.map +1 -1
- package/dist/esm/clients.js +1 -1
- package/dist/esm/clients.js.map +1 -1
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts +1 -1
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts.map +1 -1
- package/dist/esm/credentials/StorageSharedKeyCredential.js +1 -1
- package/dist/esm/credentials/StorageSharedKeyCredential.js.map +1 -1
- package/dist/esm/generated/src/storageClient.js +1 -1
- package/dist/esm/generated/src/storageClient.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models.d.ts +14 -2
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/models.js.map +1 -1
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -1
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +31 -22
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/react-native/DataLakeFileSystemClient.d.ts +3 -3
- package/dist/react-native/DataLakeFileSystemClient.d.ts.map +1 -1
- package/dist/react-native/DataLakeFileSystemClient.js +1 -1
- package/dist/react-native/DataLakeFileSystemClient.js.map +1 -1
- package/dist/react-native/DataLakeServiceClient.d.ts +4 -4
- package/dist/react-native/DataLakeServiceClient.d.ts.map +1 -1
- package/dist/react-native/DataLakeServiceClient.js +1 -1
- package/dist/react-native/DataLakeServiceClient.js.map +1 -1
- package/dist/react-native/Pipeline.d.ts +1 -2
- package/dist/react-native/Pipeline.d.ts.map +1 -1
- package/dist/react-native/Pipeline.js +1 -2
- package/dist/react-native/Pipeline.js.map +1 -1
- package/dist/react-native/StorageClient.d.ts +1 -2
- package/dist/react-native/StorageClient.d.ts.map +1 -1
- package/dist/react-native/StorageClient.js.map +1 -1
- package/dist/react-native/clients.d.ts +4 -4
- package/dist/react-native/clients.d.ts.map +1 -1
- package/dist/react-native/clients.js +1 -1
- package/dist/react-native/clients.js.map +1 -1
- package/dist/react-native/generated/src/storageClient.js +1 -1
- package/dist/react-native/generated/src/storageClient.js.map +1 -1
- package/dist/react-native/index.d.ts +2 -2
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/models.d.ts +14 -2
- package/dist/react-native/models.d.ts.map +1 -1
- package/dist/react-native/models.js.map +1 -1
- package/dist/react-native/utils/constants.d.ts.map +1 -1
- package/dist/react-native/utils/constants.js +1 -1
- package/dist/react-native/utils/constants.js.map +1 -1
- package/package.json +21 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/sas/DataLakeSASSignatureValues.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential.js\";\nimport { DataLakeSASPermissions } from \"./DataLakeSASPermissions.js\";\nimport { FileSystemSASPermissions } from \"./FileSystemSASPermissions.js\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { SASQueryParameters } from \"./SASQueryParameters.js\";\nimport { SERVICE_VERSION } from \"../utils/constants.js\";\nimport { truncatedISO8061Date } from \"../utils/utils.common.js\";\nimport { DirectorySASPermissions } from \"./DirectorySASPermissions.js\";\nimport { UserDelegationKeyCredential, type UserDelegationKey } from \"@azure/storage-common\";\nimport type { RequestHeaders, RequestQueryParameters } from \"../models.js\";\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://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user would is authorized to\n * use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been\n * issued to the user specified in this value.\n */\n delegatedUserObjectId?: string;\n\n /**\n * Optional. 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 * Request headers used in generating a SAS token\n */\n requestHeaders?: RequestHeaders;\n /**\n * Request query parameters used in generating a SAS token\n */\n requestQueryParameters?: RequestQueryParameters;\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 * ```ts snippet:ignore\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 * ```ts snippet:ignore\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 * ```ts snippet:ignore\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 if (version >= \"2026-04-06\") {\n return generateBlobSASQueryParametersUDK20260406(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n if (version >= \"2025-07-05\") {\n return generateBlobSASQueryParametersUDK20250705(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n } else {\n return generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n }\n\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://learn.microsoft.com/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\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2025-07-05.\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 generateBlobSASQueryParametersUDK20250705(\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 userDelegationKeyCredential.userDelegationKey.signedDelegatedUserTenantId, // SignedKeyDelegatedUserTenantId\n dataLakeSASSignatureValues.delegatedUserObjectId, // SignedDelegatedUserObjectId\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 dataLakeSASSignatureValues.delegatedUserObjectId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2026-04-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 generateBlobSASQueryParametersUDK20260406(\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 userDelegationKeyCredential.userDelegationKey.signedDelegatedUserTenantId, // SignedKeyDelegatedUserTenantId, will be added in a future release.\n dataLakeSASSignatureValues.delegatedUserObjectId, // SignedDelegatedUserObjectId, will be added in future release.\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope,\n formatRequestHeadersForSasSigning(dataLakeSASSignatureValues.requestHeaders),\n formatRequestQueryParametersForSasSigning(dataLakeSASSignatureValues.requestQueryParameters),\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 dataLakeSASSignatureValues.delegatedUserObjectId,\n getKeysOfRequestHeaders(dataLakeSASSignatureValues.requestHeaders),\n getKeysOfRequestHeaders(dataLakeSASSignatureValues.requestQueryParameters),\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction formatRequestHeadersForSasSigning(\n requestHeaders: RequestHeaders | undefined,\n): string | undefined {\n if (requestHeaders === undefined) {\n return undefined;\n }\n\n let canonicalValue = \"\";\n Object.keys(requestHeaders).forEach(function (key) {\n // key: the name of the object key\n // index: the ordinal position of the key within the object\n canonicalValue = canonicalValue + key + \":\" + requestHeaders[key] + \"\\n\";\n });\n return canonicalValue;\n}\n\nfunction formatRequestQueryParametersForSasSigning(\n queryParameters: RequestQueryParameters | undefined,\n): string | undefined {\n if (queryParameters === undefined) {\n return undefined;\n }\n\n let canonicalValue = \"\";\n Object.keys(queryParameters).forEach(function (key) {\n // key: the name of the object key\n // index: the ordinal position of the key within the object\n canonicalValue = canonicalValue + \"\\n\" + key + \":\" + queryParameters[key];\n });\n return canonicalValue;\n}\n\nfunction getKeysOfRequestHeaders(requestHeaders: RequestHeaders | undefined): string | undefined {\n if (requestHeaders === undefined) {\n return undefined;\n }\n\n let requestKeys = \"\";\n let index = 0;\n Object.keys(requestHeaders).forEach(function (key) {\n // key: the name of the object key\n // index: the ordinal position of the key within the object\n if (index !== 0) {\n requestKeys = requestKeys + \",\";\n }\n index++;\n requestKeys = requestKeys + key;\n });\n return requestKeys;\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"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/sas/DirectorySASPermissions.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a directory.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link DataLakeSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class DirectorySASPermissions {\n /**\n * Creates an {@link DirectorySASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): DirectorySASPermissions {\n const directorySASPermissions = new DirectorySASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n directorySASPermissions.read = true;\n break;\n case \"a\":\n directorySASPermissions.add = true;\n break;\n case \"c\":\n directorySASPermissions.create = true;\n break;\n case \"w\":\n directorySASPermissions.write = true;\n break;\n case \"d\":\n directorySASPermissions.delete = true;\n break;\n case \"l\":\n directorySASPermissions.list = true;\n break;\n case \"m\":\n directorySASPermissions.move = true;\n break;\n case \"e\":\n directorySASPermissions.execute = true;\n break;\n case \"o\":\n directorySASPermissions.manageOwnership = true;\n break;\n case \"p\":\n directorySASPermissions.manageAccessControl = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n\n return directorySASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies List access granted.\n */\n public list: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies Ownership access granted, which allows the caller to set owner, owning group,\n * or act as the owner when renaming or deleting a blob (file or directory) within a folder\n * that has the sticky bit set.\n */\n public manageOwnership: boolean = false;\n\n /**\n * Specifies Permission access granted, which allows the caller to set permissions and\n * POSIX ACLs on blobs (files and directories).\n */\n public manageAccessControl: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.manageOwnership) {\n permissions.push(\"o\");\n }\n if (this.manageAccessControl) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnC,OAAc,MAAM,aAA8C;AAChE,UAAM,0BAA0B,IAAI,wBAAwB;AAE5D,eAAW,QAAQ,aAAa;AAC9B,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,MAAM;AAC9B;AAAA,QACF,KAAK;AACH,kCAAwB,SAAS;AACjC;AAAA,QACF,KAAK;AACH,kCAAwB,QAAQ;AAChC;AAAA,QACF,KAAK;AACH,kCAAwB,SAAS;AACjC;AAAA,QACF,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,UAAU;AAClC;AAAA,QACF,KAAK;AACH,kCAAwB,kBAAkB;AAC1C;AAAA,QACF,KAAK;AACH,kCAAwB,sBAAsB;AAC9C;AAAA,QACF;AACE,gBAAM,IAAI,WAAW,sBAAsB,IAAI,EAAE;AAAA,MACrD;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,MAAe;AAAA;AAAA;AAAA;AAAA,EAKf,SAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,QAAiB;AAAA;AAAA;AAAA;AAAA,EAKjB,SAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,UAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,kBAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B,sBAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU/B,WAAmB;AACxB,UAAM,cAAwB,CAAC;AAC/B,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,KAAK;AACZ,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,QAAQ;AACf,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,OAAO;AACd,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,QAAQ;AACf,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,SAAS;AAChB,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,iBAAiB;AACxB,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,qBAAqB;AAC5B,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,WAAO,YAAY,KAAK,EAAE;AAAA,EAC5B;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/sas/FileSystemSASPermissions.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a container.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link DataLakeSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class FileSystemSASPermissions {\n /**\n * Creates an {@link FileSystemSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): FileSystemSASPermissions {\n const containerSASPermissions = new FileSystemSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n containerSASPermissions.read = true;\n break;\n case \"a\":\n containerSASPermissions.add = true;\n break;\n case \"c\":\n containerSASPermissions.create = true;\n break;\n case \"w\":\n containerSASPermissions.write = true;\n break;\n case \"d\":\n containerSASPermissions.delete = true;\n break;\n case \"l\":\n containerSASPermissions.list = true;\n break;\n case \"m\":\n containerSASPermissions.move = true;\n break;\n case \"e\":\n containerSASPermissions.execute = true;\n break;\n case \"o\":\n containerSASPermissions.manageOwnership = true;\n break;\n case \"p\":\n containerSASPermissions.manageAccessControl = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n\n return containerSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies List access granted.\n */\n public list: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies Ownership access granted, which allows the caller to set owner, owning group,\n * or act as the owner when renaming or deleting a blob (file or directory) within a folder\n * that has the sticky bit set.\n */\n public manageOwnership: boolean = false;\n\n /**\n * Specifies Permission access granted, which allows the caller to set permissions and\n * POSIX ACLs on blobs (files and directories).\n */\n public manageAccessControl: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.manageOwnership) {\n permissions.push(\"o\");\n }\n if (this.manageAccessControl) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpC,OAAc,MAAM,aAA+C;AACjE,UAAM,0BAA0B,IAAI,yBAAyB;AAE7D,eAAW,QAAQ,aAAa;AAC9B,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,MAAM;AAC9B;AAAA,QACF,KAAK;AACH,kCAAwB,SAAS;AACjC;AAAA,QACF,KAAK;AACH,kCAAwB,QAAQ;AAChC;AAAA,QACF,KAAK;AACH,kCAAwB,SAAS;AACjC;AAAA,QACF,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,OAAO;AAC/B;AAAA,QACF,KAAK;AACH,kCAAwB,UAAU;AAClC;AAAA,QACF,KAAK;AACH,kCAAwB,kBAAkB;AAC1C;AAAA,QACF,KAAK;AACH,kCAAwB,sBAAsB;AAC9C;AAAA,QACF;AACE,gBAAM,IAAI,WAAW,sBAAsB,IAAI,EAAE;AAAA,MACrD;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,MAAe;AAAA;AAAA;AAAA;AAAA,EAKf,SAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,QAAiB;AAAA;AAAA;AAAA;AAAA,EAKjB,SAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,OAAgB;AAAA;AAAA;AAAA;AAAA,EAKhB,UAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,kBAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B,sBAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU/B,WAAmB;AACxB,UAAM,cAAwB,CAAC;AAC/B,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,KAAK;AACZ,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,QAAQ;AACf,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,OAAO;AACd,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,QAAQ;AACf,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,MAAM;AACb,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,SAAS;AAChB,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,iBAAiB;AACxB,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,QAAI,KAAK,qBAAqB;AAC5B,kBAAY,KAAK,GAAG;AAAA,IACtB;AACA,WAAO,YAAY,KAAK,EAAE;AAAA,EAC5B;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/sas/SASQueryParameters.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport { truncatedISO8061Date } from \"../utils/utils.common.js\";\nimport type { UserDelegationKey } from \"@azure/storage-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://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user would is authorized to\n * use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been\n * issued to the user specified in this value.\n */\n delegatedUserObjectId?: string;\n /**\n * 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://learn.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 * Keys for request headers required in generating the SAS token\n */\n requestHeaderKeys?: string;\n /**\n * Keys for query parameters required in generating the SAS token\n */\n requestQueryParameterKeys?: 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://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Beginning in version 2025-07-05, this value specifies the Entra ID of the user would is authorized to\n * use the resulting SAS URL. The resulting SAS URL must be used in conjunction with an Entra ID token that has been\n * issued to the user specified in this value.\n */\n public readonly delegatedUserObjectId?: string;\n\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://learn.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 * The delegated user tenant id in Azure AD.\n * Property of user delegation key.\n */\n private readonly signedDelegatedUserTid?: 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 * Keys for request headers required in the SAS token\n */\n public readonly requestHeaderKeys?: string;\n\n /**\n * Keys for request query parameters required in the SAS token\n */\n public readonly requestQueryParameterKeys?: 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 delegatedUserObjectId?: string,\n requestHeaderKeys?: string,\n requestQueryParameterKeys?: 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 delegatedUserObjectId?: string,\n requestHeaderKeys?: string,\n requestQueryParameterKeys?: 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.delegatedUserObjectId = options.delegatedUserObjectId;\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 this.requestHeaderKeys = options.requestHeaderKeys;\n this.requestQueryParameterKeys = options.requestQueryParameterKeys;\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 this.signedDelegatedUserTid = options.userDelegationKey.signedDelegatedUserTenantId;\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.delegatedUserObjectId = delegatedUserObjectId;\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 this.requestHeaderKeys = requestHeaderKeys;\n this.requestQueryParameterKeys = requestQueryParameterKeys;\n\n if (userDelegationKey) {\n this.signedOid = userDelegationKey.signedObjectId;\n this.signedTenantId = userDelegationKey.signedTenantId;\n this.signedStartsOn = userDelegationKey.signedStartsOn;\n this.signedExpiresOn = userDelegationKey.signedExpiresOn;\n this.signedService = userDelegationKey.signedService;\n this.signedVersion = userDelegationKey.signedVersion;\n this.signedDelegatedUserTid = userDelegationKey.signedDelegatedUserTenantId;\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 \"srh\", // Request Headers\n \"srq\", // Request QueryParameters\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"sdd\",\n \"saoid\",\n \"suoid\",\n \"scid\",\n \"sduoid\", // Signed key user delegation object ID\n \"skdutid\", // Signed key user delegation tenant ID\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"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 case \"sduoid\":\n this.tryAppendQueryParameter(queries, param, this.delegatedUserObjectId);\n break;\n case \"skdutid\":\n this.tryAppendQueryParameter(queries, param, this.signedDelegatedUserTid);\n break;\n case \"srh\": // Request headers\n this.tryAppendQueryParameter(queries, param, this.requestHeaderKeys);\n break;\n case \"srq\": // Request headers\n this.tryAppendQueryParameter(queries, param, this.requestQueryParameterKeys);\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"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["SASProtocol"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/sas/SasIPRange.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange: SasIPRange): string {\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BO,SAAS,gBAAgB,SAA6B;AAC3D,SAAO,QAAQ,MAAM,GAAG,QAAQ,KAAK,IAAI,QAAQ,GAAG,KAAK,QAAQ;AACnE;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../src/transforms.ts"],
|
|
4
4
|
"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\";\nimport type { AclFailedEntry, CpkInfo } from \"./generated/src/models/index.js\";\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.js\";\nimport { ToBlobEndpointHostMappings, ToDfsEndpointHostMappings } from \"./utils/constants.js\";\nimport { base64encode } from \"./utils/utils.common.js\";\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"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/utils/Batch.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// In browser, during webpack or browserify bundling, this module will be replaced by 'events'\n// https://github.com/Gozala/events\nimport { EventEmitter } from \"events\";\n\n/**\n * Operation is an async function to be executed and managed by Batch.\n */\nexport declare type Operation = () => Promise<any>;\n\n/**\n * States for Batch.\n */\nenum BatchStates {\n Good,\n Error,\n}\n\n/**\n * Batch provides basic parallel execution with concurrency limits.\n * Will stop execute left operations when one of the executed operation throws an error.\n * But Batch cannot cancel ongoing operations, you need to cancel them by yourself.\n */\nexport class Batch {\n /**\n * Concurrency. Must be lager than 0.\n */\n private concurrency: number;\n\n /**\n * Number of active operations under execution.\n */\n private actives: number = 0;\n\n /**\n * Number of completed operations under execution.\n */\n private completed: number = 0;\n\n /**\n * Offset of next operation to be executed.\n */\n private offset: number = 0;\n\n /**\n * Operation array to be executed.\n */\n private operations: Operation[] = [];\n\n /**\n * States of Batch. When an error happens, state will turn into error.\n * Batch will stop execute left operations.\n */\n private state: BatchStates = BatchStates.Good;\n\n /**\n * A private emitter used to pass events inside this class.\n */\n private emitter: EventEmitter;\n\n /**\n * Creates an instance of Batch.\n * @param concurrency -\n */\n public constructor(concurrency: number = 5) {\n if (concurrency < 1) {\n throw new RangeError(\"concurrency must be larger than 0\");\n }\n this.concurrency = concurrency;\n this.emitter = new EventEmitter();\n }\n\n /**\n * Add a operation into queue.\n *\n * @param operation -\n */\n public addOperation(operation: Operation): void {\n this.operations.push(async () => {\n try {\n this.actives++;\n await operation();\n this.actives--;\n this.completed++;\n this.parallelExecute();\n } catch (error: any) {\n this.emitter.emit(\"error\", error);\n }\n });\n }\n\n /**\n * Start execute operations in the queue.\n *\n */\n public async do(): Promise<void> {\n if (this.operations.length === 0) {\n return Promise.resolve();\n }\n this.parallelExecute();\n\n return new Promise<void>((resolve, reject) => {\n this.emitter.on(\"finish\", resolve);\n\n this.emitter.on(\"error\", (error) => {\n this.state = BatchStates.Error;\n reject(error);\n });\n });\n }\n\n /**\n * Get next operation to be executed. Return null when reaching ends.\n *\n */\n private nextOperation(): Operation | null {\n if (this.offset < this.operations.length) {\n return this.operations[this.offset++];\n }\n return null;\n }\n\n /**\n * Start execute operations. One one the most important difference between\n * this method with do() is that do() wraps as an sync method.\n *\n */\n private parallelExecute(): void {\n if (this.state === BatchStates.Error) {\n return;\n }\n\n if (this.completed >= this.operations.length) {\n this.emitter.emit(\"finish\");\n return;\n }\n\n while (this.actives < this.concurrency) {\n const operation = this.nextOperation();\n if (operation) {\n operation();\n } else {\n return;\n }\n }\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAA6B;AAU7B,IAAK,cAAL,kBAAKA,iBAAL;AACE,EAAAA,0BAAA;AACA,EAAAA,0BAAA;AAFG,SAAAA;AAAA,GAAA;AAUE,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA,EAIT;AAAA;AAAA;AAAA;AAAA,EAKA,UAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,YAAoB;AAAA;AAAA;AAAA;AAAA,EAKpB,SAAiB;AAAA;AAAA;AAAA;AAAA,EAKjB,aAA0B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B,QAAqB;AAAA;AAAA;AAAA;AAAA,EAKrB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,cAAsB,GAAG;AAC1C,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,mCAAmC;AAAA,IAC1D;AACA,SAAK,cAAc;AACnB,SAAK,UAAU,IAAI,2BAAa;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,aAAa,WAA4B;AAC9C,SAAK,WAAW,KAAK,YAAY;AAC/B,UAAI;AACF,aAAK;AACL,cAAM,UAAU;AAChB,aAAK;AACL,aAAK;AACL,aAAK,gBAAgB;AAAA,MACvB,SAAS,OAAY;AACnB,aAAK,QAAQ,KAAK,SAAS,KAAK;AAAA,MAClC;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,KAAoB;AAC/B,QAAI,KAAK,WAAW,WAAW,GAAG;AAChC,aAAO,QAAQ,QAAQ;AAAA,IACzB;AACA,SAAK,gBAAgB;AAErB,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,WAAK,QAAQ,GAAG,UAAU,OAAO;AAEjC,WAAK,QAAQ,GAAG,SAAS,CAAC,UAAU;AAClC,aAAK,QAAQ;AACb,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,gBAAkC;AACxC,QAAI,KAAK,SAAS,KAAK,WAAW,QAAQ;AACxC,aAAO,KAAK,WAAW,KAAK,QAAQ;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,kBAAwB;AAC9B,QAAI,KAAK,UAAU,eAAmB;AACpC;AAAA,IACF;AAEA,QAAI,KAAK,aAAa,KAAK,WAAW,QAAQ;AAC5C,WAAK,QAAQ,KAAK,QAAQ;AAC1B;AAAA,IACF;AAEA,WAAO,KAAK,UAAU,KAAK,aAAa;AACtC,YAAM,YAAY,KAAK,cAAc;AACrC,UAAI,WAAW;AACb,kBAAU;AAAA,MACZ,OAAO;AACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["BatchStates"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/utils/BufferScheduler.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EventEmitter } from \"node:events\";\nimport type { Readable } from \"node:stream\";\n\n/**\n * OutgoingHandler is an async function triggered by BufferScheduler.\n */\nexport declare type OutgoingHandler = (buffer: Buffer, offset?: number) => Promise<any>;\n\n/**\n * This class accepts a Node.js Readable stream as input, and keeps reading data\n * from the stream into the internal buffer structure, until it reaches maxBuffers.\n * Every available buffer will try to trigger outgoingHandler.\n *\n * The internal buffer structure includes an incoming buffer array, and a outgoing\n * buffer array. The incoming buffer array includes the \"empty\" buffers can be filled\n * with new incoming data. The outgoing array includes the filled buffers to be\n * handled by outgoingHandler. Every above buffer size is defined by parameter bufferSize.\n *\n * NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING\n *\n * NUM_OF_ALL_BUFFERS lesser than or equal to maxBuffers\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * 1. Input stream highWaterMark is better to set a same value with bufferSize\n * parameter, which will avoid Buffer.concat() operations.\n * 2. concurrency should set a smaller value than maxBuffers, which is helpful to\n * reduce the possibility when a outgoing handler waits for the stream data.\n * in this situation, outgoing handlers are blocked.\n * Outgoing queue shouldn't be empty.\n */\nexport class BufferScheduler {\n /**\n * Size of buffers in incoming and outgoing queues. This class will try to align\n * data read from Readable stream into buffer chunks with bufferSize defined.\n */\n private readonly bufferSize: number;\n\n /**\n * How many buffers can be created or maintained.\n */\n private readonly maxBuffers: number;\n\n /**\n * A Node.js Readable stream.\n */\n private readonly readable: Readable;\n\n /**\n * OutgoingHandler is an async function triggered by BufferScheduler when there\n * are available buffers in outgoing array.\n */\n private readonly outgoingHandler: OutgoingHandler;\n\n /**\n * An internal event emitter.\n */\n private readonly emitter: EventEmitter = new EventEmitter();\n\n /**\n * Concurrency of executing outgoingHandlers. (0 lesser than concurrency lesser than or equal to maxBuffers)\n */\n private readonly concurrency: number;\n\n /**\n * An internal offset marker to track data offset in bytes of next outgoingHandler.\n */\n private offset: number = 0;\n\n /**\n * An internal marker to track whether stream is end.\n */\n private isStreamEnd: boolean = false;\n\n /**\n * An internal marker to track whether stream or outgoingHandler returns error.\n */\n private isError: boolean = false;\n\n /**\n * How many handlers are executing.\n */\n private executingOutgoingHandlers: number = 0;\n\n /**\n * Encoding of the input Readable stream which has string data type instead of Buffer.\n */\n private encoding?: BufferEncoding;\n\n /**\n * How many buffers have been allocated.\n */\n private numBuffers: number = 0;\n\n /**\n * Because this class doesn't know how much data every time stream pops, which\n * is defined by highWaterMarker of the stream. So BufferScheduler will cache\n * data received from the stream, when data in unresolvedDataArray exceeds the\n * blockSize defined, it will try to concat a blockSize of buffer, fill into available\n * buffers from incoming and push to outgoing array.\n */\n private unresolvedDataArray: Buffer[] = [];\n\n /**\n * How much data consisted in unresolvedDataArray.\n */\n private unresolvedLength: number = 0;\n\n /**\n * The array includes all the available buffers can be used to fill data from stream.\n */\n private incoming: Buffer[] = [];\n\n /**\n * The array (queue) includes all the buffers filled from stream data.\n */\n private outgoing: Buffer[] = [];\n\n /**\n * Creates an instance of BufferScheduler.\n *\n * @param readable - A Node.js Readable stream\n * @param bufferSize - Buffer size of every maintained buffer\n * @param maxBuffers - How many buffers can be allocated\n * @param outgoingHandler - An async function scheduled to be\n * triggered when a buffer fully filled\n * with stream data\n * @param concurrency - Concurrency of executing outgoingHandlers (greater than 0)\n * @param encoding - [Optional] Encoding of Readable stream when it's a string stream\n */\n constructor(\n readable: Readable,\n bufferSize: number,\n maxBuffers: number,\n outgoingHandler: OutgoingHandler,\n concurrency: number,\n encoding?: BufferEncoding,\n ) {\n if (bufferSize <= 0) {\n throw new RangeError(`bufferSize must be larger than 0, current is ${bufferSize}`);\n }\n\n if (maxBuffers <= 0) {\n throw new RangeError(`maxBuffers must be larger than 0, current is ${maxBuffers}`);\n }\n\n if (concurrency <= 0) {\n throw new RangeError(`concurrency must be larger than 0, current is ${concurrency}`);\n }\n\n this.bufferSize = bufferSize;\n this.maxBuffers = maxBuffers;\n this.readable = readable;\n this.outgoingHandler = outgoingHandler;\n this.concurrency = concurrency;\n this.encoding = encoding;\n }\n\n /**\n * Start the scheduler, will return error when stream of any of the outgoingHandlers\n * returns error.\n *\n */\n public async do(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.readable.on(\"data\", (data) => {\n data = typeof data === \"string\" ? Buffer.from(data, this.encoding) : data;\n this.appendUnresolvedData(data);\n\n if (!this.resolveData()) {\n this.readable.pause();\n }\n });\n\n this.readable.on(\"error\", (err) => {\n this.emitter.emit(\"error\", err);\n });\n\n this.readable.on(\"end\", () => {\n this.isStreamEnd = true;\n this.emitter.emit(\"checkEnd\");\n });\n\n this.emitter.on(\"error\", (err) => {\n this.isError = true;\n this.readable.pause();\n reject(err);\n });\n\n this.emitter.on(\"checkEnd\", () => {\n if (this.outgoing.length > 0) {\n this.triggerOutgoingHandlers();\n return;\n }\n\n if (this.isStreamEnd && this.executingOutgoingHandlers === 0) {\n if (this.unresolvedLength > 0 && this.unresolvedLength < this.bufferSize) {\n this.outgoingHandler(this.shiftBufferFromUnresolvedDataArray(), this.offset)\n .then(resolve)\n .catch(reject);\n } else if (this.unresolvedLength >= this.bufferSize) {\n return;\n } else {\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Insert a new data into unresolved array.\n *\n * @param data -\n */\n private appendUnresolvedData(data: Buffer) {\n this.unresolvedDataArray.push(data);\n this.unresolvedLength += data.length;\n }\n\n /**\n * Try to shift a buffer with size in blockSize. The buffer returned may be less\n * than blockSize when data in unresolvedDataArray is less than bufferSize.\n *\n */\n private shiftBufferFromUnresolvedDataArray(): Buffer {\n if (this.unresolvedLength >= this.bufferSize) {\n if (this.bufferSize === this.unresolvedDataArray[0].length) {\n this.unresolvedLength -= this.bufferSize;\n return this.unresolvedDataArray.shift()!;\n }\n\n // Lazy concat because Buffer.concat highly drops performance\n let merged = Buffer.concat(this.unresolvedDataArray, this.unresolvedLength);\n const buffer = merged.slice(0, this.bufferSize);\n merged = merged.slice(this.bufferSize);\n this.unresolvedDataArray = [merged];\n this.unresolvedLength -= buffer.length;\n return buffer;\n } else if (this.unresolvedLength > 0) {\n const merged = Buffer.concat(this.unresolvedDataArray, this.unresolvedLength);\n this.unresolvedDataArray = [];\n this.unresolvedLength = 0;\n return merged;\n } else {\n return Buffer.allocUnsafe(0);\n }\n }\n\n /**\n * Resolve data in unresolvedDataArray. For every buffer with size in blockSize\n * shifted, it will try to get (or allocate a buffer) from incoming, and fill it,\n * then push it into outgoing to be handled by outgoing handler.\n *\n * Return false when available buffers in incoming are not enough, else true.\n *\n * @returns Return false when buffers in incoming are not enough, else true.\n */\n private resolveData(): boolean {\n while (this.unresolvedLength >= this.bufferSize) {\n let buffer: Buffer;\n\n if (this.incoming.length > 0) {\n buffer = this.incoming.shift()!;\n } else {\n if (this.numBuffers < this.maxBuffers) {\n buffer = Buffer.allocUnsafe(this.bufferSize);\n this.numBuffers++;\n } else {\n // No available buffer, wait for buffer returned\n return false;\n }\n }\n\n buffer.fill(this.shiftBufferFromUnresolvedDataArray());\n this.outgoing.push(buffer);\n this.triggerOutgoingHandlers();\n }\n return true;\n }\n\n /**\n * Try to trigger a outgoing handler for every buffer in outgoing. Stop when\n * concurrency reaches.\n */\n private async triggerOutgoingHandlers() {\n let buffer: Buffer | undefined;\n do {\n if (this.executingOutgoingHandlers >= this.concurrency) {\n return;\n }\n\n buffer = this.outgoing.shift();\n if (buffer) {\n this.triggerOutgoingHandler(buffer);\n }\n } while (buffer);\n }\n\n /**\n * Trigger a outgoing handler for a buffer shifted from outgoing.\n *\n * @param buffer -\n */\n private async triggerOutgoingHandler(buffer: Buffer): Promise<any> {\n const bufferLength = buffer.length;\n\n this.executingOutgoingHandlers++;\n this.offset += bufferLength;\n\n try {\n await this.outgoingHandler(buffer, this.offset - bufferLength);\n } catch (err: any) {\n this.emitter.emit(\"error\", err);\n return;\n }\n\n this.executingOutgoingHandlers--;\n this.reuseBuffer(buffer);\n this.emitter.emit(\"checkEnd\");\n }\n\n /**\n * Return buffer used by outgoing handler into incoming.\n *\n * @param buffer -\n */\n private reuseBuffer(buffer: Buffer) {\n this.incoming.push(buffer);\n if (!this.isError && this.resolveData() && !this.isStreamEnd) {\n this.readable.resume();\n }\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAA6B;AA8BtB,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKV;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA;AAAA;AAAA;AAAA,EAKA,UAAwB,IAAI,gCAAa;AAAA;AAAA;AAAA;AAAA,EAKzC;AAAA;AAAA;AAAA;AAAA,EAKT,SAAiB;AAAA;AAAA;AAAA;AAAA,EAKjB,cAAuB;AAAA;AAAA;AAAA;AAAA,EAKvB,UAAmB;AAAA;AAAA;AAAA;AAAA,EAKnB,4BAAoC;AAAA;AAAA;AAAA;AAAA,EAKpC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrB,sBAAgC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKjC,mBAA2B;AAAA;AAAA;AAAA;AAAA,EAK3B,WAAqB,CAAC;AAAA;AAAA;AAAA;AAAA,EAKtB,WAAqB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc9B,YACE,UACA,YACA,YACA,iBACA,aACA,UACA;AACA,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,gDAAgD,UAAU,EAAE;AAAA,IACnF;AAEA,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,gDAAgD,UAAU,EAAE;AAAA,IACnF;AAEA,QAAI,eAAe,GAAG;AACpB,YAAM,IAAI,WAAW,iDAAiD,WAAW,EAAE;AAAA,IACrF;AAEA,SAAK,aAAa;AAClB,SAAK,aAAa;AAClB,SAAK,WAAW;AAChB,SAAK,kBAAkB;AACvB,SAAK,cAAc;AACnB,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,KAAoB;AAC/B,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,WAAK,SAAS,GAAG,QAAQ,CAAC,SAAS;AACjC,eAAO,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM,KAAK,QAAQ,IAAI;AACrE,aAAK,qBAAqB,IAAI;AAE9B,YAAI,CAAC,KAAK,YAAY,GAAG;AACvB,eAAK,SAAS,MAAM;AAAA,QACtB;AAAA,MACF,CAAC;AAED,WAAK,SAAS,GAAG,SAAS,CAAC,QAAQ;AACjC,aAAK,QAAQ,KAAK,SAAS,GAAG;AAAA,MAChC,CAAC;AAED,WAAK,SAAS,GAAG,OAAO,MAAM;AAC5B,aAAK,cAAc;AACnB,aAAK,QAAQ,KAAK,UAAU;AAAA,MAC9B,CAAC;AAED,WAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ;AAChC,aAAK,UAAU;AACf,aAAK,SAAS,MAAM;AACpB,eAAO,GAAG;AAAA,MACZ,CAAC;AAED,WAAK,QAAQ,GAAG,YAAY,MAAM;AAChC,YAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,eAAK,wBAAwB;AAC7B;AAAA,QACF;AAEA,YAAI,KAAK,eAAe,KAAK,8BAA8B,GAAG;AAC5D,cAAI,KAAK,mBAAmB,KAAK,KAAK,mBAAmB,KAAK,YAAY;AACxE,iBAAK,gBAAgB,KAAK,mCAAmC,GAAG,KAAK,MAAM,EACxE,KAAK,OAAO,EACZ,MAAM,MAAM;AAAA,UACjB,WAAW,KAAK,oBAAoB,KAAK,YAAY;AACnD;AAAA,UACF,OAAO;AACL,oBAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,qBAAqB,MAAc;AACzC,SAAK,oBAAoB,KAAK,IAAI;AAClC,SAAK,oBAAoB,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,qCAA6C;AACnD,QAAI,KAAK,oBAAoB,KAAK,YAAY;AAC5C,UAAI,KAAK,eAAe,KAAK,oBAAoB,CAAC,EAAE,QAAQ;AAC1D,aAAK,oBAAoB,KAAK;AAC9B,eAAO,KAAK,oBAAoB,MAAM;AAAA,MACxC;AAGA,UAAI,SAAS,OAAO,OAAO,KAAK,qBAAqB,KAAK,gBAAgB;AAC1E,YAAM,SAAS,OAAO,MAAM,GAAG,KAAK,UAAU;AAC9C,eAAS,OAAO,MAAM,KAAK,UAAU;AACrC,WAAK,sBAAsB,CAAC,MAAM;AAClC,WAAK,oBAAoB,OAAO;AAChC,aAAO;AAAA,IACT,WAAW,KAAK,mBAAmB,GAAG;AACpC,YAAM,SAAS,OAAO,OAAO,KAAK,qBAAqB,KAAK,gBAAgB;AAC5E,WAAK,sBAAsB,CAAC;AAC5B,WAAK,mBAAmB;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,OAAO,YAAY,CAAC;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWQ,cAAuB;AAC7B,WAAO,KAAK,oBAAoB,KAAK,YAAY;AAC/C,UAAI;AAEJ,UAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,iBAAS,KAAK,SAAS,MAAM;AAAA,MAC/B,OAAO;AACL,YAAI,KAAK,aAAa,KAAK,YAAY;AACrC,mBAAS,OAAO,YAAY,KAAK,UAAU;AAC3C,eAAK;AAAA,QACP,OAAO;AAEL,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO,KAAK,KAAK,mCAAmC,CAAC;AACrD,WAAK,SAAS,KAAK,MAAM;AACzB,WAAK,wBAAwB;AAAA,IAC/B;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,0BAA0B;AACtC,QAAI;AACJ,OAAG;AACD,UAAI,KAAK,6BAA6B,KAAK,aAAa;AACtD;AAAA,MACF;AAEA,eAAS,KAAK,SAAS,MAAM;AAC7B,UAAI,QAAQ;AACV,aAAK,uBAAuB,MAAM;AAAA,MACpC;AAAA,IACF,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,uBAAuB,QAA8B;AACjE,UAAM,eAAe,OAAO;AAE5B,SAAK;AACL,SAAK,UAAU;AAEf,QAAI;AACF,YAAM,KAAK,gBAAgB,QAAQ,KAAK,SAAS,YAAY;AAAA,IAC/D,SAAS,KAAU;AACjB,WAAK,QAAQ,KAAK,SAAS,GAAG;AAC9B;AAAA,IACF;AAEA,SAAK;AACL,SAAK,YAAY,MAAM;AACvB,SAAK,QAAQ,KAAK,UAAU;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,YAAY,QAAgB;AAClC,SAAK,SAAS,KAAK,MAAM;AACzB,QAAI,CAAC,KAAK,WAAW,KAAK,YAAY,KAAK,CAAC,KAAK,aAAa;AAC5D,WAAK,SAAS,OAAO;AAAA,IACvB;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/utils/DataLakeAclChangeFailedError.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * An error thrown when an operation is interrupted and can be continued later on.\n */\nexport class DataLakeAclChangeFailedError extends Error {\n /**\n * Continuation token to continue next batch of operations.\n */\n public continuationToken?: string;\n\n /**\n * Internal error.\n */\n public innerError: RestError | Error;\n\n constructor(error: RestError | Error, continuationToken?: string) {\n super(error.message);\n this.name = \"DataLakeAclChangeFailedError\";\n this.innerError = error;\n this.continuationToken = continuationToken;\n Object.setPrototypeOf(this, DataLakeAclChangeFailedError.prototype);\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,qCAAqC,MAAM;AAAA;AAAA;AAAA;AAAA,EAI/C;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,EAEP,YAAY,OAA0B,mBAA4B;AAChE,UAAM,MAAM,OAAO;AACnB,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,oBAAoB;AACzB,WAAO,eAAe,MAAM,6BAA6B,SAAS;AAAA,EACpE;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/utils/PathClientInternal.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DataLakePathClient } from \"../clients.js\";\nimport { PathOperationsImpl as Path } from \"../generated/src/operations/index.js\";\nimport type { Pipeline } from \"@azure/storage-blob\";\n\n/**\n * A PathClientInternal represents a URL to the Azure Storage path (directory or file) to\n * help to construct a path client to expose Path context with blob endpoint.\n */\nexport class PathClientInternal extends DataLakePathClient {\n /**\n * Path context with blob endpoint.\n */\n public blobPathContext: Path;\n\n /**\n * Creates an instance of DataLakePathClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake path (directory or file), such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/directory\" or \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n public constructor(url: string, pipeline: Pipeline) {\n super(url, pipeline);\n this.blobPathContext = new Path(this.storageClientContextToBlobEndpoint);\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAmC;AACnC,wBAA2C;AAOpC,MAAM,2BAA2B,kCAAmB;AAAA;AAAA;AAAA;AAAA,EAIlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,YAAY,KAAa,UAAoB;AAClD,UAAM,KAAK,QAAQ;AACnB,SAAK,kBAAkB,IAAI,kBAAAA,mBAAK,KAAK,kCAAkC;AAAA,EACzE;AACF;",
|
|
6
6
|
"names": ["Path"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,EAAE,MAAkB,CAAC;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAqB,CAAC;AAEpD,eAAO,MAAM,EAAE,EAAE,MAAa,CAAC;AAC/B,eAAO,MAAM,EAAE,EAAE,MAAkB,CAAC;AACpC,eAAO,MAAM,EAAE,EAAE,MAAkB,CAAC;AACpC,eAAO,MAAM,EAAE,EAAE,MAAkB,CAAC;AAEpC,eAAO,MAAM,8BAA8B,EAAE,MAAU,CAAC;AACxD,eAAO,MAAM,gCAAgC,EAAE,MAAiB,CAAC;AACjE,eAAO,MAAM,0BAA0B,EAAE,MAAkB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,EAAE,MAAe,CAAC;AAC7D,eAAO,MAAM,qBAAqB,EAAE,MAAc,CAAC;AACnD,eAAO,MAAM,mBAAmB,EAAE,MAA2D,CAAC;AAE9F;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAyC,CAAC;AAE1F,eAAO,MAAM,wCAAwC,UA6FpD,CAAC;AAEF,eAAO,MAAM,4CAA4C,UAkCxD,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;CAOxB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;CAwB3B,CAAC;AAEF,eAAO,MAAM,2BAA2B,yNAAyN,CAAC;AAIlQ,eAAO,MAAM,0BAA0B,YAStC,CAAC;AAIF,eAAO,MAAM,yBAAyB,YASrC,CAAC;AAEF,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,eAAO,MAAM,uBAAuB;;;CAGnC,CAAC;AAIF,eAAO,MAAM,cAAc,UAqB1B,CAAC"}
|
|
@@ -45,7 +45,7 @@ __export(constants_exports, {
|
|
|
45
45
|
UrlConstants: () => UrlConstants
|
|
46
46
|
});
|
|
47
47
|
module.exports = __toCommonJS(constants_exports);
|
|
48
|
-
const SDK_VERSION = "12.30.0
|
|
48
|
+
const SDK_VERSION = "12.30.0";
|
|
49
49
|
const SERVICE_VERSION = "2026-04-06";
|
|
50
50
|
const KB = 1024;
|
|
51
51
|
const MB = KB * 1024;
|
|
@@ -306,3 +306,4 @@ const PathStylePorts = [
|
|
|
306
306
|
ToDfsEndpointHostMappings,
|
|
307
307
|
UrlConstants
|
|
308
308
|
});
|
|
309
|
+
//# sourceMappingURL=constants.js.map
|