UNPKG

@azure/core-amqp

Version:

Common library for amqp based azure sdks like @azure/event-hubs.

89 lines (88 loc) 3.15 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 tokenProvider_exports = {}; __export(tokenProvider_exports, { SasTokenProviderImpl: () => SasTokenProviderImpl, createSasTokenProvider: () => createSasTokenProvider }); module.exports = __toCommonJS(tokenProvider_exports); var import_core_auth = require("@azure/core-auth"); var import_hmacSha256 = require("../util/hmacSha256.js"); function createSasTokenProvider(data) { if ((0, import_core_auth.isNamedKeyCredential)(data) || (0, import_core_auth.isSASCredential)(data)) { return new SasTokenProviderImpl(data); } else if ("sharedAccessKeyName" in data && "sharedAccessKey" in data) { return new SasTokenProviderImpl({ name: data.sharedAccessKeyName, key: data.sharedAccessKey }); } else { return new SasTokenProviderImpl({ signature: data.sharedAccessSignature }); } } class SasTokenProviderImpl { /** * Property used to distinguish TokenProvider from TokenCredential. */ get isSasTokenProvider() { return true; } /** * The SASCredential containing the key name and secret key value. */ _credential; /** * Initializes a new instance of SasTokenProvider * @param credential - The source `NamedKeyCredential` or `SASCredential`. */ constructor(credential) { this._credential = credential; } /** * Gets the sas token for the specified audience * @param audience - The audience for which the token is desired. */ async getToken(audience) { if ((0, import_core_auth.isNamedKeyCredential)(this._credential)) { return createToken( this._credential.name, this._credential.key, Math.floor(Date.now() / 1e3) + 3600, audience ); } else { return { token: this._credential.signature, expiresOnTimestamp: 0 }; } } } async function createToken(keyName, key, expiry, audience) { audience = encodeURIComponent(audience); keyName = encodeURIComponent(keyName); const stringToSign = audience + "\n" + expiry; const sig = await (0, import_hmacSha256.signString)(key, stringToSign); return { token: `SharedAccessSignature sr=${audience}&sig=${sig}&se=${expiry}&skn=${keyName}`, expiresOnTimestamp: expiry }; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { SasTokenProviderImpl, createSasTokenProvider }); //# sourceMappingURL=tokenProvider.js.map