UNPKG

panda-sky-client

Version:

Auto-assembling client for APIs deployed with Panda Sky

52 lines (48 loc) 5.29 kB
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