mas-server 1.0.3 → 2.0.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 (153) hide show
  1. package/.temp/a.ts +4 -0
  2. package/.temp/as.ts +1 -0
  3. package/.temp/b.ts +3 -0
  4. package/{src/index.js → .temp/i.js} +3 -3
  5. package/.temp/test.ts +2 -0
  6. package/.temp/validType copy.ts +149 -0
  7. package/.temp/validType.ts +96 -0
  8. package/.temp/validTypeOptimize.ts +98 -0
  9. package/.vscode/settings.json +0 -109
  10. package/dist/index.js +136 -0
  11. package/dist/masmysql/checkSqlkey.js +67 -0
  12. package/dist/masmysql/createSqlForm.js +44 -0
  13. package/dist/masmysql/esaysql.js +53 -0
  14. package/dist/masmysql/index.js +111 -0
  15. package/dist/masmysql/masSql.js +741 -0
  16. package/dist/masmysql/state.js +5 -0
  17. package/dist/masmysql/type.js +2 -0
  18. package/dist/masmysql/utils.js +12 -0
  19. package/dist/state.js +4 -0
  20. package/dist/typings/index.js +2 -0
  21. package/dist/utils/apiDoc.js +18 -0
  22. package/dist/utils/getLog.js +18 -0
  23. package/dist/utils/getRouteByApiSrc.js +54 -0
  24. package/dist/utils/masUtils.js +12 -0
  25. package/dist/utils/meaToken.js +57 -0
  26. package/dist/utils/quickSend.js +32 -0
  27. package/dist/utils/readApi.js +50 -0
  28. package/dist/utils/validRouteData.js +37 -0
  29. package/dist/utils/validToken.js +24 -0
  30. package/dist/utils/validType.js +101 -0
  31. package/package.json +34 -15
  32. package/src/apiDoc/assets/empty-907982e4.js +1 -0
  33. package/src/apiDoc/assets/index-b56e6bc6.js +1414 -0
  34. package/src/apiDoc/assets/index-bb16d834.css +6 -0
  35. package/src/{public/doc/img/jsoneditor-icons.256e3abc.svg → apiDoc/assets/jsoneditor-icons-45c98bf0.svg} +213 -357
  36. package/src/apiDoc/favicon.ico +0 -0
  37. package/src/apiDoc/index.html +15 -0
  38. package/src/index.ts +132 -0
  39. package/src/masmysql/checkSqlkey.ts +55 -0
  40. package/src/masmysql/createSqlForm.ts +37 -0
  41. package/src/masmysql/esaysql.ts +44 -0
  42. package/src/masmysql/index.ts +68 -0
  43. package/src/masmysql/masSql.ts +736 -0
  44. package/src/masmysql/state.ts +5 -0
  45. package/src/masmysql/type.ts +34 -0
  46. package/src/masmysql/utils.ts +8 -0
  47. package/src/state.ts +1 -0
  48. package/src/typings/index.ts +114 -0
  49. package/src/utils/apiDoc.ts +18 -0
  50. package/src/utils/getLog.ts +20 -0
  51. package/src/utils/getRouteByApiSrc.ts +55 -0
  52. package/src/utils/mas-encrypt.min.js +1 -0
  53. package/src/utils/masUtils.ts +8 -0
  54. package/src/utils/meaToken.ts +56 -0
  55. package/src/utils/quickSend.ts +19 -0
  56. package/src/utils/readApi.ts +30 -0
  57. package/src/utils/validRouteData.ts +46 -0
  58. package/src/utils/validToken.ts +22 -0
  59. package/src/utils/validType.ts +98 -0
  60. package/test/apiTemplate/api.temp.ts +6 -0
  61. package/test/apiTemplate/curd/del.ts +9 -0
  62. package/test/apiTemplate/curd/get.ts +9 -0
  63. package/test/apiTemplate/curd/set.ts +9 -0
  64. package/test/config/api.config.ts +3 -0
  65. package/test/config/api.key.ts +14 -0
  66. package/test/config/config.ts +30 -0
  67. package/test/config/createSqlFormData.ts +14 -0
  68. package/test/logs/.keep +0 -0
  69. package/test/main.ts +25 -0
  70. package/test/scripts/beforeCreated.ts +67 -0
  71. package/test/scripts/createApiFile.ts +27 -0
  72. package/test/scripts/createApis.ts +109 -0
  73. package/test/scripts/createSqlForm.ts +5 -0
  74. package/test/scripts/getSqlFormType.ts +34 -0
  75. package/test/scripts/run.ts +4 -0
  76. package/test/scripts/updateRouter.ts +46 -0
  77. package/test/src/api/curd/student/del.ts +9 -0
  78. package/test/src/api/curd/student/get.ts +9 -0
  79. package/test/src/api/curd/student/set.ts +9 -0
  80. package/test/src/api/index.ts +4 -0
  81. package/test/src/api/per.ts +6 -0
  82. package/test/src/api/person/del.ts +4 -0
  83. package/test/src/api/person/get.ts +4 -0
  84. package/test/src/api/person/set.ts +4 -0
  85. package/test/src/api/test.ts +7 -0
  86. package/test/src/api/validtest/boolArr.ts +4 -0
  87. package/test/src/debug.ts +56 -0
  88. package/test/src/masState.ts +4 -0
  89. package/test/src/sql/selectStudent.ts +7 -0
  90. package/test/src/sqlform.json +1 -0
  91. package/test/test.ts +13 -0
  92. package/test/typings/.keep +0 -0
  93. package/test/typings/studentSF.ts +6 -0
  94. package/test/typings/test11SF.ts +1 -0
  95. package/test/typings/test22SF.ts +1 -0
  96. package/test/typings/testformSF.ts +1 -0
  97. package/test//345/276/205/345/274/200/345/217/221.md +12 -0
  98. package/tsconfig.json +23 -0
  99. package/tsconfigschema.json +1263 -0
  100. package/src/config/api.res.json +0 -1
  101. package/src/config/api.tree.json +0 -1
  102. package/src/config/apiModules/del.module +0 -6
  103. package/src/config/apiModules/get.module +0 -6
  104. package/src/config/apiModules/set.module +0 -6
  105. package/src/config/config.schema.js +0 -41
  106. package/src/public/doc/css/app.722f60c4.css +0 -1
  107. package/src/public/doc/css/chunk-287b9965.80548a4b.css +0 -1
  108. package/src/public/doc/css/chunk-vendors.a16c4353.css +0 -1
  109. package/src/public/doc/favicon.ico +0 -0
  110. package/src/public/doc/fonts/element-icons.535877f5.woff +0 -0
  111. package/src/public/doc/fonts/element-icons.732389de.ttf +0 -0
  112. package/src/public/doc/index.html +0 -1
  113. package/src/public/doc/js/app.9ce10690.js +0 -2
  114. package/src/public/doc/js/app.9ce10690.js.map +0 -1
  115. package/src/public/doc/js/chunk-287b9965.77cfd27f.js +0 -32
  116. package/src/public/doc/js/chunk-287b9965.77cfd27f.js.map +0 -1
  117. package/src/public/doc/js/chunk-vendors.7c84e9a7.js +0 -35
  118. package/src/public/doc/js/chunk-vendors.7c84e9a7.js.map +0 -1
  119. package/src/public/index.html +0 -15
  120. package/src/state.js +0 -6
  121. package/src/utils/DataVerified.js +0 -35
  122. package/src/utils/beforeCreate.js +0 -19
  123. package/src/utils/createApi.js +0 -34
  124. package/src/utils/createApiFile.js +0 -40
  125. package/src/utils/createSqlForm.js +0 -7
  126. package/src/utils/encrypt.js +0 -1
  127. package/src/utils/getDir.js +0 -60
  128. package/src/utils/logs.js +0 -16
  129. package/src/utils/masDoc.js +0 -37
  130. package/src/utils/masRoute.js +0 -29
  131. package/src/utils/quickSend.js +0 -18
  132. package/src/utils/token.js +0 -57
  133. package/test/.utils/api.js +0 -4
  134. package/test/.utils/apis.js +0 -5
  135. package/test/.utils/beforeIndex.js +0 -4
  136. package/test/.utils/createForm.js +0 -4
  137. package/test/config/api.config.json +0 -7
  138. package/test/config/api.config.k.json +0 -1
  139. package/test/config/config.js +0 -22
  140. package/test/config/sqlform.config.js +0 -23
  141. package/test/index.js +0 -12
  142. package/test/public/1.txt +0 -1
  143. package/test/serverLogs/2022-10-29.log +0 -6
  144. package/test/serverLogs/2022-10-30.log +0 -58
  145. package/test/src/$form.js +0 -1
  146. package/test/src/api/index.js +0 -3
  147. package/test/src/api/test.js +0 -9
  148. package/test/src/api/vip/del.js +0 -6
  149. package/test/src/api/vip/get.js +0 -6
  150. package/test/src/api/vip/set.js +0 -6
  151. package/test/src/api/vip666.js +0 -4
  152. package/test/src/debug.js +0 -2
  153. /package/{old → .temp/logs/.keep} +0 -0
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-cn">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
- <title>mas-server</title>
9
- </head>
10
-
11
- <body>
12
- <h1>hello!mas-server</h1>
13
- </body>
14
-
15
- </html>
package/src/state.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- state: {
3
- config: null,
4
- dirname: null
5
- }
6
- };
@@ -1,35 +0,0 @@
1
- const state = require('../state');
2
- const config = state.config;
3
- let apiCofig = require(state.dirname + '/config/api.config.json');
4
- module.exports = (req, res, next) => {
5
- let checkData = [];
6
- let bodyArr = [];
7
- let right = true;
8
-
9
- if (apiCofig[req.url] && apiCofig[req.url].checkData) {
10
- checkData = apiCofig[req.url].checkData;
11
- checkData = checkData.filter((item) =>
12
- !(item instanceof Object) || (item instanceof Object && !item.optional)
13
- ).map(item =>
14
- item instanceof Object ? item.name : item
15
- );
16
- bodyArr = Object.keys(req.body).filter(item => {
17
- if (checkData.indexOf(item) == -1) {
18
- return false;
19
- } else if ((req.body[item] + '').replace(/\s+/g, "") == "") {
20
- return false;
21
- } else return true;
22
-
23
- });
24
-
25
- if (bodyArr.length != checkData.length && checkData.length != 0) {
26
- res.return('请求数据格式错误!', 0, 400);
27
- right = false;
28
- }
29
- }
30
- req.data = JSON.parse(JSON.stringify(req.body));
31
- Object.keys(req.data).map(item => {
32
- if (bodyArr.indexOf(item) == -1) delete req.data[item];
33
- });
34
- if (right) next();
35
- };
@@ -1,19 +0,0 @@
1
- const state = require('../state');
2
- const masRoute = require('./masRoute');
3
- const path = require('path');
4
- const { setSqlConfig, sqlInit } = require('masmysql');
5
- module.exports = (dirname) => {
6
- const config = require(path.join(dirname, "/config", "config.js"));
7
- state.config = config;
8
- state.dirname = dirname;
9
- // 写入约定式路由
10
- masRoute();
11
- // 写入数据库文件
12
- if (config.useSql) {
13
- (async () => {
14
- setSqlConfig(config.sql);
15
- await sqlInit();
16
- })();
17
- }
18
- }
19
-
@@ -1,34 +0,0 @@
1
- const fs = require("fs");
2
- const { tip: masTip } = require("masutils");
3
-
4
- module.exports = (dirname) => {
5
- let srcArr = JSON.parse(JSON.stringify(process.argv)).slice(2);
6
- for (let v of srcArr) {
7
- let src = v.split('/');
8
- const fileModule =
9
- `module.exports = async (req, res) => {
10
- res.return('hello,masjs!');
11
- }`
12
- ;
13
- if (!src) {
14
- masTip("请传入正确参数");
15
- process.exit(1);
16
- }
17
- (async () => {
18
- const file = src.pop().replace(/\s+/g, '');
19
- src = src.join('/');
20
- const src1 = src;
21
- src = dirname + `/src/api/${src}`;
22
- let isExist = fs.existsSync(src);
23
- if (!isExist) fs.mkdirSync(src, { recursive: true });
24
- isExist = fs.existsSync(src + `/${file}.js`);
25
- if (isExist) {
26
- masTip("该接口已存在!");
27
- return;
28
- }
29
- const res = fs.writeFileSync(src + `/${file}.js`, fileModule);
30
- masTip(`创建 ${src1+ `/${file}`}`,1);
31
- })();
32
- }
33
-
34
- };
@@ -1,40 +0,0 @@
1
- const fs = require("fs");
2
-
3
- const { tip: masTip } = require("masutils");
4
-
5
-
6
- module.exports = (dirname) => {
7
- let srcArr = JSON.parse(JSON.stringify(process.argv)).slice(2);
8
- let src = srcArr[0];
9
- function copyFile(arr, dir) {
10
- const file =
11
- fs.readFileSync(__dirname + `/../config/apiModules/${arr}.module`)
12
- .toString().replace("@@form@@", srcArr[1]);
13
- fs.writeFileSync(dir, file);
14
- }
15
- if (!srcArr[1]) {
16
- masTip("请传入表名");
17
- process.exit(1);
18
- }
19
- if (!src) {
20
- masTip("请传入正确参数");
21
- process.exit(1);
22
- }
23
- (async () => {
24
- src = dirname + `/src/api/${src}`;
25
- let isExist = fs.existsSync(src);
26
- if (!isExist) fs.mkdirSync(src, { recursive: true });
27
- let status = 1;
28
- for (let v of ["get", "set", "del"]) {
29
- if (fs.existsSync(src + `/${v}.js`)) {
30
- status = 0;
31
- masTip(`${v}接口已存在无法创建`);
32
- } else {
33
- copyFile(v, src + `/${v}.js`);
34
- masTip(`${v}接口创建成功`, 1);
35
- }
36
- }
37
- status && masTip(`创建 ${srcArr[0]}接口完成`, 1);
38
- })();
39
-
40
- };
@@ -1,7 +0,0 @@
1
- const { setSqlConfig, createSqlForm } = require("masmysql");
2
- module.exports = (config, form) => {
3
- (async () => {
4
- setSqlConfig(config);
5
- createSqlForm(form);
6
- })();
7
- };
@@ -1 +0,0 @@
1
- const a6_0x20213c=a6_0x53f3;(function(_0x18fab2,_0x11632b){const _0x31751d=a6_0x53f3,_0x3aba8c=_0x18fab2();while(!![]){try{const _0x452989=-parseInt(_0x31751d(0xea))/0x1+-parseInt(_0x31751d(0xef))/0x2*(-parseInt(_0x31751d(0x107))/0x3)+-parseInt(_0x31751d(0x115))/0x4+-parseInt(_0x31751d(0xf2))/0x5+-parseInt(_0x31751d(0x108))/0x6*(parseInt(_0x31751d(0xfa))/0x7)+parseInt(_0x31751d(0x114))/0x8+-parseInt(_0x31751d(0x110))/0x9*(-parseInt(_0x31751d(0xfb))/0xa);if(_0x452989===_0x11632b)break;else _0x3aba8c['push'](_0x3aba8c['shift']());}catch(_0x3674b8){_0x3aba8c['push'](_0x3aba8c['shift']());}}}(a6_0x4dbf,0x5b7ec));const crypto=require('crypto'),Mtime=require(a6_0x20213c(0x10c));Mtime[a6_0x20213c(0xf1)](a6_0x20213c(0xf6));const algorithm=[a6_0x20213c(0xf0),a6_0x20213c(0x106),a6_0x20213c(0xeb),'aes-128-cfb8',a6_0x20213c(0xff)],_keyStr=a6_0x20213c(0xec);function isJSON(_0x3aa645){const _0x58d407=a6_0x20213c;if(typeof _0x3aa645=='string')try{return JSON[_0x58d407(0x112)](_0x3aa645),!![];}catch(_0x92ab15){return![];}else return![];}function a6_0x4dbf(){const _0x42031c=['indexOf','5414MncdJZ','aes-128-cbc','locale','3491075EEWInr','\x1b[31m%s\x1b[0m','_utf8_decode','update','zh-cn','utf8','setHours','replace','3650458dEzQBP','20jNEJie','createDecipheriv','charCodeAt','exports','aes-128-ctr','hex','final','getTimezoneOffset','decode','charAt','createCipheriv','aes-128-cfb','33iKRgCW','6IXynxU','encode','length','getTime','moment','\x1b[32m%s\x1b[0m','toFixed','fromCharCode','8223147hkNbEC','info','parse','getHours','4891248jDEIIP','2491748gymogE','random','251139dmjAGE','aes-128-cfb1','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=','slice'];a6_0x4dbf=function(){return _0x42031c;};return a6_0x4dbf();}function a6_0x53f3(_0x2827dc,_0x350d7d){const _0x4dbf99=a6_0x4dbf();return a6_0x53f3=function(_0x53f34c,_0x13a7fa){_0x53f34c=_0x53f34c-0xea;let _0x108cc6=_0x4dbf99[_0x53f34c];return _0x108cc6;},a6_0x53f3(_0x2827dc,_0x350d7d);}const randomInt=(_0x58d52c,_0x443f29)=>parseInt(Math[a6_0x20213c(0x116)]()*(_0x443f29-_0x58d52c+0x1)+_0x58d52c),randomStr=_0x39e991=>{let _0x2fdc52='';for(let _0x2b2ff5=0x0;_0x2b2ff5<_0x39e991;_0x2b2ff5++){_0x2fdc52+=_keyStr[randomInt(0x0,0x40)];}return _0x2fdc52;},randomstr=_0x1e245d=>{let _0x4f7c67='';for(let _0x1c868a=0x0;_0x1c868a<_0x1e245d;_0x1c868a++){_0x4f7c67+=_keyStr[randomInt(0x0,0x3d)];}return _0x4f7c67;};function masTip(_0x50293f,_0x4ebf2b=0x0){const _0x449139=a6_0x20213c;console[_0x449139(0x111)](!_0x4ebf2b?_0x449139(0xf3):_0x449139(0x10d),_0x50293f);}const base={'_utf8_encode'(_0x5d1822){const _0x1badb9=a6_0x20213c;_0x5d1822=_0x5d1822[_0x1badb9(0xf9)](/\r\n/g,'\x0a');var _0x3d3211='';for(var _0x1cc0c8=0x0;_0x1cc0c8<_0x5d1822[_0x1badb9(0x10a)];_0x1cc0c8++){var _0x5ec275=_0x5d1822['charCodeAt'](_0x1cc0c8);if(_0x5ec275<0x80)_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275);else _0x5ec275>0x7f&&_0x5ec275<0x800?(_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275>>0x6|0xc0),_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275&0x3f|0x80)):(_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275>>0xc|0xe0),_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275>>0x6&0x3f|0x80),_0x3d3211+=String[_0x1badb9(0x10f)](_0x5ec275&0x3f|0x80));}return _0x3d3211;},'_utf8_decode'(_0x1e1626){const _0x46f7c1=a6_0x20213c;var _0x57d990='',_0x859373=0x0,_0x1472cf=c1=c2=0x0;while(_0x859373<_0x1e1626[_0x46f7c1(0x10a)]){_0x1472cf=_0x1e1626[_0x46f7c1(0xfd)](_0x859373);if(_0x1472cf<0x80)_0x57d990+=String[_0x46f7c1(0x10f)](_0x1472cf),_0x859373++;else _0x1472cf>0xbf&&_0x1472cf<0xe0?(c2=_0x1e1626['charCodeAt'](_0x859373+0x1),_0x57d990+=String[_0x46f7c1(0x10f)]((_0x1472cf&0x1f)<<0x6|c2&0x3f),_0x859373+=0x2):(c2=_0x1e1626[_0x46f7c1(0xfd)](_0x859373+0x1),c3=_0x1e1626[_0x46f7c1(0xfd)](_0x859373+0x2),_0x57d990+=String[_0x46f7c1(0x10f)]((_0x1472cf&0xf)<<0xc|(c2&0x3f)<<0x6|c3&0x3f),_0x859373+=0x3);}return _0x57d990;},'encode'(_0x225db8){const _0x1ab469=a6_0x20213c;var _0x5a75bf='',_0xe8eb78,_0x2e5dc1,_0xae61ea,_0x1f7b8d,_0x5b4ff2,_0x307a15,_0x278b53,_0x33139c=0x0;_0x225db8=this['_utf8_encode'](_0x225db8);while(_0x33139c<_0x225db8['length']){_0xe8eb78=_0x225db8[_0x1ab469(0xfd)](_0x33139c++),_0x2e5dc1=_0x225db8[_0x1ab469(0xfd)](_0x33139c++),_0xae61ea=_0x225db8[_0x1ab469(0xfd)](_0x33139c++),_0x1f7b8d=_0xe8eb78>>0x2,_0x5b4ff2=(_0xe8eb78&0x3)<<0x4|_0x2e5dc1>>0x4,_0x307a15=(_0x2e5dc1&0xf)<<0x2|_0xae61ea>>0x6,_0x278b53=_0xae61ea&0x3f;if(isNaN(_0x2e5dc1))_0x307a15=_0x278b53=0x40;else isNaN(_0xae61ea)&&(_0x278b53=0x40);_0x5a75bf=_0x5a75bf+_keyStr['charAt'](_0x1f7b8d)+_keyStr[_0x1ab469(0x104)](_0x5b4ff2)+_keyStr[_0x1ab469(0x104)](_0x307a15)+_keyStr['charAt'](_0x278b53);}return _0x5a75bf;},'decode'(_0x4a6d74){const _0xb7f8ed=a6_0x20213c;var _0x4dcb49='',_0x2829a3,_0x5d8dd5,_0x52996c,_0x19319f,_0xb1fb7e,_0x2eb581,_0x280e70,_0x432786=0x0;_0x4a6d74=_0x4a6d74[_0xb7f8ed(0xf9)](/[^A-Za-z0-9\+\/\=]/g,'');while(_0x432786<_0x4a6d74[_0xb7f8ed(0x10a)]){_0x19319f=_keyStr[_0xb7f8ed(0xee)](_0x4a6d74['charAt'](_0x432786++)),_0xb1fb7e=_keyStr[_0xb7f8ed(0xee)](_0x4a6d74[_0xb7f8ed(0x104)](_0x432786++)),_0x2eb581=_keyStr[_0xb7f8ed(0xee)](_0x4a6d74['charAt'](_0x432786++)),_0x280e70=_keyStr[_0xb7f8ed(0xee)](_0x4a6d74[_0xb7f8ed(0x104)](_0x432786++)),_0x2829a3=_0x19319f<<0x2|_0xb1fb7e>>0x4,_0x5d8dd5=(_0xb1fb7e&0xf)<<0x4|_0x2eb581>>0x2,_0x52996c=(_0x2eb581&0x3)<<0x6|_0x280e70,_0x4dcb49=_0x4dcb49+String[_0xb7f8ed(0x10f)](_0x2829a3),_0x2eb581!=0x40&&(_0x4dcb49=_0x4dcb49+String['fromCharCode'](_0x5d8dd5)),_0x280e70!=0x40&&(_0x4dcb49=_0x4dcb49+String[_0xb7f8ed(0x10f)](_0x52996c));}return _0x4dcb49=this[_0xb7f8ed(0xf4)](_0x4dcb49),_0x4dcb49;}};function cipher(_0x16acbe,_0x3350c2,_0x350d68){const _0xda86f9=a6_0x20213c,_0x2cbe99=randomStr(0x8),_0x4612e1=randomStr(0x8);try{const _0x39ce98=crypto[_0xda86f9(0x105)](algorithm[_0x350d68],_0x3350c2,_0x2cbe99+_0x4612e1);return _0x2cbe99+_0x39ce98[_0xda86f9(0xf5)](_0x16acbe,_0xda86f9(0xf7),_0xda86f9(0x100))+_0x39ce98['final'](_0xda86f9(0x100))+_0x4612e1;}catch(_0x365c43){return undefined;}}function decipher(_0x1f9a0a,_0x4251cb,_0x40de0c){const _0x51019d=a6_0x20213c,_0x2b5521=_0x1f9a0a[_0x51019d(0xed)](0x0,0x8),_0x3bffc7=_0x1f9a0a[_0x51019d(0xed)](_0x1f9a0a[_0x51019d(0x10a)]-0x8,_0x1f9a0a[_0x51019d(0x10a)]);_0x1f9a0a=_0x1f9a0a['slice'](0x8,_0x1f9a0a[_0x51019d(0x10a)]-0x8);try{const _0x2d1d9e=crypto[_0x51019d(0xfc)](algorithm[_0x40de0c],_0x4251cb,_0x2b5521+_0x3bffc7);return _0x2d1d9e[_0x51019d(0xf5)](_0x1f9a0a,'hex',_0x51019d(0xf7))+_0x2d1d9e[_0x51019d(0x101)](_0x51019d(0xf7));}catch(_0x1cba73){return undefined;}}function getTimestamp(){const _0x287d26=a6_0x20213c;return(new Date()[_0x287d26(0x10b)]()/0x3e8)[_0x287d26(0x10e)](0x0)*0x3e8;}function getTime(){const _0x292c2f=a6_0x20213c;var _0x317da3=new Date();return _0x317da3[_0x292c2f(0xf8)](_0x317da3[_0x292c2f(0x113)]()-_0x317da3[_0x292c2f(0x102)]()/0x3c),_0x317da3['toJSON']()['slice'](0x0,0x13)['replace']('T','\x20');}const encode=function(_0x2a5170,_0x4eb10f,_0x5b8d75=0x0,_0x503e0b=0x0){const _0xfa531d=a6_0x20213c;if(_0x503e0b<0x0||_0x503e0b>0x4)return undefined;_0x2a5170 instanceof Object&&(_0x2a5170=JSON['stringify'](_0x2a5170));while(_0x4eb10f[_0xfa531d(0x10a)]<0x10){_0x4eb10f+='0';}return _0x2a5170=base[_0xfa531d(0x109)](cipher(_0x2a5170,_0x4eb10f,_0x503e0b)),_0x5b8d75&&(_0x2a5170=base[_0xfa531d(0x109)](_0x2a5170),_0x2a5170=base[_0xfa531d(0x109)](_0x2a5170),_0x2a5170=base[_0xfa531d(0x109)](_0x2a5170),_0x2a5170=base[_0xfa531d(0x109)](_0x2a5170),_0x2a5170=base['encode'](_0x2a5170)),_0x2a5170;},decode=function(_0x1424b,_0xcc4acf,_0x4e1d20=0x0,_0x3e9c83=0x0){const _0x177629=a6_0x20213c;if(_0x3e9c83<0x0||_0x3e9c83>0x4)return undefined;while(_0xcc4acf['length']<0x10){_0xcc4acf+='0';}return _0x1424b=base[_0x177629(0x103)](_0x1424b),_0x4e1d20&&(_0x1424b=base['decode'](_0x1424b),_0x1424b=base[_0x177629(0x103)](_0x1424b),_0x1424b=base[_0x177629(0x103)](_0x1424b),_0x1424b=base['decode'](_0x1424b),_0x1424b=base['decode'](_0x1424b)),_0x1424b=decipher(_0x1424b,_0xcc4acf,_0x3e9c83),isJSON(_0x1424b)&&(_0x1424b=JSON[_0x177629(0x112)](_0x1424b)),_0x1424b;};module[a6_0x20213c(0xfe)]={'encode':encode,'getTime':getTime,'decode':decode,'isJSON':isJSON,'randomInt':randomInt,'randomStr':randomStr,'randomstr':randomstr,'masTip':masTip,'getTimestamp':getTimestamp,'Mtime':Mtime};
@@ -1,60 +0,0 @@
1
- const fs = require('fs');
2
- const state = require('../state');
3
-
4
- module.exports = (root) => {
5
- let endDir = [];
6
- let DirChinese = require(state.dirname + '/config/api.config.k.json');
7
- function getFiles(dir) {
8
- dirArr = fs.readdirSync(state.dirname + `/src${dir}`);
9
- for (let v of dirArr) {
10
- let vArr = v.split('.');
11
- {
12
- if (!DirChinese[vArr[0]]) {
13
- DirChinese[vArr[0]] = '';
14
- }
15
- }
16
- if (vArr[vArr.length - 1] == 'js' && vArr.length >= 2) {
17
- endDir.push(`${dir}/${v.replace('.js', '')}`);
18
- } else {
19
- getFiles(`${dir}/${v}`);
20
- }
21
-
22
- }
23
-
24
- }
25
- let dirTree = {};
26
- const sign = 'api';
27
- function getTree(item) {
28
- if (item.length == 2) {
29
- if (!dirTree[item[0]]) dirTree[item[0]] = {};
30
- dirTree[item[0]][item[1]] = sign;
31
- }
32
- if (item.length == 3) {
33
- if (!dirTree[item[0]]) dirTree[item[0]] = {};
34
- if (!dirTree[item[0]][item[1]]) dirTree[item[0]][item[1]] = {};
35
- dirTree[item[0]][item[1]][item[2]] = sign;
36
- }
37
- if (item.length == 4) {
38
- if (!dirTree[item[0]]) dirTree[item[0]] = {};
39
- if (!dirTree[item[0]][item[1]]) dirTree[item[0]][item[1]] = {};
40
- if (!dirTree[item[0]][item[1]][item[2]]) dirTree[item[0]][item[1]][item[2]] = {};
41
- dirTree[item[0]][item[1]][item[2]][item[3]] = sign;
42
- }
43
- if (item.length == 5) {
44
- if (!dirTree[item[0]]) dirTree[item[0]] = {};
45
- if (!dirTree[item[0]][item[1]]) dirTree[item[0]][item[1]] = {};
46
- if (!dirTree[item[0]][item[1]][item[2]]) dirTree[item[0]][item[1]][item[2]] = {};
47
- if (!dirTree[item[0]][item[1]][item[2]][item[3]]) dirTree[item[0]][item[1]][item[2][item[3]]] = {};
48
- dirTree[item[0]][item[1]][item[2]][item[3][item[4]]] = sign;
49
- }
50
- }
51
- getFiles(root);
52
- for (let item of endDir) {
53
- getTree(item.slice(1).split('/'));
54
- }
55
- DirChinese.api = '接口';
56
-
57
- fs.writeFileSync(__dirname + '/../config/api.tree.json', JSON.stringify(dirTree));
58
- fs.writeFileSync(state.dirname + '/config/api.config.k.json', JSON.stringify(DirChinese));
59
- return endDir;
60
- };
package/src/utils/logs.js DELETED
@@ -1,16 +0,0 @@
1
- const state = require('../state');
2
- const config = state.config;
3
- const fs = require('fs');
4
- module.exports = (req, res, next) => {
5
- let date = null;
6
- date = new Date();
7
- let data = `${date.toString().slice(16, 24)} ${req.method} ${req.ipInfo.ip} ${req.url} ${req.body ? JSON.stringify(req.body) : ''}\n`;
8
- fs.appendFileSync(
9
- state.dirname + `/serverLogs/${date.toLocaleDateString().split('/').map(item => { (item.length < 2 && (item = '0' + item)); return item; }).join('-')}.log`,
10
- data
11
- );
12
- if (config.logs.debug) {
13
- console.log(data);
14
- }
15
- next();
16
- };
@@ -1,37 +0,0 @@
1
-
2
- module.exports = (app, config) => {
3
- const state = require('../state');
4
- const dirname = state.dirname;
5
- if (config.apidoc) {
6
- app.post('/doc/get', (req, res) => {
7
- res.return({
8
- config: require(dirname + '/config/api.config.json'),
9
- tree: require('../config/api.tree.json'),
10
- k: require(dirname + '/config/api.config.k.json'),
11
- res: require('../config/api.res.json'),
12
- proName: config.projectName
13
- });
14
- });
15
- app.post('/doc/setBody', (req, res) => {
16
- let apiRes = require('../config/api.res.json');
17
- if (req.body.name) {
18
- apiRes[req.body.name] = req.body.data;
19
- fs.writeFileSync(__dirname + '/../config/api.res.json', JSON.stringify(apiRes));
20
- res.return(1);
21
- } else {
22
- res.return(0, 0);
23
- }
24
- });
25
- app.post('/doc/getBody', (req, res) => {
26
- let apiRes = require('../config/api.res.json');
27
- if (req.body.name && apiRes[req.body.name]) {
28
- res.return(apiRes[req.body.name]);
29
- } else {
30
- res.return(0, 0);
31
- }
32
- });
33
- app.get('/doc', (req, res) => {
34
- res.redirect('/masPublic/doc/index.html');
35
- });
36
- }
37
- };
@@ -1,29 +0,0 @@
1
- const state = require('../state');
2
- const getDir = require("./getDir");
3
- const fs = require("fs");
4
-
5
- module.exports = () => {
6
- const route = require(state.dirname + "/config/api.config.json");
7
- let isWrite = 0;
8
- let routeArr = Object.keys(route);
9
- // 获得新配置
10
- let newRoute = getDir('/api').map(item => {
11
- // 如果旧配置里面没有就创建
12
- if (routeArr.indexOf(item) == -1) {
13
- route[item] = {};
14
- isWrite = 1;
15
- }
16
- return item;
17
- });
18
- // 如果多了就删除
19
- routeArr.map(item => {
20
- if (newRoute.indexOf(item) == -1) {
21
- delete route[item];
22
- isWrite = 1;
23
- }
24
- });
25
- // 配置更改重新写入
26
- if (isWrite) {
27
- fs.writeFileSync(state.dirname + "/config/api.config.json", JSON.stringify(route));
28
- }
29
- };
@@ -1,18 +0,0 @@
1
- module.exports = (req, res, next) => {
2
- req.body = req.fields;
3
- let right = true;
4
- res.return = async (data, status = 1, code = 200) => {
5
- if (!right) return;
6
- right = false;
7
- if (!data) {
8
- status = 0;
9
- }
10
- if (Number.isInteger(data)) data = data + '';
11
- if (data instanceof Promise) data = await data;
12
- res.status(code).send({
13
- status: status >= 1 ? 1 : 0,
14
- data: data ? data : null
15
- });
16
- };
17
- next();
18
- };
@@ -1,57 +0,0 @@
1
- const { decode, isJSON, encode, masTip, getTimestamp } = require('./encrypt');
2
- const state = require('../state');
3
- config = state.config;
4
- _main = (req, res, next) => {
5
- let apiCofig = require(state.dirname + '/config/api.config.json');
6
- if (apiCofig[req.url] && apiCofig[req.url].token) {
7
- if (!req.headers.token) {
8
- return res.return('缺少重要参数', 0, 400);
9
- }
10
- const tokenInfo = decode(req.headers.token, config.token.pwd, true);
11
- if (!tokenInfo) {
12
- right = false;
13
- return res.return('未知的参数 ', 0, 400);
14
- } else if (apiCofig[req.url].permission instanceof Array) {
15
- let right = false;
16
- if (tokenInfo instanceof Object) apiCofig[req.url].permission.forEach(item => {
17
-
18
- if (item == tokenInfo?._permission) {
19
- right = true;
20
- }
21
- });
22
- if (!right) return res.return('权限不足!', 0, 400);
23
- }
24
- if (tokenInfo instanceof String && isJSON(tokenInfo)) {
25
- tokenInfo = JSON.parse(tokenInfo);
26
- }
27
- if (tokenInfo._masTime) {
28
- if (getTimestamp() > tokenInfo._masTime) return res.return('token已过期!', 0);
29
- delete tokenInfo._masTime;
30
- }
31
- req.tokenInfo = tokenInfo;
32
- }
33
-
34
- next();
35
-
36
- };
37
- /**
38
- * @desc: 生成token
39
- * @param {*} data 要放入token的数据
40
- * @param {number} time token过期时间,设置此项传入数据必须为json数据,单位为s,默认为0,不过期
41
- * @param {string} permission 角色权限
42
- * @return {*}
43
- */
44
- function createToken(data, time = 0, permission,config) {
45
- if (!isJSON(data) && !(data instanceof Object)) {
46
- masTip('生成token失败!');
47
- return undefined;
48
- }
49
- if (permission) {
50
- data._permission = permission;
51
- }
52
- if (time) {
53
- data._masTime = time * 1000 + getTimestamp();
54
- }
55
- return encode(data, config.token.pwd, true);
56
- }
57
- module.exports = { _main, createToken };
@@ -1,4 +0,0 @@
1
- const { createCode } = require("../../src");
2
- const path = require('path')
3
- const dir=path.join(__dirname,"../")
4
- createCode(dir.slice(0,dir.length-1))
@@ -1,5 +0,0 @@
1
- const { createApis } = require("../../src");
2
- const path = require('path');
3
- const dir = path.join(__dirname, "../");
4
- console.log(dir);
5
- createApis(dir);
@@ -1,4 +0,0 @@
1
- const { beforeIndex } = require('../../src/index');
2
- const path = require('path');
3
- const dir = path.join(__dirname, "../");
4
- beforeIndex(dir.slice(0, dir.length - 1));
@@ -1,4 +0,0 @@
1
- const { createForm } = require("../../src");
2
- const path = require('path');
3
- const dir = path.join(__dirname, "../");
4
- createForm(dir.slice(0, dir.length - 1));
@@ -1,7 +0,0 @@
1
- {
2
- "/api/index": {},
3
- "/api/test": {
4
- "token": true,
5
- "permission": ["user"]
6
- }
7
- }
@@ -1 +0,0 @@
1
- {"index":"","test":"","api":"接口","user":"","get":""}
@@ -1,22 +0,0 @@
1
- const { configSchema } = require('../../src/index');
2
- module.exports = configSchema({
3
- projectName: "masjs",
4
- port: 8087,
5
- apidoc: true,
6
- cors: true,
7
- logs: {
8
- open: true,
9
- debug: false
10
- },
11
- token: {
12
- open: true,
13
- pwd: "test"
14
- },
15
- useSql: true,
16
- sql: {
17
- host: '127.0.0.1',
18
- user: 'root',
19
- password: '123456',
20
- database: 'school'
21
- }
22
- });
@@ -1,23 +0,0 @@
1
- const { $sqlForm } = require('../../src/index');
2
- module.exports = {
3
- "test": $sqlForm([
4
- {
5
- "key": "name",
6
- "type": "str",
7
- },
8
- {
9
- "key": "age",
10
- "type": "int"
11
- }
12
- ]),
13
- "test22": $sqlForm([
14
- {
15
- "key": "name",
16
- "type": "str"
17
- },
18
- {
19
- "key": "test1",
20
- "type": "int",
21
- },
22
- ])
23
- };
package/test/index.js DELETED
@@ -1,12 +0,0 @@
1
- const { getApp, sqlForm } = require('../src/index');
2
- const config = require('./config/config');
3
- const app = getApp(__dirname);
4
- app.listen(config.port, () => {
5
- console.log('服务器启动');
6
- console.log(`http://localhost:${config.port}`);
7
- if (config.apidoc) {
8
- console.log('接口文档开启');
9
- console.log(`http://localhost:${config.port}/doc`);
10
- }
11
-
12
- });
package/test/public/1.txt DELETED
@@ -1 +0,0 @@
1
- sdsd
@@ -1,6 +0,0 @@
1
- 15:43:41 GET ::1 / {}
2
- 15:45:33 GET ::1 / {}
3
- 17:30:47 GET ::1 /doc {}
4
- 17:30:47 POST ::1 /doc/get {}
5
- 17:31:12 POST ::1 /doc/getBody {"name":"/api/test"}
6
- 17:31:14 POST ::1 /api/test {}
@@ -1,58 +0,0 @@
1
- 16:58:58 GET ::1 /doc {}
2
- 16:58:58 POST ::1 /doc/get {}
3
- 16:59:14 POST ::1 /doc/getBody {"name":"/api/test"}
4
- 16:59:15 POST ::1 /api/test {}
5
- 17:02:52 POST ::1 /api/test {}
6
- 17:03:00 POST ::1 /api/test {}
7
- 17:05:42 POST ::1 /doc/get {}
8
- 17:06:56 POST ::1 /doc/getBody {"name":"/api/test"}
9
- 17:06:56 POST ::1 /api/test {}
10
- 17:07:06 POST ::1 /api/test {"name":"ss"}
11
- 17:07:14 POST ::1 /doc/get {}
12
- 17:08:08 POST ::1 /doc/get {}
13
- 17:09:30 POST ::1 /doc/getBody {"name":"/api/test"}
14
- 17:09:45 POST ::1 /api/test {"test":"ss"}
15
- 17:12:38 POST ::1 /api/test {"test":"ss"}
16
- 19:45:35 GET ::1 /doc {}
17
- 19:45:35 GET ::1 /favicon.ico {}
18
- 19:46:04 GET ::1 /doc {}
19
- 19:46:05 GET ::1 /doc {}
20
- 19:46:51 GET ::1 /doc {}
21
- 19:46:51 GET ::1 /favicon.ico {}
22
- 19:46:52 GET ::1 /doc {}
23
- 19:46:52 GET ::1 /favicon.ico {}
24
- 19:47:01 GET ::1 /doc {}
25
- 19:47:03 GET ::1 /doc {}
26
- 19:47:13 GET ::1 /doc {}
27
- 19:47:13 GET ::1 /doc {}
28
- 19:47:21 GET ::1 /doc {}
29
- 19:47:23 GET ::1 /doc {}
30
- 19:47:23 GET ::1 /doc {}
31
- 19:47:34 GET ::1 /doc {}
32
- 19:47:36 GET ::1 /doc {}
33
- 19:48:10 GET ::1 /doc {}
34
- 19:48:10 POST ::ffff:127.0.0.1 /doc/get {}
35
- 19:48:17 POST ::1 /doc/getBody {"name":"/api/test"}
36
- 19:48:18 POST ::1 /api/test {}
37
- 19:49:57 POST ::1 /api/test {}
38
- 19:50:50 POST ::1 /api/test {}
39
- 19:52:09 POST ::1 /api/test {}
40
- 19:57:47 GET ::1 / {}
41
- 19:59:07 POST ::1 /api/test {}
42
- 20:02:44 POST ::1 /api/test {}
43
- 20:03:13 POST ::1 /api/test {}
44
- 20:03:28 POST ::1 /api/test {}
45
- 20:03:37 POST ::1 /api/test {}
46
- 20:04:14 POST ::1 /api/test {}
47
- 20:26:27 POST ::1 /api/test {}
48
- 20:27:09 POST ::1 /api/test {}
49
- 20:27:11 POST ::1 /api/test {}
50
- 20:28:00 POST ::1 /api/test {}
51
- 20:28:49 POST ::1 /api/test {}
52
- 20:29:05 POST ::1 /api/test {}
53
- 20:29:09 POST ::1 /api/test {}
54
- 20:29:11 POST ::1 /api/test {}
55
- 20:29:12 POST ::1 /api/test {}
56
- 20:29:13 POST ::1 /api/test {}
57
- 20:29:15 POST ::1 /api/test {}
58
- 20:29:16 POST ::1 /api/test {}
package/test/src/$form.js DELETED
@@ -1 +0,0 @@
1
- module.exports = {"manager":{"manager":"@manager","id":"id","password":"password","user":"user"},"school":{"school":"@school","id":"id","name":"name"},"student":{"student":"@student","age":"age","id":"id","name":"name"},"teacher":{"teacher":"@teacher","ID":"ID","姓名":"姓名","年龄":"年龄","性别":"性别"},"test":{"test":"@test","age":"age","id":"id","name":"name"},"test22":{"test22":"@test22","id":"id","name":"name","test1":"test1"}}
@@ -1,3 +0,0 @@
1
- module.exports = async (req, res) => {
2
- res.return("hello,mas-server!");
3
- };
@@ -1,9 +0,0 @@
1
- const $form = require("../$form");
2
- const { sql } = require("../../../src");
3
-
4
- module.exports = async (req, res) => {
5
- const data = await sql.use($form.student).select().go();
6
- console.log(req.tokenInfo);
7
- res.return(data);
8
-
9
- };
@@ -1,6 +0,0 @@
1
- const { sql } = require("mas-server");
2
- const $form = require("@/$form");
3
- module.exports = async (req, res) => {
4
- const sqlData = await sql.use($form.student).delete(req.body.id).go();
5
- res.return(sqlData, sqlData);
6
- }
@@ -1,6 +0,0 @@
1
- const { sql } = require("mas-server");
2
- const $form = require("@/$form");
3
- module.exports = async (req, res) => {
4
- const sqlData = sql.use($form.student).select(req.body).paging(req.body).go();
5
- res.return(sqlData, sqlData != null);
6
- };
@@ -1,6 +0,0 @@
1
- const { sql } = require("mas-server");
2
- const $form = require("@/$form");
3
- module.exports = async (req, res) => {
4
- const sqlData =await sql.use($form.student).save(req.body).go();
5
- res.return(sqlData, sqlData);
6
- };
@@ -1,4 +0,0 @@
1
- module.exports = async (req, res) => {
2
-
3
- res.return('hello,masjs!');
4
- }
package/test/src/debug.js DELETED
@@ -1,2 +0,0 @@
1
- // const { createToken } = require("../../src");
2
- // console.log(createToken({ "test": "sdsd" }, "user", 20));
File without changes