diff --git a/packages/jwt/cmd.js b/packages/jwt/cmd.js index d98185027f648dc3b105357a2b20ed0f3b725829..1fbb10b73fcef69582f4fd2d398d8568060fedf6 100644 --- a/packages/jwt/cmd.js +++ b/packages/jwt/cmd.js @@ -26,8 +26,8 @@ const run = argv => { console.log(colors.yellow('[RSA key pairs result]')) console.log('PUBLIC KEY: ', colors.bgCyan.black(publicKey)) console.log('PRIVATE KEY: ', colors.bgYellow.black(privateKey)) - saveMsg(); - break; + saveMsg() + break case 'rsa-pem': args[0] = argv.len || undefined; args[1] = argv.outputDir || ''; @@ -36,13 +36,13 @@ const run = argv => { if (!argv.outputDir) { console.log('PUBLIC PEM KEY: \r\n', colors.bgCyan.black(result.publicKey)) console.log('PRIVATE PEM KEY: \r\n', colors.bgYellow.black(result.privateKey)) - saveMsg(); + saveMsg() } }) .catch(err => { console.error(colors.red(err.message || err)) }); - break; + break case 'token': if (argv.secret && argv.payload) { console.log(argv.payload) @@ -56,7 +56,7 @@ const run = argv => { console.error('error!', colors.red(e)) } } - break; + break default: console.log(colors.red('You need to tell me what you want!')) } diff --git a/packages/jwt/dist/jsonql-jwt.js b/packages/jwt/dist/jsonql-jwt.js index 48e79596e598048310bf589d70e8a9cbcbb4e120..fe08afb500c7ce5d88f9c14c83cb0f3b221a904b 100644 --- a/packages/jwt/dist/jsonql-jwt.js +++ b/packages/jwt/dist/jsonql-jwt.js @@ -1,2 +1,2 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlJwt={})}(this,(function(t){"use strict";function r(t){this.message=t}r.prototype=new Error,r.prototype.name="InvalidCharacterError";var e="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new r("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,u=0,a=0,i="";o=e.charAt(a++);~o&&(n=u%4?64*n+o:o,u++%4)?i+=String.fromCharCode(255&n>>(-2*u&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return i};var n=function(t){var r=t.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(e(t).replace(/(.)/g,(function(t,r){var e=r.charCodeAt(0).toString(16).toUpperCase();return e.length<2&&(e="0"+e),"%"+e})))}(r)}catch(t){return e(r)}};function o(t){this.message=t}o.prototype=new Error,o.prototype.name="InvalidTokenError";var u=function(t,r){if("string"!=typeof t)throw new o("Invalid token specified");var e=!0===(r=r||{}).header?0:1;try{return JSON.parse(n(t.split(".")[e]))}catch(t){throw new o("Invalid token specified: "+t.message)}};u.InvalidTokenError=o;var a="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},i="object"==typeof a&&a&&a.Object===Object&&a,c="object"==typeof self&&self&&self.Object===Object&&self,f=i||c||Function("return this")(),l=f.Symbol;function s(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var u=Array(o);++n-1;);return e}(n,o),function(t,r){for(var e=t.length;e--&&E(r,t[e],0)>-1;);return e}(n,o)+1).join("")}function q(t){return"string"==typeof t||!p(t)&&j(t)&&"[object String]"==_(t)}var J=function(t){return""!==V(t)&&q(t)},L=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return-1},Object.defineProperties(r,e),r}(Error);function W(t){var r=t.iat||function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r}(!0);if(t.exp&&r>=t.exp){var e=new Date(t.exp).toISOString();throw new L("Token has expired on "+e,t)}return t}var G=function(t){return!!p(t)||null!=t&&""!==V(t)};function H(t){return function(t){return"number"==typeof t||j(t)&&"[object Number]"==_(t)}(t)&&t!=+t}var Y=function(t){return!q(t)&&!H(parseFloat(t))},K=function(t){return null!=t&&"boolean"==typeof t},Q=function(t,r){return void 0===r&&(r=!0),void 0!==t&&""!==t&&""!==V(t)&&(!1===r||!0===r&&null!==t)},X=function(t){switch(t){case"number":return Y;case"string":return J;case"boolean":return K;default:return Q}},Z=function(t,r){return void 0===r&&(r=""),!!p(t)&&(""===r||""===V(r)||!(t.filter((function(t){return!X(r)(t)})).length>0))},tt=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var r=t.replace("array.<","").replace(">","");return r.indexOf("|")?r.split("|"):[r]}return!1},rt=function(t,r){var e=t.arg;return r.length>1?!e.filter((function(t){return!(r.length>r.filter((function(r){return!X(r)(t)})).length)})).length:r.length>r.filter((function(t){return!Z(e,t)})).length};function et(t,r){return function(e){return t(r(e))}}var nt=et(Object.getPrototypeOf,Object),ot=Function.prototype,ut=Object.prototype,at=ot.toString,it=ut.hasOwnProperty,ct=at.call(Object);function ft(t){if(!j(t)||"[object Object]"!=_(t))return!1;var r=nt(t);if(null===r)return!0;var e=it.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&at.call(e)==ct}var lt,st=function(t,r,e){for(var n=-1,o=Object(t),u=e(t),a=u.length;a--;){var i=u[lt?a:++n];if(!1===r(o[i],i,o))break}return t};function pt(t){return j(t)&&"[object Arguments]"==_(t)}var vt=Object.prototype,ht=vt.hasOwnProperty,dt=vt.propertyIsEnumerable,yt=pt(function(){return arguments}())?pt:function(t){return j(t)&&ht.call(t,"callee")&&!dt.call(t,"callee")};var bt="object"==typeof t&&t&&!t.nodeType&&t,gt=bt&&"object"==typeof module&&module&&!module.nodeType&&module,_t=gt&>.exports===bt?f.Buffer:void 0,jt=(_t?_t.isBuffer:void 0)||function(){return!1},mt=/^(?:0|[1-9]\d*)$/;function wt(t,r){var e=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&mt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991}var kt={};kt["[object Float32Array]"]=kt["[object Float64Array]"]=kt["[object Int8Array]"]=kt["[object Int16Array]"]=kt["[object Int32Array]"]=kt["[object Uint8Array]"]=kt["[object Uint8ClampedArray]"]=kt["[object Uint16Array]"]=kt["[object Uint32Array]"]=!0,kt["[object Arguments]"]=kt["[object Array]"]=kt["[object ArrayBuffer]"]=kt["[object Boolean]"]=kt["[object DataView]"]=kt["[object Date]"]=kt["[object Error]"]=kt["[object Function]"]=kt["[object Map]"]=kt["[object Number]"]=kt["[object Object]"]=kt["[object RegExp]"]=kt["[object Set]"]=kt["[object String]"]=kt["[object WeakMap]"]=!1;var At,St="object"==typeof t&&t&&!t.nodeType&&t,Et=St&&"object"==typeof module&&module&&!module.nodeType&&module,xt=Et&&Et.exports===St&&i.process,Pt=function(){try{var t=Et&&Et.require&&Et.require("util").types;return t||xt&&xt.binding&&xt.binding("util")}catch(t){}}(),Tt=Pt&&Pt.isTypedArray,zt=Tt?(At=Tt,function(t){return At(t)}):function(t){return j(t)&&Ot(t.length)&&!!kt[_(t)]},Ct=Object.prototype.hasOwnProperty;function It(t,r){var e=p(t),n=!e&&yt(t),o=!e&&!n&&jt(t),u=!e&&!n&&!o&&zt(t),a=e||n||o||u,i=a?function(t,r){for(var e=-1,n=Array(t);++e-1},Wt.prototype.set=function(t,r){var e=this.__data__,n=Jt(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var Gt,Ht=f["__core-js_shared__"],Yt=(Gt=/[^.]+$/.exec(Ht&&Ht.keys&&Ht.keys.IE_PROTO||""))?"Symbol(src)_1."+Gt:"";var Kt=Function.prototype.toString;function Qt(t){if(null!=t){try{return Kt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var Xt=/^\[object .+?Constructor\]$/,Zt=Function.prototype,tr=Object.prototype,rr=Zt.toString,er=tr.hasOwnProperty,nr=RegExp("^"+rr.call(er).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function or(t){return!(!Bt(t)||function(t){return!!Yt&&Yt in t}(t))&&(Nt(t)?nr:Xt).test(Qt(t))}function ur(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return or(e)?e:void 0}var ar=ur(f,"Map"),ir=ur(Object,"create");var cr=Object.prototype.hasOwnProperty;var fr=Object.prototype.hasOwnProperty;function lr(t){var r=-1,e=null==t?0:t.length;for(this.clear();++ri))return!1;var f=u.get(t);if(f&&u.get(r))return f==r;var l=-1,s=!0,p=2&e?new hr:void 0;for(u.set(t,r),u.set(r,t);++lr.type.filter((function(t){var r;return void 0===e||(!1!==(r=tt(t))?!rt({arg:e},r):!X(t)(e))})).length)})).length}return!1},le=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(r,e),r}(Error),se=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(r,e),r}(Error),pe=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(r,e),r}(Error),ve=function(t,r){var e,n,o,u,a;switch(!0){case"object"===t:return o=(n=r).arg,u=n.param,a=[o],Array.isArray(u.keys)&&u.keys.length&&a.push(u.keys),!Reflect.apply(fe,null,a);case"array"===t:return!Z(r.arg);case!1!==(e=tt(t)):return!rt(r,e);default:return!X(t)(r.arg)}},he=function(t,r){return void 0!==t?t:!0===r.optional&&void 0!==r.defaultvalue?r.defaultvalue:null},de=function(){try{var t=ur(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();function ye(t,r,e){"__proto__"==r&&de?de(t,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[r]=e}function be(t,r,e){(void 0===e||qt(t[r],e))&&(void 0!==e||r in t)||ye(t,r,e)}var ge="object"==typeof t&&t&&!t.nodeType&&t,_e=ge&&"object"==typeof module&&module&&!module.nodeType&&module,je=_e&&_e.exports===ge?f.Buffer:void 0,me=je?je.allocUnsafe:void 0;function we(t,r){var e,n,o=r?(e=t.buffer,n=new e.constructor(e.byteLength),new br(n).set(new br(e)),n):t.buffer;return new t.constructor(o,t.byteOffset,t.length)}var Oe=Object.create,ke=function(){function t(){}return function(r){if(!Bt(r))return{};if(Oe)return Oe(r);t.prototype=r;var e=new t;return t.prototype=void 0,e}}();function Ae(t,r){if(("constructor"!==r||"function"!=typeof t[r])&&"__proto__"!=r)return t[r]}var Se=Object.prototype.hasOwnProperty;function Ee(t,r,e){var n=t[r];Se.call(t,r)&&qt(n,e)&&(void 0!==e||r in t)||ye(t,r,e)}var xe=Object.prototype.hasOwnProperty;function Pe(t){if(!Bt(t))return function(t){var r=[];if(null!=t)for(var e in Object(t))r.push(e);return r}(t);var r=Dt(t),e=[];for(var n in t)("constructor"!=n||!r&&xe.call(t,n))&&e.push(n);return e}function Te(t){return Rt(t)?It(t,!0):Pe(t)}function ze(t){return function(t,r,e,n){var o=!e;e||(e={});for(var u=-1,a=r.length;++u0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(Fe);function Ne(t,r){return Be(function(t,r,e){return r=De(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,u=De(n.length-r,0),a=Array(u);++o1?r[n-1]:void 0,u=n>2?r[2]:void 0;for(o=Re.length>3&&"function"==typeof o?(n--,o):void 0,u&&function(t,r,e){if(!Bt(e))return!1;var n=typeof r;return!!("number"==n?Rt(e)&&wt(r,e.length):"string"==n&&r in e)&&qt(e[r],t)}(r[0],r[1],u)&&(o=n<3?void 0:o,n=1),t=Object(t);++er.length:var n=r.length,o=["any"];return t.map((function(t,e){var u=e>=n||!!r[e].optional,a=r[e]||{type:o,name:"_"+e};return{arg:u?he(t,a):t,index:e,param:a,optional:u}}));default:throw new L("Could not understand your arguments and parameter structure!",{args:t,params:r})}}(t,r),u=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var r=t.arg,e=t.param;return!!G(r)&&!(e.type.length>e.type.filter((function(r){return ve(r,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(r){return ve(r,t)})).length)}));return e?((n={}).error=u,n.data=o.map((function(t){return t.arg})),n):u})),vn={algorithm:sn("HS256",["string"]),expiresIn:sn(!1,["boolean","number","string"],(tn={},tn.alias="exp",tn.optional=!0,tn)),notBefore:sn(!1,["boolean","number","string"],(rn={},rn.alias="nbf",rn.optional=!0,rn)),audience:sn(!1,["boolean","string"],(en={},en.alias="iss",en.optional=!0,en)),subject:sn(!1,["boolean","string"],(nn={},nn.alias="sub",nn.optional=!0,nn)),issuer:sn(!1,["boolean","string"],(on={},on.alias="iss",on.optional=!0,on)),noTimestamp:sn(!1,["boolean"],(un={},un.optional=!0,un)),header:sn(!1,["boolean","string"],(an={},an.optional=!0,an)),keyid:sn(!1,["boolean","string"],(cn={},cn.optional=!0,cn)),mutatePayload:sn(!1,["boolean"],(fn={},fn.optional=!0,fn))};t.decodeToken=function(t){if(J(t))return W(u(t));throw new L("Token must be a string!")},t.tokenValidator=function(t){if(!ln(t))return{};var r={},e=pn(t,vn);for(var n in e)e[n]&&(r[n]=e[n]);return r},Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlJwt={})}(this,(function(t){"use strict";function r(t){this.message=t}r.prototype=new Error,r.prototype.name="InvalidCharacterError";var e="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new r("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,u=0,a=0,i="";o=e.charAt(a++);~o&&(n=u%4?64*n+o:o,u++%4)?i+=String.fromCharCode(255&n>>(-2*u&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return i};var n=function(t){var r=t.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(e(t).replace(/(.)/g,(function(t,r){var e=r.charCodeAt(0).toString(16).toUpperCase();return e.length<2&&(e="0"+e),"%"+e})))}(r)}catch(t){return e(r)}};function o(t){this.message=t}o.prototype=new Error,o.prototype.name="InvalidTokenError";var u=function(t,r){if("string"!=typeof t)throw new o("Invalid token specified");var e=!0===(r=r||{}).header?0:1;try{return JSON.parse(n(t.split(".")[e]))}catch(t){throw new o("Invalid token specified: "+t.message)}};u.InvalidTokenError=o;var a="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},i="object"==typeof a&&a&&a.Object===Object&&a,c="object"==typeof self&&self&&self.Object===Object&&self,f=i||c||Function("return this")(),l=f.Symbol;function s(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var u=Array(o);++n-1;);return e}(n,o),function(t,r){for(var e=t.length;e--&&E(r,t[e],0)>-1;);return e}(n,o)+1).join("")}function q(t){return"string"==typeof t||!p(t)&&j(t)&&"[object String]"==_(t)}var J=function(t){return""!==V(t)&&q(t)},L=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return-1},Object.defineProperties(r,e),r}(Error);function W(t){var r=t.iat||function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r}(!0);if(t.exp&&r>=t.exp){var e=new Date(t.exp).toISOString();throw new L("Token has expired on "+e,t)}return t}var G=function(t){return!!p(t)||null!=t&&""!==V(t)};function H(t){return function(t){return"number"==typeof t||j(t)&&"[object Number]"==_(t)}(t)&&t!=+t}var Y=function(t){return!q(t)&&!H(parseFloat(t))},K=function(t){return null!=t&&"boolean"==typeof t},Q=function(t,r){return void 0===r&&(r=!0),void 0!==t&&""!==t&&""!==V(t)&&(!1===r||!0===r&&null!==t)},X=function(t){switch(t){case"number":return Y;case"string":return J;case"boolean":return K;default:return Q}},Z=function(t,r){return void 0===r&&(r=""),!!p(t)&&(""===r||""===V(r)||!(t.filter((function(t){return!X(r)(t)})).length>0))},tt=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var r=t.replace("array.<","").replace(">","");return r.indexOf("|")?r.split("|"):[r]}return!1},rt=function(t,r){var e=t.arg;return r.length>1?!e.filter((function(t){return!(r.length>r.filter((function(r){return!X(r)(t)})).length)})).length:r.length>r.filter((function(t){return!Z(e,t)})).length};function et(t,r){return function(e){return t(r(e))}}var nt=et(Object.getPrototypeOf,Object),ot=Function.prototype,ut=Object.prototype,at=ot.toString,it=ut.hasOwnProperty,ct=at.call(Object);function ft(t){if(!j(t)||"[object Object]"!=_(t))return!1;var r=nt(t);if(null===r)return!0;var e=it.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&at.call(e)==ct}var lt=function(t,r){if(void 0===r&&(r=null),ft(t)){if(!r)return!0;if(Z(r))return!r.filter((function(r){var e=t[r.name];return!(r.type.length>r.type.filter((function(t){var r;return void 0===e||(!1!==(r=tt(t))?!rt({arg:e},r):!X(t)(e))})).length)})).length}return!1},st=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(r,e),r}(Error),pt=function(t,r){var e,n,o,u,a;switch(!0){case"object"===t:return o=(n=r).arg,u=n.param,a=[o],Array.isArray(u.keys)&&u.keys.length&&a.push(u.keys),!Reflect.apply(lt,null,a);case"array"===t:return!Z(r.arg);case!1!==(e=tt(t)):return!rt(r,e);default:return!X(t)(r.arg)}},vt=function(t,r){return void 0!==t?t:!0===r.optional&&void 0!==r.defaultvalue?r.defaultvalue:null};function ht(t,r){return t===r||t!=t&&r!=r}function dt(t,r){for(var e=t.length;e--;)if(ht(t[e][0],r))return e;return-1}var yt=Array.prototype.splice;function bt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1},bt.prototype.set=function(t,r){var e=this.__data__,n=dt(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};function _t(t){if(!gt(t))return!1;var r=_(t);return"[object Function]"==r||"[object GeneratorFunction]"==r||"[object AsyncFunction]"==r||"[object Proxy]"==r}var jt,mt=f["__core-js_shared__"],wt=(jt=/[^.]+$/.exec(mt&&mt.keys&&mt.keys.IE_PROTO||""))?"Symbol(src)_1."+jt:"";var Ot=Function.prototype.toString;function kt(t){if(null!=t){try{return Ot.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var At=/^\[object .+?Constructor\]$/,St=Function.prototype,Et=Object.prototype,Pt=St.toString,xt=Et.hasOwnProperty,Tt=RegExp("^"+Pt.call(xt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zt(t){return!(!gt(t)||(r=t,wt&&wt in r))&&(_t(t)?Tt:At).test(kt(t));var r}function Ct(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return zt(e)?e:void 0}var It=Ct(f,"Map"),Mt=Ct(Object,"create");var Dt=Object.prototype.hasOwnProperty;var Ft=Object.prototype.hasOwnProperty;function $t(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1&&t%1==0&&t<=9007199254740991}function cr(t){return null!=t&&ir(t.length)&&!_t(t)}var fr="object"==typeof t&&t&&!t.nodeType&&t,lr=fr&&"object"==typeof module&&module&&!module.nodeType&&module,sr=lr&&lr.exports===fr?f.Buffer:void 0,pr=(sr?sr.isBuffer:void 0)||function(){return!1},vr={};vr["[object Float32Array]"]=vr["[object Float64Array]"]=vr["[object Int8Array]"]=vr["[object Int16Array]"]=vr["[object Int32Array]"]=vr["[object Uint8Array]"]=vr["[object Uint8ClampedArray]"]=vr["[object Uint16Array]"]=vr["[object Uint32Array]"]=!0,vr["[object Arguments]"]=vr["[object Array]"]=vr["[object ArrayBuffer]"]=vr["[object Boolean]"]=vr["[object DataView]"]=vr["[object Date]"]=vr["[object Error]"]=vr["[object Function]"]=vr["[object Map]"]=vr["[object Number]"]=vr["[object Object]"]=vr["[object RegExp]"]=vr["[object Set]"]=vr["[object String]"]=vr["[object WeakMap]"]=!1;var hr,dr="object"==typeof t&&t&&!t.nodeType&&t,yr=dr&&"object"==typeof module&&module&&!module.nodeType&&module,br=yr&&yr.exports===dr&&i.process,gr=function(){try{var t=yr&&yr.require&&yr.require("util").types;return t||br&&br.binding&&br.binding("util")}catch(t){}}(),_r=gr&&gr.isTypedArray,jr=_r?(hr=_r,function(t){return hr(t)}):function(t){return j(t)&&ir(t.length)&&!!vr[_(t)]};function mr(t,r){if(("constructor"!==r||"function"!=typeof t[r])&&"__proto__"!=r)return t[r]}var wr=Object.prototype.hasOwnProperty;function Or(t,r,e){var n=t[r];wr.call(t,r)&&ht(n,e)&&(void 0!==e||r in t)||Vt(t,r,e)}var kr=/^(?:0|[1-9]\d*)$/;function Ar(t,r){var e=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&kr.test(t))&&t>-1&&t%1==0&&t0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}($r);function Rr(t,r){return Br(function(t,r,e){return r=Fr(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,u=Fr(n.length-r,0),a=Array(u);++o1?r[n-1]:void 0,u=n>2?r[2]:void 0;for(o=Ur.length>3&&"function"==typeof o?(n--,o):void 0,u&&function(t,r,e){if(!gt(e))return!1;var n=typeof r;return!!("number"==n?cr(e)&&Ar(r,e.length):"string"==n&&r in e)&&ht(e[r],t)}(r[0],r[1],u)&&(o=n<3?void 0:o,n=1),t=Object(t);++ei))return!1;var f=u.get(t);if(f&&u.get(r))return f==r;var l=-1,s=!0,p=2&e?new Gr:void 0;for(u.set(t,r),u.set(r,t);++lr.length:var n=r.length,o=["any"];return t.map((function(t,e){var u=e>=n||!!r[e].optional,a=r[e]||{type:o,name:"_"+e};return{arg:u?vt(t,a):t,index:e,param:a,optional:u}}));default:throw new L("Could not understand your arguments and parameter structure!",{args:t,params:r})}}(t,r),u=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var r=t.arg,e=t.param;return!!G(r)&&!(e.type.length>e.type.filter((function(r){return pt(r,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(r){return pt(r,t)})).length)}));return e?((n={}).error=u,n.data=o.map((function(t){return t.arg})),n):u})),hn={algorithm:pn("HS256",["string"]),expiresIn:pn(!1,["boolean","number","string"],(rn={},rn.alias="exp",rn.optional=!0,rn)),notBefore:pn(!1,["boolean","number","string"],(en={},en.alias="nbf",en.optional=!0,en)),audience:pn(!1,["boolean","string"],(nn={},nn.alias="iss",nn.optional=!0,nn)),subject:pn(!1,["boolean","string"],(on={},on.alias="sub",on.optional=!0,on)),issuer:pn(!1,["boolean","string"],(un={},un.alias="iss",un.optional=!0,un)),noTimestamp:pn(!1,["boolean"],(an={},an.optional=!0,an)),header:pn(!1,["boolean","string"],(cn={},cn.optional=!0,cn)),keyid:pn(!1,["boolean","string"],(fn={},fn.optional=!0,fn)),mutatePayload:pn(!1,["boolean"],(ln={},ln.optional=!0,ln))};t.decodeToken=function(t){if(J(t))return W(u(t));throw new L("Token must be a string!")},t.tokenValidator=function(t){if(!sn(t))return{};var r={},e=vn(t,hn);for(var n in e)e[n]&&(r[n]=e[n]);return r},Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=jsonql-jwt.js.map diff --git a/packages/jwt/dist/jsonql-jwt.js.map b/packages/jwt/dist/jsonql-jwt.js.map index 0b71aa559d3a64d77fbcc322b471e1144653704e..f74b03f103a754a58fe9570ecf25e1aa4291b9a1 100644 --- a/packages/jwt/dist/jsonql-jwt.js.map +++ b/packages/jwt/dist/jsonql-jwt.js.map @@ -1 +1 @@ -{"version":3,"file":"jsonql-jwt.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file +{"version":3,"file":"jsonql-jwt.js","sources":["../node_modules/lodash-es/_arraySome.js"],"sourcesContent":["/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n"],"names":["SetCache"],"mappings":"0qhBAAAA"} \ No newline at end of file diff --git a/packages/jwt/package.json b/packages/jwt/package.json index a92aa35c9965f7e94daeca8294ea2ea6ba01d43c..bd018a89eeb5a12950de2fbbec1192147b88729c 100644 --- a/packages/jwt/package.json +++ b/packages/jwt/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-jwt", - "version": "1.3.9", + "version": "1.3.10", "description": "jwt authentication helpers library for jsonql browser / node", "main": "main.js", "module": "index.js", @@ -39,10 +39,10 @@ "dependencies": { "colors": "^1.4.0", "fs-extra": "^8.1.0", - "jsonql-constants": "^2.0.1", - "jsonql-errors": "^1.2.0", - "jsonql-params-validator": "^1.6.0", - "jsonql-utils": "^1.1.3", + "jsonql-constants": "^2.0.2", + "jsonql-errors": "^1.2.1", + "jsonql-params-validator": "^1.6.1", + "jsonql-utils": "^1.2.0", "jsonwebtoken": "^8.5.1", "jwt-decode": "^2.2.0", "socketio-jwt": "^4.5.0", diff --git a/packages/jwt/rollup.config.js b/packages/jwt/rollup.config.js index 863f1d1af3770a5c1a0c7355bf4a7b26f93dca8f..a8aa3d275410713ce605a637257bb9cc2481ed80 100644 --- a/packages/jwt/rollup.config.js +++ b/packages/jwt/rollup.config.js @@ -1,25 +1,25 @@ /** * Rollup config for building the client package */ -import { join } from 'path'; -import buble from 'rollup-plugin-buble'; +import { join } from 'path' +import buble from 'rollup-plugin-buble' -import { terser } from "rollup-plugin-terser"; -import replace from 'rollup-plugin-replace'; -import commonjs from 'rollup-plugin-commonjs'; +import { terser } from "rollup-plugin-terser" +import replace from 'rollup-plugin-replace' +import commonjs from 'rollup-plugin-commonjs' -import json from 'rollup-plugin-json'; +import json from 'rollup-plugin-json' -import nodeResolve from 'rollup-plugin-node-resolve'; -import nodeGlobals from 'rollup-plugin-node-globals'; -import builtins from 'rollup-plugin-node-builtins'; -import size from 'rollup-plugin-bundle-size'; +import nodeResolve from 'rollup-plugin-node-resolve' +import nodeGlobals from 'rollup-plugin-node-globals' +import builtins from 'rollup-plugin-node-builtins' +import size from 'rollup-plugin-bundle-size' // support async functions -import async from 'rollup-plugin-async'; +import async from 'rollup-plugin-async' // get the version info -import { version } from './package.json'; +import { version } from './package.json' -const env = process.env.NODE_ENV; +const env = process.env.NODE_ENV let plugins = [ json({ @@ -70,4 +70,4 @@ let config = { plugins: plugins }; -export default config; +export default config diff --git a/packages/jwt/rollup.decode-jwt.config.js b/packages/jwt/rollup.decode-jwt.config.js index 5059eb8a9f0c24d7360370d1e6edcbe1c8aad1d5..bf5b4d94c83efc69d968f87eff93f17fe7d04ea0 100644 --- a/packages/jwt/rollup.decode-jwt.config.js +++ b/packages/jwt/rollup.decode-jwt.config.js @@ -1,25 +1,25 @@ /** * Rollup config for just building out the decode token to share between cjs and browser */ -import { join } from 'path'; -import buble from 'rollup-plugin-buble'; +import { join } from 'path' +import buble from 'rollup-plugin-buble' // import { terser } from "rollup-plugin-terser"; -import replace from 'rollup-plugin-replace'; -import commonjs from 'rollup-plugin-commonjs'; +import replace from 'rollup-plugin-replace' +import commonjs from 'rollup-plugin-commonjs' -import json from 'rollup-plugin-json'; +import json from 'rollup-plugin-json' -import nodeResolve from 'rollup-plugin-node-resolve'; -import nodeGlobals from 'rollup-plugin-node-globals'; -import builtins from 'rollup-plugin-node-builtins'; -import size from 'rollup-plugin-bundle-size'; +import nodeResolve from 'rollup-plugin-node-resolve' +import nodeGlobals from 'rollup-plugin-node-globals' +import builtins from 'rollup-plugin-node-builtins' +import size from 'rollup-plugin-bundle-size' // support async functions -import async from 'rollup-plugin-async'; +import async from 'rollup-plugin-async' // get the version info -import { version } from './package.json'; +import { version } from './package.json' -const env = process.env.NODE_ENV; +const env = process.env.NODE_ENV let plugins = [ json({ @@ -40,7 +40,7 @@ let plugins = [ '__PLACEHOLDER__': `version: ${version} module: ${env==='prod' ? 'cjs' : 'umd'}` }), size() -]; +] let config = { input: join(__dirname, 'src', 'client', 'index.js'), @@ -48,7 +48,7 @@ let config = { name: 'jsonqlJwtHelpers', file: join(__dirname, 'src', 'jwt', 'decode-token.js'), format: 'cjs', - sourceMap: false, + sourcemap: false, globals: { 'jwt-decode': 'jwt_decode', 'jsonql-params-validator': 'jsonqlParamsValidator', @@ -73,6 +73,6 @@ let config = { 'promise-polyfill' ], plugins: plugins -}; +} -export default config; +export default config diff --git a/packages/jwt/src/client/index.js b/packages/jwt/src/client/index.js index 731487ca00f2129fb9d64ffb7a4e7b0cdaa2837a..dacf2e4cc916a05d18e228198104a901eafe1219 100644 --- a/packages/jwt/src/client/index.js +++ b/packages/jwt/src/client/index.js @@ -1,18 +1,4 @@ // this is the client side code interface using ES6 -/* moved to @jsonql/socketio -import { - socketIoClient, - socketIoClientAsync, - socketIoHandshakeLogin, - socketIoRoundtripLogin, - socketIoChainConnect -} from './socketio' -*/ -// ws -/* -moved to @jsonql/ws -import { wsAuthClient, wsClient } from './ws/auth-client' -*/ import decodeToken from './decode-token/decode-token' import tokenValidator from './decode-token/token-validator' diff --git a/packages/jwt/src/crypto/encrypt-decrypt.js b/packages/jwt/src/crypto/encrypt-decrypt.js index 22628877fe8b2df5a378b707b7626f87d42db3e2..5f9a4010ae433cd8f44f4587c17efe021f830905 100644 --- a/packages/jwt/src/crypto/encrypt-decrypt.js +++ b/packages/jwt/src/crypto/encrypt-decrypt.js @@ -13,7 +13,7 @@ function encryptWithPublicPem(toEncrypt, relativeOrAbsolutePathToPublicKey) { const publicKey = fs.readFileSync(absolutePath, UTF8_FORMAT) const buffer = Buffer.from(toEncrypt, UTF8_FORMAT) const encrypted = crypto.publicEncrypt(publicKey, buffer) - return encrypted.toString(BASE64_FORMAT); + return encrypted.toString(BASE64_FORMAT) } /** @@ -35,29 +35,44 @@ function decryptWithPrivatePem(toDecrypt, relativeOrAbsolutePathtoPrivateKey) { return decrypted.toString(UTF8_FORMAT) } -module.exports = { - encryptWithPublicPem, - decryptWithPrivatePem -} -// for reference at the moment -/* -function signObject(str) { - var signerObject = crypto.createSign("RSA-SHA256") - signerObject.update(str); - var signature = signerObject.sign({ +/** + * not sure how to use it at the moment, but just put it here + * @param {*} str + * @param {*} publicKey + */ +function signObject(str, publicKey) { + const SIGN_KEY_NAME = 'RSA-SHA256' + + const signerObject = crypto.createSign(SIGN_KEY_NAME) + + signerObject.update(str) + + const signature = signerObject.sign({ key: privateKey, padding: crypto.constants.RSA_PKCS1_PSS_PADDING - }, "base64"); + }, BASE64_FORMAT) - console.info("signature: %s", signature); + console.info("signature: %s", signature) + //verify String - var verifierObject = crypto.createVerify("RSA-SHA256") - verifierObject.update(str); - var verified = verifierObject.verify({ + const verifierObject = crypto.createVerify(SIGN_KEY_NAME) + + verifierObject.update(str) + + const verified = verifierObject.verify({ key: publicKey, padding: crypto.constants.RSA_PKCS1_PSS_PADDING - }, signature, "base64"); + }, signature, BASE64_FORMAT) + console.info("is signature ok?: %s", verified) + + return verified +} + + +module.exports = { + signObject, + encryptWithPublicPem, + decryptWithPrivatePem } -*/ \ No newline at end of file diff --git a/packages/jwt/src/jwt/decode-token.js b/packages/jwt/src/jwt/decode-token.js index 33992cf54a1ca32dc0493353bdda28073bade590..b5e0f1ba0ebef9773dae1a9bbf8981dc44c99ab2 100644 --- a/packages/jwt/src/jwt/decode-token.js +++ b/packages/jwt/src/jwt/decode-token.js @@ -573,18 +573,10 @@ function isString(value) { * @return {boolean} true if OK */ var checkIsString = function(value) { - return (trim(value) !== '') ? isString(value) : false; + return (trim(value) !== '') ? isString(value) : false }; -var OPTIONAL_KEY = 'optional'; -var ALIAS_KEY = 'alias'; - -var STRING_TYPE = 'string'; -var BOOLEAN_TYPE = 'boolean'; - -var NUMBER_TYPE = 'number'; var NO_STATUS_CODE = -1; -var HSA_ALGO = 'HS256'; /** * This is a custom error to throw whenever a error happen inside the jsonql @@ -617,11 +609,11 @@ var JsonqlError = /*@__PURE__*/(function (Error) { var staticAccessors = { name: { configurable: true },statusCode: { configurable: true } }; staticAccessors.name.get = function () { - return 'JsonqlError'; + return 'JsonqlError' }; staticAccessors.statusCode.get = function () { - return NO_STATUS_CODE; + return NO_STATUS_CODE }; Object.defineProperties( JsonqlError, staticAccessors ); @@ -675,6 +667,15 @@ function jwtDecode(token) { throw new JsonqlError('Token must be a string!') } +/* base.js */ +var OPTIONAL_KEY = 'optional'; +var ALIAS_KEY = 'alias'; +var HSA_ALGO = 'HS256'; +var STRING_TYPE = 'string'; +var BOOLEAN_TYPE = 'boolean'; + +var NUMBER_TYPE = 'number'; + var obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8; var appProps = {