panda-sky-client
Version:
Auto-assembling client for APIs deployed with Panda Sky
52 lines (48 loc) • 5.29 kB
JavaScript
var authorization, isBasic, isBearer, isCapability, isScheme, isSigil;
import Method from "panda-generics";
import { isObject, isString, toJSON } from "panda-parchment";
import { encode as decodeUTF8 } from "@stablelib/utf8";
import { encode as encodeBase64 } from "@stablelib/base64";
isScheme = function (scheme) {
return function (name) {
return scheme === name.toLowerCase();
};
};
isBasic = isScheme("basic");
isBearer = isScheme("bearer");
isCapability = isScheme("capability");
isSigil = isScheme("sigil");
authorization = Method.create({
name: "authorization",
description: "This creates your Authorization HTTP header based on input configuration"
});
Method.define(authorization, isString, function (header) {
return header;
});
Method.define(authorization, isObject, function (schemes) {
var name, results, value;
results = [];
for (name in schemes) {
value = schemes[name];
results.push(authorization(name, value));
}
return results;
});
Method.define(authorization, isBasic, isObject, function (name, {
login,
password
}) {
return "Basic " + encodeBase64(decodeUTF8(`${login}:${password}`));
});
Method.define(authorization, isBearer, isString, function (name, token) {
return `Bearer ${token}`;
});
Method.define(authorization, isSigil, isString, function (name, token) {
return `Sigil ${token}`;
});
Method.define(authorization, isCapability, isString, function (name, token) {
return `X-Capability ${token}`;
});
export default authorization;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYXZpZC9yZXBvcy9wYW5kYS1za3ktY2xpZW50L3NyYy9hdXRob3JpemF0aW9uLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLGFBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFlBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQTtBQUFBLE9BQUEsTUFBQSxNQUFBLGdCQUFBO0FBQ0EsU0FBQSxRQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsUUFBQSxpQkFBQTtBQUNBLFNBQVEsTUFBQSxJQUFSLFVBQUEsUUFBQSxpQkFBQTtBQUNBLFNBQVEsTUFBQSxJQUFSLFlBQUEsUUFBQSxtQkFBQTs7QUFFQSxRQUFBLEdBQVcsVUFBQSxNQUFBLEVBQUE7U0FDVCxVQUFBLElBQUEsRUFBQTtXQUFVLE1BQUEsS0FBVSxJQUFJLENBQUosV0FBQSxFO0FBQXBCLEc7QUFEUyxDQUFYOztBQUVBLE9BQUEsR0FBVSxRQUFBLENBQUEsT0FBQSxDQUFWO0FBQ0EsUUFBQSxHQUFXLFFBQUEsQ0FBQSxRQUFBLENBQVg7QUFDQSxZQUFBLEdBQWUsUUFBQSxDQUFBLFlBQUEsQ0FBZjtBQUNBLE9BQUEsR0FBVSxRQUFBLENBQUEsT0FBQSxDQUFWO0FBRUEsYUFBQSxHQUFnQixNQUFNLENBQU4sTUFBQSxDQUNkO0FBQUEsRUFBQSxJQUFBLEVBQUEsZUFBQTtBQUNBLEVBQUEsV0FBQSxFQUFhO0FBRGIsQ0FEYyxDQUFoQjtBQUlBLE1BQU0sQ0FBTixNQUFBLENBQUEsYUFBQSxFQUFBLFFBQUEsRUFBdUMsVUFBQSxNQUFBLEVBQUE7U0FBWSxNO0FBQW5ELENBQUE7QUFFQSxNQUFNLENBQU4sTUFBQSxDQUFBLGFBQUEsRUFBQSxRQUFBLEVBQXVDLFVBQUEsT0FBQSxFQUFBO0FBQ3JDLE1BQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBO0FBQUEsRUFBQSxPQUFBLEdBQUEsRUFBQTs7QUFBQSxPQUFBLElBQUEsSUFBQSxPQUFBLEVBQUE7O2lCQUNFLGFBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxDO0FBREY7OztBQURGLENBQUE7QUFJQSxNQUFNLENBQU4sTUFBQSxDQUFBLGFBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUNFLFVBQUEsSUFBQSxFQUFPO0FBQUEsRUFBQSxLQUFBO0FBQVAsRUFBQTtBQUFPLENBQVAsRUFBQTtTQUNFLFdBQVcsWUFBQSxDQUFhLFVBQUEsQ0FBVyxHQUFBLEtBQUEsSUFBQSxRQUF4QixFQUFhLENBQWIsQztBQUZmLENBQUE7QUFJQSxNQUFNLENBQU4sTUFBQSxDQUFBLGFBQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUNFLFVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQTtBQUFpQixTQUFBLFVBQUEsS0FBQSxFQUFBO0FBRG5CLENBQUE7QUFHQSxNQUFNLENBQU4sTUFBQSxDQUFBLGFBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUNFLFVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQTtBQUFpQixTQUFBLFNBQUEsS0FBQSxFQUFBO0FBRG5CLENBQUE7QUFHQSxNQUFNLENBQU4sTUFBQSxDQUFBLGFBQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxFQUNFLFVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQTtBQUFpQixTQUFBLGdCQUFBLEtBQUEsRUFBQTtBQURuQixDQUFBO0FBR0EsZUFBZSxhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1ldGhvZCBmcm9tIFwicGFuZGEtZ2VuZXJpY3NcIlxuaW1wb3J0IHtpc09iamVjdCwgaXNTdHJpbmcsIHRvSlNPTn0gZnJvbSBcInBhbmRhLXBhcmNobWVudFwiXG5pbXBvcnQge2VuY29kZSBhcyBkZWNvZGVVVEY4fSBmcm9tIFwiQHN0YWJsZWxpYi91dGY4XCJcbmltcG9ydCB7ZW5jb2RlIGFzIGVuY29kZUJhc2U2NH0gZnJvbSBcIkBzdGFibGVsaWIvYmFzZTY0XCJcblxuaXNTY2hlbWUgPSAoc2NoZW1lKSAtPlxuICAobmFtZSkgLT4gc2NoZW1lID09IG5hbWUudG9Mb3dlckNhc2UoKVxuaXNCYXNpYyA9IGlzU2NoZW1lIFwiYmFzaWNcIlxuaXNCZWFyZXIgPSBpc1NjaGVtZSBcImJlYXJlclwiXG5pc0NhcGFiaWxpdHkgPSBpc1NjaGVtZSBcImNhcGFiaWxpdHlcIlxuaXNTaWdpbCA9IGlzU2NoZW1lIFwic2lnaWxcIlxuXG5hdXRob3JpemF0aW9uID0gTWV0aG9kLmNyZWF0ZVxuICBuYW1lOiBcImF1dGhvcml6YXRpb25cIlxuICBkZXNjcmlwdGlvbjogXCJUaGlzIGNyZWF0ZXMgeW91ciBBdXRob3JpemF0aW9uIEhUVFAgaGVhZGVyIGJhc2VkIG9uIGlucHV0IGNvbmZpZ3VyYXRpb25cIlxuXG5NZXRob2QuZGVmaW5lIGF1dGhvcml6YXRpb24sIGlzU3RyaW5nLCAoaGVhZGVyKSAtPiBoZWFkZXJcblxuTWV0aG9kLmRlZmluZSBhdXRob3JpemF0aW9uLCBpc09iamVjdCwgKHNjaGVtZXMpIC0+XG4gIGZvciBuYW1lLCB2YWx1ZSBvZiBzY2hlbWVzXG4gICAgYXV0aG9yaXphdGlvbiBuYW1lLCB2YWx1ZVxuXG5NZXRob2QuZGVmaW5lIGF1dGhvcml6YXRpb24sIGlzQmFzaWMsIGlzT2JqZWN0LFxuICAobmFtZSwge2xvZ2luLCBwYXNzd29yZH0pIC0+XG4gICAgXCJCYXNpYyBcIiArIGVuY29kZUJhc2U2NCBkZWNvZGVVVEY4IFwiI3tsb2dpbn06I3twYXNzd29yZH1cIlxuXG5NZXRob2QuZGVmaW5lIGF1dGhvcml6YXRpb24sIGlzQmVhcmVyLCBpc1N0cmluZyxcbiAgKG5hbWUsIHRva2VuKSAtPiBcIkJlYXJlciAje3Rva2VufVwiXG5cbk1ldGhvZC5kZWZpbmUgYXV0aG9yaXphdGlvbiwgaXNTaWdpbCwgaXNTdHJpbmcsXG4gIChuYW1lLCB0b2tlbikgLT4gXCJTaWdpbCAje3Rva2VufVwiXG5cbk1ldGhvZC5kZWZpbmUgYXV0aG9yaXphdGlvbiwgaXNDYXBhYmlsaXR5LCBpc1N0cmluZyxcbiAgKG5hbWUsIHRva2VuKSAtPiBcIlgtQ2FwYWJpbGl0eSAje3Rva2VufVwiXG5cbmV4cG9ydCBkZWZhdWx0IGF1dGhvcml6YXRpb25cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceURL=/Users/david/repos/panda-sky-client/src/authorization.coffee