mm_os 4.2.3 → 4.2.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.
- package/com/api/script.tpl.js +24 -24
- package/com/event/index.js +3 -0
- package/com/event/script.tpl.js +22 -22
- package/com/socket/drive.js +4 -39
- package/com/static/script.tpl.js +25 -25
- package/com/task/script.tpl.js +37 -34
- package/common/middleware/web_after/index.js +1 -1
- package/package.json +6 -6
package/com/api/script.tpl.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
module.exports = {
|
|
3
|
+
/**
|
|
4
|
+
* 接口主函数
|
|
5
|
+
* @param {object} ctx HTTP上下文
|
|
6
|
+
* @param {object} db 数据管理器,如: { next: async function{}, ret: {} }
|
|
7
|
+
* @returns {object} 执行结果
|
|
8
|
+
*/
|
|
9
|
+
async main(ctx, db) {
|
|
10
|
+
// 获取请求参数
|
|
11
|
+
var req = ctx.request;
|
|
12
|
+
var {
|
|
13
|
+
query,
|
|
14
|
+
body
|
|
15
|
+
} = req;
|
|
16
|
+
// return "hello world" + JSON.stringify(body);
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
// 操作sql模板
|
|
19
|
+
var m = query.method;
|
|
20
|
+
if (m === 'add') {
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
} else if (m === 'del') {
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
} else if (m === 'set') {
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
} else {
|
|
26
27
|
|
|
28
|
+
}
|
|
29
|
+
var ret = await this.sql.run(query, body, db);
|
|
30
|
+
return ret;
|
|
27
31
|
}
|
|
28
|
-
var ret = await this.sql.run(query, body, db);
|
|
29
|
-
return ret;
|
|
30
32
|
};
|
|
31
|
-
|
|
32
|
-
exports.main = main;
|
package/com/event/index.js
CHANGED
|
@@ -200,6 +200,9 @@ Event.prototype._sortSub = function (list) {
|
|
|
200
200
|
* @returns {object} 执行结果
|
|
201
201
|
*/
|
|
202
202
|
Event.prototype.doing = async function (o, ctx, db) {
|
|
203
|
+
if (o.isLoaded()) {
|
|
204
|
+
await o.call('loadScript');
|
|
205
|
+
}
|
|
203
206
|
var ret = o.run(ctx, db);
|
|
204
207
|
if (types.isPromise(ret)) {
|
|
205
208
|
ret = await ret;
|
package/com/event/script.tpl.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//
|
|
4
|
-
api.
|
|
1
|
+
exports = {
|
|
2
|
+
async init(options) {
|
|
3
|
+
// 使用api管理器
|
|
4
|
+
var api = $.admin.api('${name}_api', '${title}客户端');
|
|
5
|
+
// 首次启动更新api接口;
|
|
6
|
+
await api.call('update', 'app/');
|
|
7
|
+
},
|
|
8
|
+
/**
|
|
9
|
+
* 接口主函数
|
|
10
|
+
* @param {object} ctx HTTP上下文
|
|
11
|
+
* @param {object} db 数据管理器,如: { next: async function{}, ret: {} }
|
|
12
|
+
* @returns {object} 执行结果
|
|
13
|
+
*/
|
|
14
|
+
async main(ctx, db) {
|
|
15
|
+
var sql = $.admin.sql('sys');
|
|
16
|
+
// 使用模板引擎
|
|
17
|
+
db.tpl = new $.Tpl();
|
|
5
18
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @returns {object} 执行结果
|
|
12
|
-
*/
|
|
13
|
-
async function main(ctx, db) {
|
|
14
|
-
var sql = $.admin.sql('sys');
|
|
15
|
-
// 使用模板引擎
|
|
16
|
-
db.tpl = new $.Tpl();
|
|
17
|
-
|
|
18
|
-
// 在这定义要访问的数据库 (分布式开发时设置不同的数据库名)
|
|
19
|
-
$.push(db, sql.db(), true);
|
|
20
|
-
return api.run(ctx, db);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
exports.main = main;
|
|
19
|
+
// 在这定义要访问的数据库 (分布式开发时设置不同的数据库名)
|
|
20
|
+
$.push(db, sql.db(), true);
|
|
21
|
+
return api.run(ctx, db);
|
|
22
|
+
}
|
|
23
|
+
}
|
package/com/socket/drive.js
CHANGED
|
@@ -90,53 +90,18 @@ Drive.prototype._preset = function () {
|
|
|
90
90
|
this.list_msg = this._storage.list_msg;
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
/**
|
|
94
|
-
* 新建脚本
|
|
95
|
-
* @param {string} file 文件
|
|
96
|
-
*/
|
|
97
|
-
Drive.prototype.newScript = function (file) {
|
|
98
|
-
var fl = __dirname + '/script.tpl.js';
|
|
99
|
-
if (fl.hasFile()) {
|
|
100
|
-
var text = fl.loadText();
|
|
101
|
-
if (text) {
|
|
102
|
-
var l = $.slash;
|
|
103
|
-
if (file.indexOf('socket' + l) !== -1) {
|
|
104
|
-
var name = file.between('socket' + l, l);
|
|
105
|
-
text = text.replaceAll('{0}', name);
|
|
106
|
-
}
|
|
107
|
-
file.saveText(text);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* 新建配置
|
|
114
|
-
* @param {string} file 文件
|
|
115
|
-
*/
|
|
116
|
-
Drive.prototype.newConfig = function (file) {
|
|
117
|
-
var fl = __dirname + '/config.tpl.json';
|
|
118
|
-
if (fl.hasFile()) {
|
|
119
|
-
var text = fl.loadText();
|
|
120
|
-
if (text) {
|
|
121
|
-
var l = $.slash;
|
|
122
|
-
if (file.indexOf('socket' + l) !== -1) {
|
|
123
|
-
var name = file.between('socket' + l, l);
|
|
124
|
-
text = text.replaceAll('{0}', name);
|
|
125
|
-
}
|
|
126
|
-
file.saveText(text);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
93
|
/**
|
|
132
94
|
* 获取session ID
|
|
133
95
|
* @param {object} ctx HTTP上下文
|
|
134
96
|
* @returns {string} 返回用户的uuid
|
|
135
97
|
*/
|
|
136
98
|
Drive.prototype.getToken = async function (ctx) {
|
|
99
|
+
var hd = ctx.request.header;
|
|
137
100
|
var uuid = await ctx.cookies.get('mm:uuid');
|
|
101
|
+
if(!uuid) {
|
|
102
|
+
uuid = hd[''];
|
|
103
|
+
}
|
|
138
104
|
if (!uuid) {
|
|
139
|
-
var hd = ctx.request.header;
|
|
140
105
|
var agent = hd['user-agent'];
|
|
141
106
|
if (!agent) {
|
|
142
107
|
agent = 'mm';
|
package/com/static/script.tpl.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 执行前
|
|
3
|
-
* @param {object} ctx http请求上下文
|
|
4
|
-
* @param {object} path 文件路径
|
|
5
|
-
*/
|
|
6
|
-
async function before(ctx, path) {};
|
|
7
1
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
async
|
|
15
|
-
return this.send(ctx, path, this.config);
|
|
16
|
-
};
|
|
2
|
+
module.exports = {
|
|
3
|
+
/**
|
|
4
|
+
* 执行前
|
|
5
|
+
* @param {object} ctx http请求上下文
|
|
6
|
+
* @param {object} path 文件路径
|
|
7
|
+
*/
|
|
8
|
+
async before(ctx, path) { },
|
|
17
9
|
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
/**
|
|
11
|
+
* 执行
|
|
12
|
+
* @param {object} ctx http请求上下文
|
|
13
|
+
* @param {object} path 文件路径
|
|
14
|
+
* @returns {boolean} 成功发送返回true,失败返回false
|
|
15
|
+
*/
|
|
16
|
+
async main(ctx, path) {
|
|
17
|
+
return this.send(ctx, path, this.config);
|
|
18
|
+
},
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
/**
|
|
21
|
+
* 执行后
|
|
22
|
+
* @param {object} ctx http请求上下文
|
|
23
|
+
* @param {object} path 文件路径
|
|
24
|
+
*/
|
|
25
|
+
async after(ctx, path) {
|
|
26
|
+
|
|
27
|
+
}
|
|
28
|
+
};
|
package/com/task/script.tpl.js
CHANGED
|
@@ -1,37 +1,40 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 定时任务函数
|
|
3
|
-
*/
|
|
4
|
-
exports.main = async function main() {
|
|
5
|
-
this.log('debug', '定时任务, 执行中...');
|
|
6
|
-
};
|
|
7
1
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
2
|
+
module.exports = {
|
|
3
|
+
/**
|
|
4
|
+
* 定时任务函数
|
|
5
|
+
*/
|
|
6
|
+
async main() {
|
|
7
|
+
this.log('debug', '定时任务, 执行中...');
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 执行结果通知
|
|
12
|
+
* @param {string} name 任务名称
|
|
13
|
+
* @param {string} state 状态
|
|
14
|
+
*/
|
|
15
|
+
async notify(name, state) {
|
|
16
|
+
switch (state) {
|
|
17
|
+
case 'init':
|
|
18
|
+
this.log('debug', '任务-初始化');
|
|
19
|
+
break;
|
|
20
|
+
case 'start':
|
|
21
|
+
this.log('debug', '任务-开始执行');
|
|
22
|
+
break;
|
|
23
|
+
case 'stop':
|
|
24
|
+
this.log('debug', '任务-已暂停');
|
|
25
|
+
break;
|
|
26
|
+
case 'suspend':
|
|
27
|
+
// 主动中断
|
|
28
|
+
this.log('debug', '任务-已中断');
|
|
29
|
+
break;
|
|
30
|
+
case 'time_end':
|
|
31
|
+
this.log('debug', '任务-已到期');
|
|
32
|
+
break;
|
|
33
|
+
case 'completed':
|
|
34
|
+
this.log('debug', '任务-已完成');
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mm_os",
|
|
3
3
|
"description": "MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。",
|
|
4
|
-
"version": "4.2.
|
|
4
|
+
"version": "4.2.6",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"AI",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"test": "cross-env NODE_ENV=test node ./example/demo.js"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"aedes": "^1.0
|
|
29
|
+
"aedes": "^1.1.0",
|
|
30
30
|
"compressing": "^2.1.1",
|
|
31
31
|
"js-beautify": "^1.15.4",
|
|
32
32
|
"koa": "^3.2.1",
|
|
@@ -47,17 +47,17 @@
|
|
|
47
47
|
"mm_machine": "^2.7.6",
|
|
48
48
|
"mm_matchs": "^1.1.9",
|
|
49
49
|
"mm_queue": "^1.0.3",
|
|
50
|
-
"mm_session": "^1.5.
|
|
50
|
+
"mm_session": "^1.5.9",
|
|
51
51
|
"mm_sql": "^1.5.6",
|
|
52
|
-
"mm_statics": "^1.8.
|
|
52
|
+
"mm_statics": "^1.8.7",
|
|
53
53
|
"mm_xml": "^1.1.7",
|
|
54
54
|
"mqtt": "^5.15.1",
|
|
55
|
-
"openai": "^6.
|
|
55
|
+
"openai": "^6.45.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/jest": "^30.0.0",
|
|
59
59
|
"eslint-formatter-table": "^7.32.1",
|
|
60
|
-
"eslint-plugin-jsdoc": "^63.0.
|
|
60
|
+
"eslint-plugin-jsdoc": "^63.0.8",
|
|
61
61
|
"jest": "^30.4.2",
|
|
62
62
|
"mm_eslint": "^1.7.5"
|
|
63
63
|
},
|