UNPKG

@tableau/taco-toolkit

Version:
124 lines 6.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOAuthHeader = exports.getBasicAuthHeader = exports.getAuthHeader = exports.extractOAuthSecretsFromHeader = exports.OAuthCredentials = void 0; var AUTH_TOKENS; (function (AUTH_TOKENS) { AUTH_TOKENS["accessToken"] = "access-token"; })(AUTH_TOKENS || (AUTH_TOKENS = {})); /** * Extracts OAuth secrets from the provided headers. * * @param headers - The headers containing OAuth secrets inclding access-token. * @returns The extracted OAuth secrets. */ function extractOAuthSecretsFromHeader(headers) { var _a; if (!headers) { return undefined; } var accessToken = headers[AUTH_TOKENS.accessToken]; if (!accessToken) { return undefined; } return _a = {}, _a[AUTH_TOKENS.accessToken] = accessToken, _a; } exports.extractOAuthSecretsFromHeader = extractOAuthSecretsFromHeader; /** * Generates an authentication header using the provided token and optional prefix. * * @param token - The token used for authentication. * @param prefix - The prefix to be added before the token (default is 'Bearer'). * @returns The authentication header. * @example * ``` * //Generating a custom prefix token header * const token = 'your-custom-token'; * const customPrefix = 'Custom'; * const header = getAuthHeader(token, customPrefix); * // header will be: { Authorization: 'Custom your-custom-token' } *``` */ function getAuthHeader(token, prefix) { if (prefix === void 0) { prefix = 'Bearer'; } return { Authorization: "".concat(prefix, " ").concat(token) }; } exports.getAuthHeader = getAuthHeader; /** * Generates a Basic authentication header using the provided username and password. * * @param username - The username for authentication. * @param password - The password for authentication. * @returns The Basic authentication header. * * @example * ``` * // Generating a Basic authentication header * const username = 'yourUsername'; * const password = 'yourPassword'; * const basicAuthHeader = getBasicAuthHeader(username, password); * console.log(basicAuthHeader); * // Output will be: { Authorization: 'Basic base64EncodedString' } * ``` */ function getBasicAuthHeader(username, password) { var token = Buffer.from("".concat(username, ":").concat(password)).toString('base64'); return getAuthHeader(token, 'Basic'); } exports.getBasicAuthHeader = getBasicAuthHeader; /** * Generates an OAuth authentication header based on the provided secrets. * If no access token is provided in the secrets, an empty object is returned. * * @param headers - The headers containing access-token. * @returns The authentication header. */ function getOAuthHeader(headers) { if (!headers) { return {}; } var oAuthSecrets = extractOAuthSecretsFromHeader(headers); var accessToken = oAuthSecrets === null || oAuthSecrets === void 0 ? void 0 : oAuthSecrets[AUTH_TOKENS.accessToken]; if (accessToken) { return getAuthHeader(accessToken); } else { return {}; } } exports.getOAuthHeader = getOAuthHeader; /** * Represents OAuth credentials. includes only access token */ var OAuthCredentials = /** @class */ (function () { /** * Create a new instance of OAuthCredentials. * * @param headers - The headers containing OAuth secrets. Only `access-token` will be used from the provided headers */ function OAuthCredentials(headers) { var oAuthSecrets = extractOAuthSecretsFromHeader(headers); this.accessToken = oAuthSecrets === null || oAuthSecrets === void 0 ? void 0 : oAuthSecrets[AUTH_TOKENS.accessToken]; } Object.defineProperty(OAuthCredentials.prototype, "authHeader", { /** * Get the authentication header based on the access token. * * @returns The authentication header. */ get: function () { if (this.accessToken) { return getAuthHeader(this.accessToken); } else { return {}; } }, enumerable: false, configurable: true }); return OAuthCredentials; }()); exports.OAuthCredentials = OAuthCredentials; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jcmVkZW50aWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvYXV0aC1jcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsSUFBSyxXQUVKO0FBRkQsV0FBSyxXQUFXO0lBQ2QsMkNBQTRCLENBQUE7QUFDOUIsQ0FBQyxFQUZJLFdBQVcsS0FBWCxXQUFXLFFBRWY7QUFXRDs7Ozs7R0FLRztBQUVILFNBQVMsNkJBQTZCLENBQUMsT0FBZ0M7O0lBQ3JFLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixPQUFPLFNBQVMsQ0FBQTtLQUNqQjtJQUVELElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUF1QixDQUFBO0lBQzFFLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUE7S0FDakI7SUFFRDtRQUNFLEdBQUMsV0FBVyxDQUFDLFdBQVcsSUFBRyxXQUFXO1dBQ3ZDO0FBQ0gsQ0FBQztBQWlHMEIsc0VBQTZCO0FBL0Z4RDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILFNBQVMsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFpQjtJQUFqQix1QkFBQSxFQUFBLGlCQUFpQjtJQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQUcsTUFBTSxjQUFJLEtBQUssQ0FBRSxFQUFFLENBQUE7QUFDaEQsQ0FBQztBQTZFeUQsc0NBQWE7QUEzRXZFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsU0FBUyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQzVELElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBRyxRQUFRLGNBQUksUUFBUSxDQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdkUsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFzRHdFLGdEQUFrQjtBQXBEM0Y7Ozs7OztHQU1HO0FBQ0gsU0FBUyxjQUFjLENBQUMsT0FBZ0M7SUFDdEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sRUFBRSxDQUFBO0tBQ1Y7SUFDRCxJQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUUzRCxJQUFNLFdBQVcsR0FBRyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzNELElBQUksV0FBVyxFQUFFO1FBQ2YsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUE7S0FDbEM7U0FBTTtRQUNMLE9BQU8sRUFBRSxDQUFBO0tBQ1Y7QUFDSCxDQUFDO0FBaUM0Rix3Q0FBYztBQS9CM0c7O0dBRUc7QUFFSDtJQUVFOzs7O09BSUc7SUFDSCwwQkFBWSxPQUFnQztRQUMxQyxJQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUzRCxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQU9ELHNCQUFJLHdDQUFVO1FBTGQ7Ozs7V0FJRzthQUNIO1lBQ0UsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7YUFDdkM7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUE7YUFDVjtRQUNILENBQUM7OztPQUFBO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBekJELElBeUJDO0FBRVEsNENBQWdCIn0=