@xmono/server 1.0.5 → 1.0.6

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/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{createAuthMiddleware:()=>g,createFileController:()=>O,createModelController:()=>P,createStaticMiddleware:()=>p,jwtSign:()=>x,parseQuery:()=>E,server:()=>v});const r=require("fs");var o=e.n(r);const s=require("path");var n=e.n(s);const a=require("koa");var i=e.n(a);const c=require("@koa/send"),l=require("@koa/bodyparser"),d=require("@xmono/db"),u=require("koa-range");var y=e.n(u);const p=({publicPath:e,root:t})=>(e=e.replace(/\/*$/,"/").replace(/^\/*/,"/"),async(r,o)=>{if(r.path.startsWith(e)&&["HEAD","GET"].includes(r.method)){let s=decodeURIComponent(r.path.replace(e,""));try{await(0,c.send)(r,s,{root:t})}catch{await o()}}else await o()}),f=require("@koa/router");var b=e.n(f);const h=require("koa-jwt");var m=e.n(h);const g=e=>{const t=m()({secret:e.secret,getToken:e=>e.header.authorization||e.query.token});return e.unless?t.unless({path:e.unless}):t},q=new(b()),w=async(e,t)=>t().catch(t=>{let r=500,o="";"string"==typeof t?(r=400,o=t,console.log(t)):401===t.status?(r=401,o=t.originalError?t.originalError.message:t.message):(t.status&&(r=t.status),o=t.message,console.log(t)),e.response.status=r,e.response.body=o}),S=new(i());function k(e){Array.isArray(e)||(e=[e]);const t=[];for(let r of e)"function"==typeof r.keys?r.keys().forEach(e=>{t.push(r(e).default)}):t.push(r);return t}const v={async start(e={}){const t=n().resolve("config.js");o().existsSync(t)&&Object.assign(e,require(t)),this.config=e;let{db:r,host:s,port:a=8080,public:i="dist/public",models:u,controllers:f,index:b="dist/public/index.html",middlewares:h=[]}=e;if(u&&(u=k(u)),f&&(f=k(f)),r&&(!0===r&&(r={client:"sqlite3",connection:{filename:n().resolve("data.db")}}),await d.DBUtil.init(r,u)),S.use(w),S.use((0,l.bodyParser)({parsedMethods:["PUT","POST","DELETE"]})),S.use((e=>{if(e){const{auth:t}=v.config;t&&q.use(g(t));for(let t of e)for(let e in t){const r=e.split(" ");if(2!==r.length)throw"controller key error: "+e;{const[o,s]=r;if(!["get","post","put","delete"].includes(o))throw"controller method error: "+o;q[o]("/api"+s,t[e])}}}return q.routes()})(f)),i)if(S.use(y()),Array.isArray(i))for(let e of i)S.use(p(e));else"string"==typeof i&&(i=[{publicPath:"/",root:i,index:b}]),S.use(p(i));for(let e of h)S.use(e);return b&&S.use(async e=>await(0,c.send)(e,b)),new Promise(e=>{const t=S.listen(a,s,()=>{const r=t.address();console.log(`server listen on [${r.address}]:${r.port}`),e(t)})})}},$=require("jsonwebtoken");var j=e.n($);const x=(e,t,r)=>j().sign(e,t,{expiresIn:r}),E=e=>{let t=null,r=null,o=null,s=null,n=null;for(let a in e)switch(a){case"fields":r=e[a].split(",");break;case"sort":{o=o||[];const t=e[a].split(",");for(let e=0;e<t.length;e+=2)o.push({column:t[e],order:t[e+1]});break}case"size":case"page":s=s||{},s[a]=e[a]-0;break;case"search":n=e[a];break;default:{let r=decodeURIComponent(e[a]);a.startsWith("!")?(a=a.substring(1),r=["!=",r]):a.startsWith("*")&&(a=a.substring(1),r=["like",`%${r}%`]),r&&(t=t||{},t[a]=r)}}return{condition:{where:t},options:{fields:r,sort:o,pager:s},search:n}},P=e=>{const t=e.key||"id",r=e.table;async function o(t){const{condition:r,options:o,search:s}=E(t.query);if(s){const t=[];e.columns.forEach(e=>{e.matchSearch&&t.push({[e.name]:["like",`%${s}%`]})}),t.length&&(r.orWhere=t)}let n=await e.find(r,o);t.callback&&(n=t.callback(n)),o.pager?t.body={data:n,pager:o.pager}:t.body=n}async function s(r){const{options:o}=E(r.query);let s=await e.findById(r.params[t],o.fields);r.body=r.callback?r.callback(s):s}async function n(t){t.body=await e.save(t.request.body)}async function a(r){r.body=await e.deleteById(r.request.body[t])}async function i(r){r.body=await e.updateById(r.params[t],r.request.body)}return o.req=`get /${r}`,s.req=`get /${r}/:${t}`,n.req=`post /${r}`,i.req=`put /${r}/:${t}`,a.req=`delete /${r}`,{all:function(){return{[o.req]:o,[s.req]:s,[n.req]:n,[i.req]:i,[a.req]:a}},list:o,get:s,post:n,put:i,delete:a}},A=require("@koa/multer");var F=e.n(A);const O=(e={})=>{const{prefix:t="/files",getFullPath:r=e=>e}=e,s=F()({storage:{_handleFile(e,t,s){let a=r(e.body.path),{hash:i,index:c,name:l}=e.body;i&&(a=n().join(a,i)),a=void 0!==c?n().join(a,c):n().join(a,l);const d=n().dirname(a);o().existsSync(d)||o().mkdirSync(d,{recursive:!0});const u=o().createWriteStream(a);t.stream.pipe(u),u.on("finish",()=>{s(null,{path:a,size:u.bytesWritten})}),e.on("aborted",()=>{t.stream.on("end",()=>{o().rmSync(a,{recursive:!0,force:!0})}),t.stream.emit("end")})},_removeFile(e,t,r){o().remove(t.path,r)}}});return{[`get ${t}/{*path}`]:async e=>{const t=r(e.params.path);if(o().existsSync(t))return await(0,c.send)(e,n().basename(t),{root:n().dirname(t)});throw"无效路径"},[`post ${t}/readdir`]:async e=>{const t=r(e.request.body.path),s=e.request.body.fields||[],a=[];o().existsSync(t)&&o().readdirSync(t).forEach(e=>{let r={name:e};const i=o().statSync(n().join(t,e));if(i.isDirectory())r.dir=1;else for(let e of s)r[e]=i[e];a.push(r)}),e.body=a},[`post ${t}/readfile`]:async e=>{const t=r(e.request.body.path);if(!o().existsSync(t))throw"无效路径";await(0,c.send)(e,n().basename(t),{root:n().dirname(t)})},[`post ${t}/remove`]:async e=>{let{path:t}=e.request.body;Array.isArray(t)||(t=[t]),t.forEach(e=>{o().rmSync(r(e),{recursive:!0,force:!0})}),e.body=""},[`post ${t}/upload`]:async(e,t)=>{const r=s.single("file");await r(e,t),e.body=""},[`post ${t}/mkdir`]:async e=>{const t=r(e.request.body.path);o().mkdirSync(t),e.body=""},[`post ${t}/writefile`]:async e=>{const{content:t,path:s}=e.request.body,n=r(s);o().writeFileSync(n,t),e.body=""},[`post ${t}/rename`]:async e=>{let{from:t,to:s}=e.request.body;const n=r(t),a=r(s);o().renameSync(n,a),e.body=""},[`post ${t}/copy`]:async e=>{let{from:t,to:s}=e.request.body;const n=r(t),a=r(s);o().copySync(n,a,{overwrite:!1,errorOnExist:!0}),e.body=""},[`post ${t}/merge`]:async e=>{const{total:t,hash:s,name:a}=e.request.body,i=r(e.request.body.path),c=n().join(i,s),l=n().join(i,a);o().writeFileSync(l,"");for(let e=0;e<t;e++)o().appendFileSync(l,o().readFileSync(c+"/"+e));o().rmSync(c,{recursive:!0,force:!0}),e.body=""}}};module.exports=t})();
1
+ (()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{createAuthMiddleware:()=>g,createFileController:()=>F,createModelController:()=>P,createStaticMiddleware:()=>p,jwtSign:()=>x,parseQuery:()=>E,server:()=>S});const r=require("fs");var o=e.n(r);const s=require("path");var n=e.n(s);const a=require("koa");var i=e.n(a);const c=require("@koa/send"),l=require("@koa/bodyparser"),d=require("@xmono/db"),u=require("koa-range");var y=e.n(u);const p=({publicPath:e,root:t})=>(e=e.replace(/\/*$/,"/").replace(/^\/*/,"/"),async(r,o)=>{if(r.path.startsWith(e)&&["HEAD","GET"].includes(r.method)){let s=decodeURIComponent(r.path.replace(e,""));try{await(0,c.send)(r,s,{root:t})}catch{await o()}}else await o()}),f=require("@koa/router");var b=e.n(f);const h=require("koa-jwt");var m=e.n(h);const g=e=>{const t=m()({secret:e.secret,getToken:e=>e.header.authorization||e.query.token});return e.unless?t.unless({path:e.unless}):t},$=new(b()),w=async(e,t)=>t().catch(t=>{let r=500,o="";"string"==typeof t?(r=400,o=t,console.log(t)):401===t.status?(r=401,o=t.originalError?t.originalError.message:t.message):(t.status&&(r=t.status),o=t.message,console.log(t)),e.response.status=r,e.response.body=o}),k=new(i());function q(e){Array.isArray(e)||(e=[e]);const t=[];for(let r of e)"function"==typeof r.keys?r.keys().forEach(e=>{t.push(r(e).default)}):t.push(r);return t}const S={async start(e={}){const t=n().resolve("config.js");o().existsSync(t)&&Object.assign(e,require(t)),this.config=e;let{db:r,host:s,port:a=8080,public:i="dist/public",models:u,controllers:f,index:b="dist/public/index.html",middlewares:h=[]}=e;if(u&&(u=q(u)),f&&(f=q(f)),r&&(!0===r&&(r={client:"sqlite3",connection:{filename:n().resolve("data.db")}}),await d.DBUtil.init(r,u)),k.use(w),k.use((0,l.bodyParser)({parsedMethods:["PUT","POST","DELETE"]})),k.use((e=>{if(e){const{auth:t}=S.config;t&&$.use(g(t));for(let t of e)for(let e in t){const r=e.split(" ");if(2!==r.length)throw"controller key error: "+e;{const[o,s]=r;if(!["get","post","put","delete"].includes(o))throw"controller method error: "+o;$[o]("/api"+s,t[e])}}}return $.routes()})(f)),i)if(k.use(y()),Array.isArray(i))for(let e of i)k.use(p(e));else"string"==typeof i&&(i=[{publicPath:"/",root:i,index:b}]),k.use(p(i));for(let e of h)k.use(e);return b&&k.use(async e=>await(0,c.send)(e,b)),new Promise(e=>{const t=k.listen(a,s,()=>{const r=t.address();console.log(`server listen on [${r.address}]:${r.port}`),e(t)})})}},v=require("jsonwebtoken");var j=e.n(v);const x=(e,t,r)=>j().sign(e,t,{expiresIn:r}),E=e=>{let t=null,r=null,o=null,s=null,n=null;for(let a in e)switch(a){case"fields":r=e[a].split(",");break;case"sort":{o=o||[];const t=e[a].split(",");for(let e=0;e<t.length;e+=2)o.push({column:t[e],order:t[e+1]});break}case"size":case"page":s=s||{},s[a]=e[a]-0;break;case"search":n=e[a];break;default:{let r=decodeURIComponent(e[a]);a.startsWith("!")?(a=a.substring(1),r=["!=",r]):a.startsWith("*")&&(a=a.substring(1),r=["like",`%${r}%`]),r&&(t=t||{},t[a]=r)}}return{condition:{where:t},options:{fields:r,sort:o,pager:s},search:n}},P=(e,t,r)=>{const o=e.key||"id",s=e.table,n={$list:`get /${s}`,$get:`get /${s}/:${o}`,$post:`post /${s}`,$put:`put /${s}/:${o}`,$delete:`delete /${s}`};async function a(t){const{condition:r,options:o,search:s}=E(t.query);if(s){const t=[];e.columns.forEach(e=>{e.matchSearch&&t.push({[e.name]:["like",`%${s}%`]})}),t.length&&(r.orWhere=t)}let n=await e.find(r,o);t.callback&&(n=t.callback(n)),o.pager?t.body={data:n,pager:o.pager}:t.body=n}async function i(t){const{options:r}=E(t.query);let s=await e.findById(t.params[o],r.fields);t.body=t.callback?t.callback(s):s}async function c(t){t.body=await e.save(t.request.body)}async function l(t){t.body=await e.deleteById(t.request.body[o])}async function d(t){t.body=await e.updateById(t.params[o],t.request.body)}let u={},y={};if(t&&"object"!=typeof t&&"function"!=typeof t){Array.isArray(t)||(t=[t]);for(let e of t)switch(e){case"list":y[n.$list]=a;break;case"get":y[n.$get]=i;break;case"post":y[n.$post]=c;break;case"put":y[n.$put]=d;break;case"delete":y[n.$delete]=l}}else y={[n.$list]:a,[n.$get]:i,[n.$post]:c,[n.$put]:d,[n.$delete]:l},r=t;if(r){"function"==typeof r&&(r=r({list:a,get:i,put:d,post:c,delete:l}));for(let e in r){const t=r[e];n[e]?y[n[e]]=t:u[e]=t}}return Object.assign(u,y),u},A=require("@koa/multer");var O=e.n(A);const F=(e={})=>{const{prefix:t="/files",getFullPath:r=e=>e}=e,s=O()({storage:{_handleFile(e,t,s){let a=r(e.body.path),{hash:i,index:c,name:l}=e.body;i&&(a=n().join(a,i)),a=void 0!==c?n().join(a,c):n().join(a,l);const d=n().dirname(a);o().existsSync(d)||o().mkdirSync(d,{recursive:!0});const u=o().createWriteStream(a);t.stream.pipe(u),u.on("finish",()=>{s(null,{path:a,size:u.bytesWritten})}),e.on("aborted",()=>{t.stream.on("end",()=>{o().rmSync(a,{recursive:!0,force:!0})}),t.stream.emit("end")})},_removeFile(e,t,r){o().remove(t.path,r)}}});return{[`get ${t}/{*path}`]:async e=>{const t=r(e.params.path);if(o().existsSync(t))return await(0,c.send)(e,n().basename(t),{root:n().dirname(t)});throw"无效路径"},[`post ${t}/readdir`]:async e=>{const t=r(e.request.body.path),s=e.request.body.fields||[],a=[];o().existsSync(t)&&o().readdirSync(t).forEach(e=>{let r={name:e};const i=o().statSync(n().join(t,e));if(i.isDirectory())r.dir=1;else for(let e of s)r[e]=i[e];a.push(r)}),e.body=a},[`post ${t}/readfile`]:async e=>{const t=r(e.request.body.path);if(!o().existsSync(t))throw"无效路径";await(0,c.send)(e,n().basename(t),{root:n().dirname(t)})},[`post ${t}/remove`]:async e=>{let{path:t}=e.request.body;Array.isArray(t)||(t=[t]),t.forEach(e=>{o().rmSync(r(e),{recursive:!0,force:!0})}),e.body=""},[`post ${t}/upload`]:async(e,t)=>{const r=s.single("file");await r(e,t),e.body=""},[`post ${t}/mkdir`]:async e=>{const t=r(e.request.body.path);o().mkdirSync(t),e.body=""},[`post ${t}/writefile`]:async e=>{const{content:t,path:s}=e.request.body,n=r(s);o().writeFileSync(n,t),e.body=""},[`post ${t}/rename`]:async e=>{let{from:t,to:s}=e.request.body;const n=r(t),a=r(s);o().renameSync(n,a),e.body=""},[`post ${t}/copy`]:async e=>{let{from:t,to:s}=e.request.body;const n=r(t),a=r(s);o().copySync(n,a,{overwrite:!1,errorOnExist:!0}),e.body=""},[`post ${t}/merge`]:async e=>{const{total:t,hash:s,name:a}=e.request.body,i=r(e.request.body.path),c=n().join(i,s),l=n().join(i,a);o().writeFileSync(l,"");for(let e=0;e<t;e++)o().appendFileSync(l,o().readFileSync(c+"/"+e));o().rmSync(c,{recursive:!0,force:!0}),e.body=""}}};module.exports=t})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmono/server",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "author": "wangxing",
5
5
  "description": "",
6
6
  "license": "MIT",