UNPKG

@azure/storage-queue

Version:
164 lines (163 loc) 7.95 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var QueueSASSignatureValues_exports = {}; __export(QueueSASSignatureValues_exports, { generateQueueSASQueryParameters: () => generateQueueSASQueryParameters, generateQueueSASQueryParametersInternal: () => generateQueueSASQueryParametersInternal }); module.exports = __toCommonJS(QueueSASSignatureValues_exports); var import_QueueSASPermissions = require("./QueueSASPermissions.js"); var import_storage_common = require("@azure/storage-common"); var import_SasIPRange = require("./SasIPRange.js"); var import_SASQueryParameters = require("./SASQueryParameters.js"); var import_constants = require("./utils/constants.js"); var import_utils_common = require("./utils/utils.common.js"); function generateQueueSASQueryParameters(queueSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) { return generateQueueSASQueryParametersInternal( queueSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName ).sasQueryParameters; } function generateQueueSASQueryParametersInternal(queueSASSignatureValues, sharedKeyCredentialOrUserDelegationKey, accountName) { const version = queueSASSignatureValues.version ? queueSASSignatureValues.version : import_constants.SERVICE_VERSION; const sharedKeyCredential = sharedKeyCredentialOrUserDelegationKey instanceof import_storage_common.StorageSharedKeyCredential ? sharedKeyCredentialOrUserDelegationKey : void 0; let userDelegationKeyCredential; if (sharedKeyCredential === void 0 && accountName !== void 0) { userDelegationKeyCredential = new import_storage_common.UserDelegationKeyCredential( accountName, sharedKeyCredentialOrUserDelegationKey ); } if (sharedKeyCredential !== void 0) { return generateQueueSASQueryParametersDefault(queueSASSignatureValues, sharedKeyCredential); } else { if (version >= "2025-07-05") { return generateQueueSASQueryParametersUDK20250705( queueSASSignatureValues, userDelegationKeyCredential, accountName ); } else { throw new RangeError( "'version' must be >= '2025-07-05' when generating user delegation SAS using user delegation key." ); } } } function generateQueueSASQueryParametersDefault(queueSASSignatureValues, sharedKeyCredential) { if (!queueSASSignatureValues.identifier && !(queueSASSignatureValues.permissions && queueSASSignatureValues.expiresOn)) { throw new RangeError( "Must provide 'permissions' and 'expiresOn' for Queue SAS generation when 'identifier' is not provided." ); } const version = queueSASSignatureValues.version ? queueSASSignatureValues.version : import_constants.SERVICE_VERSION; let verifiedPermissions; if (queueSASSignatureValues.permissions) { verifiedPermissions = import_QueueSASPermissions.QueueSASPermissions.parse( queueSASSignatureValues.permissions.toString() ).toString(); } const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", queueSASSignatureValues.startsOn ? (0, import_utils_common.truncatedISO8061Date)(queueSASSignatureValues.startsOn, false) : "", queueSASSignatureValues.expiresOn ? (0, import_utils_common.truncatedISO8061Date)(queueSASSignatureValues.expiresOn, false) : "", getCanonicalName(sharedKeyCredential.accountName, queueSASSignatureValues.queueName), queueSASSignatureValues.identifier, queueSASSignatureValues.ipRange ? (0, import_SasIPRange.ipRangeToString)(queueSASSignatureValues.ipRange) : "", queueSASSignatureValues.protocol ? queueSASSignatureValues.protocol : "", version ].join("\n"); const signature = sharedKeyCredential.computeHMACSHA256(stringToSign); return { sasQueryParameters: new import_SASQueryParameters.SASQueryParameters( version, signature, verifiedPermissions, void 0, void 0, queueSASSignatureValues.protocol, queueSASSignatureValues.startsOn, queueSASSignatureValues.expiresOn, queueSASSignatureValues.ipRange, queueSASSignatureValues.identifier ), stringToSign }; } function generateQueueSASQueryParametersUDK20250705(queueSASSignatureValues, userDelegationKeyCredential, accountName) { if (!(queueSASSignatureValues.permissions && queueSASSignatureValues.expiresOn)) { throw new RangeError( "Must provide 'permissions' and 'expiresOn' for Queue SAS generation when generating user delegation SAS." ); } const version = queueSASSignatureValues.version ? queueSASSignatureValues.version : import_constants.SERVICE_VERSION; let verifiedPermissions; if (queueSASSignatureValues.permissions) { verifiedPermissions = import_QueueSASPermissions.QueueSASPermissions.parse( queueSASSignatureValues.permissions.toString() ).toString(); } const resource = "q"; const stringToSign = [ verifiedPermissions ? verifiedPermissions : "", queueSASSignatureValues.startsOn ? (0, import_utils_common.truncatedISO8061Date)(queueSASSignatureValues.startsOn, false) : "", queueSASSignatureValues.expiresOn ? (0, import_utils_common.truncatedISO8061Date)(queueSASSignatureValues.expiresOn, false) : "", getCanonicalName(accountName, queueSASSignatureValues.queueName), userDelegationKeyCredential.userDelegationKey.signedObjectId, userDelegationKeyCredential.userDelegationKey.signedTenantId, userDelegationKeyCredential.userDelegationKey.signedStartsOn ? (0, import_utils_common.truncatedISO8061Date)(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false) : "", userDelegationKeyCredential.userDelegationKey.signedExpiresOn ? (0, import_utils_common.truncatedISO8061Date)(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false) : "", userDelegationKeyCredential.userDelegationKey.signedService, userDelegationKeyCredential.userDelegationKey.signedVersion, userDelegationKeyCredential.userDelegationKey.signedDelegatedUserTenantId, // shared key delegation signed tenant id. queueSASSignatureValues.delegatedUserObjectId, queueSASSignatureValues.ipRange ? (0, import_SasIPRange.ipRangeToString)(queueSASSignatureValues.ipRange) : "", queueSASSignatureValues.protocol ? queueSASSignatureValues.protocol : "", version ].join("\n"); const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign); return { sasQueryParameters: new import_SASQueryParameters.SASQueryParameters( version, signature, verifiedPermissions, void 0, void 0, queueSASSignatureValues.protocol, queueSASSignatureValues.startsOn, queueSASSignatureValues.expiresOn, queueSASSignatureValues.ipRange, queueSASSignatureValues.identifier, resource, userDelegationKeyCredential.userDelegationKey, queueSASSignatureValues.delegatedUserObjectId ), stringToSign }; } function getCanonicalName(accountName, queueName) { return `/queue/${accountName}/${queueName}`; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { generateQueueSASQueryParameters, generateQueueSASQueryParametersInternal }); //# sourceMappingURL=QueueSASSignatureValues.js.map