niba-api 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1 +1 @@
1
- import e from"koa";import t from"koa-bodyparser";import r from"@babel/runtime/helpers/typeof";import n from"@babel/runtime/helpers/asyncToGenerator";import u from"@babel/runtime/helpers/slicedToArray";import a from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/regenerator";import{promisify as c}from"node:util";import{createCipheriv as i,scrypt as s,createDecipheriv as p,randomBytes as f}from"node:crypto";import l from"cacache";import h from"path";import b from"os";var v=console;function d(e){v=e}var y=v;function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return w(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,u=function(){};return{s:u,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){c=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(c)throw a}}}}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var k=/\((.*?)\)/g,O=/(\(\?)?:\w+/g,j=/\*\w+/g,S=/[\-{}\[\]+?.,\\\^$|#\s]/g;function A(e){return"string"!=typeof e?e:e.indexOf(",")<0?e.trim():e.split(",").map((function(e){return/^\d+(\.\d+)?$/g.test(e.trim())?parseFloat(e.trim()):e.trim()})).filter((function(e){return e}))}function P(e,t){var r,n=g(e);try{var u,o=function(){var e=r.value,n=function(e){var t=e.replace(S,"\\$&").replace(k,"(?:$1)?").replace(O,(function(e,t){return t?e:"([^/?]+)"})).replace(j,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")}(e.path);if(!n.test(t))return 0;var u={},o=e.path.match(O);if(!o)return{v:{route:e,patterns:u}};var c=function(e,t){var r=e.exec(t).slice(1);return r.map((function(e,t){return t===r.length-1?e||null:e?decodeURIComponent(e):null}))}(n,t);return o.forEach((function(e,t){Object.assign(u,a({},e.slice(1),A(c[t])))})),{v:{route:e,patterns:u}}};for(n.s();!(r=n.n()).done;)if(0!==(u=o())&&u)return u.v}catch(e){n.e(e)}finally{n.f()}return null}function B(e,t){var r={},n={};t instanceof Array?t.forEach((function(e){Object.assign(n,a({},e,e))})):Object.assign(n,t);for(var o=0,c=Object.entries(e);o<c.length;o++)for(var i=u(c[o],2),s=i[0],p=A(i[1]),f=0,l=Object.entries(n);f<l.length;f++){var h=u(l[f],2),b=h[0];s===h[1]&&Object.assign(r,a({},b,p));break}return r}function E(e){return function(){var t=n(o.mark((function t(n,u){var c,i,s,p,f,l,h,b,v,d;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n.path,s=P(e,i)){t.next=4;break}return t.abrupt("return");case 4:if(p=s.route,f=s.patterns,y.debug("route %o, patterns: %o",p,f),"string"!=typeof p.method||n.method.toLowerCase()===p.method.toLowerCase()){t.next=9;break}return n.throw(405),t.abrupt("return");case 9:if(l=p.handler,y.debug("handler: %o, type: %o",l,r(l)),l&&"function"==typeof l){t.next=14;break}return n.throw(500,"The handler cannot be found"),t.abrupt("return");case 14:if(h=n.state.USER,!p.auth||h){t.next=18;break}return n.throw(401),t.abrupt("return");case 18:if(b=null!==(c=n.state.ACL)&&void 0!==c?c:[],"string"!=typeof p.auth||b.includes(p.auth)){t.next=22;break}return n.throw(403),t.abrupt("return");case 22:return v=x(x({request:n.request,response:n.response},f),{},{_user:h}),"string"==typeof p.body&&Object.assign(v,a({},p.body,n.request.body)),p.header&&Object.assign(v,B(n.request.header,p.header)),p.query&&Object.assign(v,B(n.request.query,p.query)),t.next=28,l(v);case 28:if(d=t.sent,!(n.status>=300&&n.status<400)){t.next=31;break}return t.abrupt("return");case 31:return n.body=null!=d?d:null,t.next=34,u();case 34:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}()}var q="aes-192-cbc",C="bmliYW5pYmFsYW5uaWJhIQ==",T="bmliYW5pYmFjaG91bmliYQ==";function I(e,t){return D.apply(this,arguments)}function D(){return(D=n(o.mark((function e(t,r){var n,u,a,p,f;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(s)(r,C,24);case 2:return n=e.sent,u=Buffer.from(T,"base64"),a=i(q,n,u),p=a.update(t),f=a.final(),e.abrupt("return",Buffer.concat([p,f]));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(e,t){return U.apply(this,arguments)}function U(){return(U=n(o.mark((function e(t,r){var n,u,a,i,f;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(s)(r,C,24);case 2:return n=e.sent,u=Buffer.from(T,"base64"),a=p(q,n,u),i=a.update(t),f=a.final(),e.abrupt("return",Buffer.concat([i,f]));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Y(e,t){return $.apply(this,arguments)}function $(){return($=n(o.mark((function e(t,r){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(Buffer.from(t,"utf8"),r);case 2:return n=e.sent,e.abrupt("return",n.toString("base64url"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _(e,t){return Q.apply(this,arguments)}function Q(){return(Q=n(o.mark((function e(t,r){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,L(Buffer.from(t,"base64url"),r);case 2:return n=e.sent,e.abrupt("return",n.toString("utf8"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var G=h.resolve(b.tmpdir(),"niba_cache");function R(){return(R=n(o.mark((function e(){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.ls(G);case 3:return e.abrupt("return",e.sent);case 6:e.prev=6,e.t0=e.catch(0);case 8:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function W(e){return z.apply(this,arguments)}function z(){return(z=n(o.mark((function e(t){var r,n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.get(G,t);case 3:return r=e.sent,n=r.data,e.abrupt("return",n.toString("utf-8"));case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))).apply(this,arguments)}function F(){return(F=n(o.mark((function e(t){var r;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,W(t);case 2:return r=e.sent,e.abrupt("return",r&&JSON.parse(r));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(e,t){return K.apply(this,arguments)}function K(){return(K=n(o.mark((function e(t,r){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.put(G,t,r+"");case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function M(){return(M=n(o.mark((function e(t,r){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:J(t,JSON.stringify(r));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function N(){return(N=n(o.mark((function e(t){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.rm.entry(G,t);case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function X(){return(X=n(o.mark((function e(){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.rm.all(G);case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}var H=Object.freeze({__proto__:null,clear:function(){return X.apply(this,arguments)},evict:function(e){return N.apply(this,arguments)},getObject:function(e){return F.apply(this,arguments)},getText:W,ls:function(){return R.apply(this,arguments)},setObject:function(e,t){return M.apply(this,arguments)},setPath:function(e){G=e},setText:J}),V="eD300Ezu9r4Q3CPM7XQt-Q";function Z(e){return ee.apply(this,arguments)}function ee(){return(ee=n(o.mark((function e(t){var r,n,u,a,i,s,p,l,h,b,v,d;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.uid,n=t.device,u=void 0===n?"unknow":n,a=t.key,i=void 0===a?V:a,s=t.timeout,p=void 0===s?30:s,l=(new Date).getTime(),e.next=4,c(f)(16);case 4:return h=e.sent,b=Buffer.from(l+60*p*1e3+"","ascii"),v=Buffer.concat([b,Buffer.from("".concat(r,"<=>").concat(u,"<=>").concat(l)),h]),e.next=9,I(v,i);case 9:return d=e.sent,e.next=12,J("".concat(r,"@").concat(u),l);case 12:return e.abrupt("return",d.toString("base64url"));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function te(e){return re.apply(this,arguments)}function re(){return(re=n(o.mark((function e(t){var r,n,a,c,i,s,p,f,l,h,b,v;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.token,n=t.key,a=void 0===n?V:n,c=Buffer.from(r,"base64url"),e.next=4,L(c,a);case 4:if(i=e.sent,s=i.subarray(0,i.length-16).toString("utf8"),!(parseInt(s.slice(0,13))<(new Date).getTime())){e.next=9;break}return e.abrupt("return",null);case 9:return p=s.slice(13).split("<=>"),f=u(p,3),l=f[0],h=f[1],b=f[2],e.next=12,W("".concat(l,"@").concat(h));case 12:if(v=e.sent,!(parseInt(b)<parseInt(v))){e.next=15;break}return e.abrupt("return",null);case 15:return e.abrupt("return",{uid:l,device:h});case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ne(e){var t=e.getUser,r=e.getACL,u=e.tokenKey;return function(){var e=n(o.mark((function e(n,a){var c,i,s,p,f,l,h,b,v;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((c=null)||(s=null===(i=n.headers)||void 0===i?void 0:i.authorization,c=null==s?void 0:s.substring(7).trim()),c||(c=null===(p=n.query)||void 0===p?void 0:p.token),y.debug("--\x3e token: %s",c),c){e.next=8;break}return e.next=7,a();case 7:return e.abrupt("return");case 8:return e.prev=8,e.next=11,te({token:c,key:null!=u?u:void 0});case 11:if(f=e.sent,l=f.uid,h=f.device,y.debug("uid: %s, device: %s",l,h),!t||"function"!=typeof t){e.next=20;break}return e.next=18,t({uid:l,device:h});case 18:b=e.sent,n.state.USER=b;case 20:if(!r||"function"!=typeof r){e.next=25;break}return e.next=23,r({uid:l,device:h});case 23:v=e.sent,n.state.ACL=v;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(8),n.throw(401);case 30:return e.next=32,a();case 32:case"end":return e.stop()}}),e,null,[[8,27]])})));return function(t,r){return e.apply(this,arguments)}}()}function ue(){return function(){var e=n(o.mark((function e(t,r){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r();case 2:(n=t.accepts("*/*","text/*","application/json"))&&(t.type="".concat(n,"; charset=utf-8"));case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()}function ae(r){var n=r.routes,u=void 0===n?[]:n,a=r.plugins,o=void 0===a?[]:a,c=r.hostname,i=void 0===c?"localhost":c,s=r.port,p=void 0===s?9090:s,f=r.userGetter,l=void 0===f?null:f,h=r.aclGetter,b=void 0===h?null:h,v=r.tokenKey,m=void 0===v?null:v,x=r.logger,g=void 0===x?null:x;g&&d(g);var w=new e;w.use(t({enableTypes:["json","form","text"]})),w.use(ne({getUser:l,getACL:b,tokenKey:m})),w.use(E(u)),w.use(ue()),o.forEach((function(e){w.use(e)})),y.info("--\x3e niba is listening at http://".concat(i,":").concat(p)),w.listen(p,i)}export{ne as authentication,H as cache,Z as createToken,L as decrypt,_ as decryptText,E as dispatcher,I as encrypt,Y as encryptText,y as logger,te as parseToken,ue as rjson,ae as serve,d as setLogger};
1
+ import e from"koa";import r from"koa-bodyparser";import t from"@babel/runtime/helpers/typeof";import n from"@babel/runtime/helpers/asyncToGenerator";import u from"@babel/runtime/helpers/slicedToArray";import a from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/regenerator";import{promisify as c}from"node:util";import{createCipheriv as s,scrypt as i,createDecipheriv as p,randomBytes as f}from"node:crypto";import l from"cacache";import v from"path";import b from"os";var h=console;function d(e){h=e}var m=h;function y(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function x(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?y(Object(t),!0).forEach((function(r){a(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function g(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(!e)return;if("string"==typeof e)return w(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return w(e,r)}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,u=function(){};return{s:u,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,c=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return o=e.done,e},e:function(e){c=!0,a=e},f:function(){try{o||null==t.return||t.return()}finally{if(c)throw a}}}}function w(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var k=/\((.*?)\)/g,O=/(\(\?)?:\w+/g,j=/\*\w+/g,S=/[\-{}\[\]+?.,\\\^$|#\s]/g;function P(e){return"string"!=typeof e?e:e.indexOf(",")<0?e.trim():e.split(",").map((function(e){return/^\d+(\.\d+)?$/g.test(e.trim())?parseFloat(e.trim()):e.trim()})).filter((function(e){return e}))}function A(e,r){var t,n=g(e);try{var u,o=function(){var e=t.value,n=function(e){var r=e.replace(S,"\\$&").replace(k,"(?:$1)?").replace(O,(function(e,r){return r?e:"([^/?]+)"})).replace(j,"([^?]*?)");return new RegExp("^"+r+"(?:\\?([\\s\\S]*))?$")}(e.path);if(!n.test(r))return 0;var u={},o=e.path.match(O);if(!o)return{v:{route:e,patterns:u}};var c=function(e,r){var t=e.exec(r).slice(1);return t.map((function(e,r){return r===t.length-1?e||null:e?decodeURIComponent(e):null}))}(n,r);return o.forEach((function(e,r){Object.assign(u,a({},e.slice(1),P(c[r])))})),{v:{route:e,patterns:u}}};for(n.s();!(t=n.n()).done;)if(0!==(u=o())&&u)return u.v}catch(e){n.e(e)}finally{n.f()}return null}function C(e,r){var t={},n={};r instanceof Array?r.forEach((function(e){Object.assign(n,a({},e,e))})):Object.assign(n,r);for(var o=0,c=Object.entries(e);o<c.length;o++)for(var s=u(c[o],2),i=s[0],p=P(s[1]),f=0,l=Object.entries(n);f<l.length;f++){var v=u(l[f],2),b=v[0];i===v[1]&&Object.assign(t,a({},b,p));break}return t}function G(e){return function(){var r=n(o.mark((function r(n,u){var c,s,i,p,f,l,v,b,h,d;return o.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(s=n.path,i=A(e,s)){r.next=4;break}return r.abrupt("return");case 4:if(p=i.route,f=i.patterns,m.debug("--\x3e route %o, patterns: %o",p,f),"string"!=typeof p.method||n.method.toLowerCase()===p.method.toLowerCase()){r.next=9;break}return n.throw(405),r.abrupt("return");case 9:if(l=p.handler,m.debug("--\x3e handler: %o, type: %o",l,t(l)),l&&"function"==typeof l){r.next=14;break}return n.throw(500,"The handler cannot be found"),r.abrupt("return");case 14:if(v=n.state.USER,m.debug("--\x3e current user: %o",v),!p.auth||v){r.next=19;break}return n.throw(401),r.abrupt("return");case 19:if(b=null!==(c=n.state.ACL)&&void 0!==c?c:[],"string"!=typeof p.auth||b.includes(p.auth)){r.next=23;break}return n.throw(403),r.abrupt("return");case 23:return h=x(x({request:n.request,response:n.response},f),{},{_user:v}),"string"==typeof p.body?Object.assign(h,a({},p.body,n.request.body)):Object.assign(h,{body:n.request.body}),p.header&&Object.assign(h,C(n.request.header,p.header)),p.query&&Object.assign(h,C(n.request.query,p.query)),r.next=29,l(h);case 29:if(d=r.sent,!(n.status>=300&&n.status<400)){r.next=32;break}return r.abrupt("return");case 32:return n.body=null!=d?d:null,r.next=35,u();case 35:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()}var q="aes-192-cbc",B="bmliYW5pYmFsYW5uaWJhIQ==",E="bmliYW5pYmFjaG91bmliYQ==";function L(e,r){return T.apply(this,arguments)}function T(){return(T=n(o.mark((function e(r,t){var n,u,a,p,f;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(i)(t,B,24);case 2:return n=e.sent,u=Buffer.from(E,"base64"),a=s(q,n,u),p=a.update(r),f=a.final(),e.abrupt("return",Buffer.concat([p,f]));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(e,r){return D.apply(this,arguments)}function D(){return(D=n(o.mark((function e(r,t){var n,u,a,s,f;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(i)(t,B,24);case 2:return n=e.sent,u=Buffer.from(E,"base64"),a=p(q,n,u),s=a.update(r),f=a.final(),e.abrupt("return",Buffer.concat([s,f]));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Y(e,r){return $.apply(this,arguments)}function $(){return($=n(o.mark((function e(r,t){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,L(Buffer.from(r,"utf8"),t);case 2:return n=e.sent,e.abrupt("return",n.toString("base64url"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _(e,r){return Q.apply(this,arguments)}function Q(){return(Q=n(o.mark((function e(r,t){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(Buffer.from(r,"base64url"),t);case 2:return n=e.sent,e.abrupt("return",n.toString("utf8"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var R=v.resolve(b.tmpdir(),"niba_cache");function U(){return(U=n(o.mark((function e(){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.ls(R);case 3:return e.abrupt("return",e.sent);case 6:e.prev=6,e.t0=e.catch(0);case 8:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function W(e){return z.apply(this,arguments)}function z(){return(z=n(o.mark((function e(r){var t,n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.get(R,r);case 3:return t=e.sent,n=t.data,e.abrupt("return",n.toString("utf-8"));case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))).apply(this,arguments)}function F(){return(F=n(o.mark((function e(r){var t;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,W(r);case 2:return t=e.sent,e.abrupt("return",t&&JSON.parse(t));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(e,r){return M.apply(this,arguments)}function M(){return(M=n(o.mark((function e(r,t){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.put(R,r,t+"");case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function N(){return(N=n(o.mark((function e(r,t){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:J(r,JSON.stringify(t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function X(){return(X=n(o.mark((function e(r){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.rm.entry(R,r);case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function H(){return(H=n(o.mark((function e(){return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,l.rm.all(R);case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}var K=Object.freeze({__proto__:null,clear:function(){return H.apply(this,arguments)},evict:function(e){return X.apply(this,arguments)},getObject:function(e){return F.apply(this,arguments)},getText:W,ls:function(){return U.apply(this,arguments)},setObject:function(e,r){return N.apply(this,arguments)},setPath:function(e){R=e},setText:J}),V="eD300Ezu9r4Q3CPM7XQt-Q";function Z(e){return ee.apply(this,arguments)}function ee(){return(ee=n(o.mark((function e(r){var t,n,u,a,s,i,p,l,v,b,h,d;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.uid,n=r.device,u=void 0===n?"unknow":n,a=r.key,s=void 0===a?V:a,i=r.timeout,p=void 0===i?30:i,l=(new Date).getTime(),e.next=4,c(f)(16);case 4:return v=e.sent,b=Buffer.from(l+60*p*1e3+"","ascii"),h=Buffer.concat([b,Buffer.from("".concat(t,"<=>").concat(u,"<=>").concat(l)),v]),e.next=9,L(h,s);case 9:return d=e.sent,e.next=12,J("".concat(t,"@").concat(u),l);case 12:return e.abrupt("return",d.toString("base64url"));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function re(e){return te.apply(this,arguments)}function te(){return(te=n(o.mark((function e(r){var t,n,a,c,s,i,p,f,l,v,b,h;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.token,n=r.key,a=void 0===n?V:n,c=Buffer.from(t,"base64url"),e.next=4,I(c,a);case 4:if(s=e.sent,i=s.subarray(0,s.length-16).toString("utf8"),!(parseInt(i.slice(0,13))<(new Date).getTime())){e.next=9;break}return e.abrupt("return",null);case 9:return p=i.slice(13).split("<=>"),f=u(p,3),l=f[0],v=f[1],b=f[2],e.next=12,W("".concat(l,"@").concat(v));case 12:if(h=e.sent,!(parseInt(b)<parseInt(h))){e.next=15;break}return e.abrupt("return",null);case 15:return e.abrupt("return",{uid:l,device:v});case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ne(e){var r=e.userGetter,t=e.ACLGetter,u=e.tokenParser,a=void 0===u?re:u;return function(){var e=n(o.mark((function e(n,u){var c,s,i,p,f,l,v,b,h;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((c=null)||(i=null===(s=n.headers)||void 0===s?void 0:s.authorization,c=null==i?void 0:i.substring(7).trim()),c||(c=null===(p=n.query)||void 0===p?void 0:p.token),m.debug("--\x3e token: %s",c),c){e.next=8;break}return e.next=7,u();case 7:return e.abrupt("return");case 8:return e.prev=8,e.next=11,a({token:c});case 11:if(f=e.sent,l=f.uid,v=f.device,m.debug("uid: %s, device: %s",l,v),!r||"function"!=typeof r){e.next=20;break}return e.next=18,r({uid:l,device:v});case 18:b=e.sent,n.state.USER=b;case 20:if(!t||"function"!=typeof t){e.next=25;break}return e.next=23,t({uid:l,device:v});case 23:h=e.sent,n.state.ACL=h;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(8),n.throw(401);case 30:return e.next=32,u();case 32:case"end":return e.stop()}}),e,null,[[8,27]])})));return function(r,t){return e.apply(this,arguments)}}()}function ue(){return function(){var e=n(o.mark((function e(r,t){var n;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t();case 2:(n=r.accepts("*/*","text/*","application/json"))&&(r.type="".concat(n,"; charset=utf-8"));case 4:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}()}function ae(t){var n=t.routes,u=void 0===n?[]:n,a=t.plugins,o=void 0===a?[]:a,c=t.userGetter,s=void 0===c?null:c,i=t.ACLGetter,p=void 0===i?null:i,f=t.tokenParser,l=void 0===f?null:f,v=t.logger,b=void 0===v?null:v;b&&d(b);var h=new e;return h.use(r({enableTypes:["json","form","text"]})),h.use(ne({userGetter:s,ACLGetter:p,tokenParser:l})),h.use(G(u)),h.use(ue()),o.forEach((function(e){h.use(e)})),http.createServer(h.callback())}function oe(e){var r=e.routes,t=void 0===r?[]:r,n=e.plugins,u=void 0===n?[]:n,a=e.hostname,o=void 0===a?"localhost":a,c=e.port,s=void 0===c?9090:c,i=e.userGetter,p=void 0===i?null:i,f=e.ACLGetter,l=void 0===f?null:f,v=e.tokenParser,b=void 0===v?null:v,h=e.logger,d=ae({routes:t,plugins:u,logger:void 0===h?null:h,userGetter:p,ACLGetter:l,tokenParser:b});m.info("--\x3e niba is listening at http://".concat(o,":").concat(s)),d.listen(s,o)}export{ne as authentication,K as cache,ae as createServer,Z as createToken,I as decrypt,_ as decryptText,G as dispatcher,L as encrypt,Y as encryptText,m as logger,re as parseToken,ue as rjson,oe as serve,d as setLogger};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "niba-api",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "An easy-to-use RESTful API development framework",
5
5
  "main": "index.js",
6
6
  "type": "module",