niba-api 0.1.0

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 -0
  2. package/package.json +51 -0
package/index.js ADDED
@@ -0,0 +1 @@
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 a from"@babel/runtime/helpers/slicedToArray";import o from"@babel/runtime/helpers/defineProperty";import u from"@babel/runtime/regenerator";import{promisify as i}from"node:util";import{createDecipheriv as c,scrypt as s}from"node:crypto";import f from"cacache";import p from"path";import l from"os";var b=console;var v=b;function d(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 h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?d(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function m(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 y(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 y(e,r)}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}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 o,u=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return u=e.done,e},e:function(e){i=!0,o=e},f:function(){try{u||null==t.return||t.return()}finally{if(i)throw o}}}}function y(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 g=/\((.*?)\)/g,x=/(\(\?)?:\w+/g,w=/\*\w+/g,k=/[\-{}\[\]+?.,\\\^$|#\s]/g;function O(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 j(e,r){var t,n=m(e);try{var a,u=function(){var e=t.value,n=function(e){var r=e.replace(k,"\\$&").replace(g,"(?:$1)?").replace(x,(function(e,r){return r?e:"([^/?]+)"})).replace(w,"([^?]*?)");return new RegExp("^"+r+"(?:\\?([\\s\\S]*))?$")}(e.path);if(!n.test(r))return 0;var a={},u=e.path.match(x);if(!u)return{v:{route:e,patterns:a}};var i=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 u.forEach((function(e,r){Object.assign(a,o({},e.slice(1),O(i[r])))})),{v:{route:e,patterns:a}}};for(n.s();!(t=n.n()).done;)if(0!==(a=u())&&a)return a.v}catch(e){n.e(e)}finally{n.f()}return null}function A(e,r){var t={},n={};r instanceof Array?r.forEach((function(e){Object.assign(n,o({},e,e))})):Object.assign(n,r);for(var u=0,i=Object.entries(e);u<i.length;u++)for(var c=a(i[u],2),s=c[0],f=O(c[1]),p=0,l=Object.entries(n);p<l.length;p++){var b=a(l[p],2),v=b[0];s===b[1]&&Object.assign(t,o({},v,f));break}return t}var S="aes-192-cbc",P="bmliYW5pYmFsYW5uaWJhIQ==",q="bmliYW5pYmFjaG91bmliYQ==";function C(e,r){return E.apply(this,arguments)}function E(){return(E=n(u.mark((function e(r,t){var n,a,o,f,p;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i(s)(t,P,24);case 2:return n=e.sent,a=Buffer.from(q,"base64"),o=c(S,n,a),f=o.update(r),p=o.final(),e.abrupt("return",Buffer.concat([f,p]));case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var I=p.resolve(l.tmpdir(),"mavis_cache");function D(e){return L.apply(this,arguments)}function L(){return(L=n(u.mark((function e(r){var t,n;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.get(I,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)}var T="eD300Ezu9r4Q3CPM7XQt-Q";function U(e){return Y.apply(this,arguments)}function Y(){return(Y=n(u.mark((function e(r){var t,n,o,i,c,s,f,p,l,b,v,d;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.token,n=r.key,o=void 0===n?T:n,i=Buffer.from(t,"base64url"),e.next=4,C(i,o);case 4:if(c=e.sent,s=c.subarray(0,c.length-16).toString("utf8"),!(parseInt(s.slice(0,13))<(new Date).getTime())){e.next=9;break}return e.abrupt("return",null);case 9:return f=s.slice(13).split("<=>"),p=a(f,3),l=p[0],b=p[1],v=p[2],e.next=12,D("".concat(l,"@").concat(b));case 12:if(d=e.sent,!(parseInt(v)<parseInt(d))){e.next=15;break}return e.abrupt("return",null);case 15:return e.abrupt("return",{uid:l,device:b});case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $(a){var i=a.routes,c=void 0===i?[]:i,s=a.hostname,f=void 0===s?"localhost":s,p=a.port,l=void 0===p?9090:p,d=a.userGetter,m=void 0===d?null:d,y=a.aclGetter,g=void 0===y?null:y,x=a.tokenKey,w=void 0===x?null:x,k=a.logger,O=void 0===k?null:k;O&&(b=O);var S=new e;S.use(r({enableTypes:["json","form","text"]})),S.use(function(e){var r=e.getUser,t=e.getACL,a=e.tokenKey;return function(){var e=n(u.mark((function e(n,o){var i,c,s,f,p,l,b,d,h;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i=null)||(s=null===(c=n.headers)||void 0===c?void 0:c.authorization,i=null==s?void 0:s.substring(7).trim()),i||(i=null===(f=n.query)||void 0===f?void 0:f.token),v.debug("--\x3e token: %s",i),i){e.next=8;break}return e.next=7,o();case 7:return e.abrupt("return");case 8:return e.prev=8,e.next=11,U({token:i,key:null!=a?a:void 0});case 11:if(p=e.sent,l=p.uid,b=p.device,v.debug("uid: %s, device: %s",l,b),!r||"function"!=typeof r){e.next=20;break}return e.next=18,r({uid:l,device:b});case 18:d=e.sent,n.state.USER=d;case 20:if(!t||"function"!=typeof t){e.next=25;break}return e.next=23,t({uid:l,device:b});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,o();case 32:case"end":return e.stop()}}),e,null,[[8,27]])})));return function(r,t){return e.apply(this,arguments)}}()}({getUser:m,getACL:g,tokenKey:w})),S.use(function(e){return function(){var r=n(u.mark((function r(n,a){var i,c,s,f,p,l,b,d,m,y;return u.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(c=n.path,s=j(e,c)){r.next=4;break}return r.abrupt("return");case 4:if(f=s.route,p=s.patterns,v.debug("route %o, patterns: %o",f,p),"string"!=typeof f.method||n.method.toLowerCase()===f.method.toLowerCase()){r.next=9;break}return n.throw(405),r.abrupt("return");case 9:if(l=f.handler,v.debug("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(b=n.state.USER,!f.auth||b){r.next=18;break}return n.throw(401),r.abrupt("return");case 18:if(d=null!==(i=n.state.ACL)&&void 0!==i?i:[],"string"!=typeof f.auth||d.includes(f.auth)){r.next=22;break}return n.throw(403),r.abrupt("return");case 22:return m=h(h({request:n.request,response:n.response},p),{},{_user:b}),"string"==typeof f.body&&Object.assign(m,o({},f.body,n.request.body)),f.header&&Object.assign(m,A(n.request.header,f.header)),f.query&&Object.assign(m,A(n.request.query,f.query)),r.next=28,l(m);case 28:return y=r.sent,n.body=null!=y?y:null,r.next=32,a();case 32:case"end":return r.stop()}}),r)})));return function(e,t){return r.apply(this,arguments)}}()}(c)),S.use(function(){var e=n(u.mark((function e(r,t){var n;return u.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)}}()),v.info("--\x3e niba is listening at http://".concat(f,":").concat(l)),S.listen(l,f)}export{$ as serve};
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "niba-api",
3
+ "version": "0.1.0",
4
+ "description": "An easy-to-use RESTful API development framework",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "directories": {
8
+ "doc": "docs"
9
+ },
10
+ "keywords": [
11
+ "RESTful",
12
+ "web api"
13
+ ],
14
+ "scripts": {
15
+ "test": "jest",
16
+ "build": "rollup -c",
17
+ "start": "rollup -c -w"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git@github.com:yuanshoujing/niba-api.git"
22
+ },
23
+ "author": "袁首京 <yuanshoujing@gmail.com>",
24
+ "license": "Apache-2.0",
25
+ "devDependencies": {
26
+ "@babel/core": "^7.23.5",
27
+ "@babel/plugin-transform-runtime": "^7.23.4",
28
+ "@babel/preset-env": "^7.23.5",
29
+ "@jest/globals": "^29.7.0",
30
+ "@rollup/plugin-babel": "^6.0.4",
31
+ "@rollup/plugin-commonjs": "^25.0.7",
32
+ "@rollup/plugin-json": "^6.0.1",
33
+ "@rollup/plugin-node-resolve": "^15.2.3",
34
+ "@rollup/plugin-run": "^3.0.2",
35
+ "@rollup/plugin-terser": "^0.4.4",
36
+ "babel-jest": "^29.7.0",
37
+ "eslint": "^8.54.0",
38
+ "jest": "^29.7.0",
39
+ "rollup": "^4.6.0",
40
+ "rollup-plugin-copy": "^3.5.0",
41
+ "rollup-plugin-delete": "^2.0.0",
42
+ "winston": "^3.11.0",
43
+ "winston-daily-rotate-file": "^4.7.1"
44
+ },
45
+ "dependencies": {
46
+ "@babel/runtime": "^7.23.5",
47
+ "cacache": "^17.1.4",
48
+ "koa": "^2.14.2",
49
+ "koa-bodyparser": "^4.4.1"
50
+ }
51
+ }