@azure/storage-queue
Version:
Microsoft Azure Storage SDK for JavaScript - Queue
164 lines (163 loc) • 7.95 kB
JavaScript
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