@maiyunnet/kebab 2.0.16 → 3.0.1
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/README.md +1 -5
- package/bin/kebab.js +1 -1
- package/index.d.ts +1 -1
- package/index.js +16 -18
- package/lib/buffer.js +4 -11
- package/lib/captcha.js +6 -44
- package/lib/consistent.js +8 -51
- package/lib/core.d.ts +4 -4
- package/lib/core.js +70 -132
- package/lib/crypto.js +43 -99
- package/lib/db.d.ts +5 -5
- package/lib/db.js +31 -68
- package/lib/dns.d.ts +1 -1
- package/lib/dns.js +12 -50
- package/lib/fs.js +26 -81
- package/lib/jwt.d.ts +3 -3
- package/lib/jwt.js +9 -50
- package/lib/kv.d.ts +4 -4
- package/lib/kv.js +31 -69
- package/lib/lan.js +4 -41
- package/lib/net/cacert.pem +78 -2
- package/lib/net/formdata.js +5 -42
- package/lib/net/request.d.ts +2 -2
- package/lib/net/request.js +3 -42
- package/lib/net/response.d.ts +1 -1
- package/lib/net/response.js +1 -5
- package/lib/net.d.ts +5 -5
- package/lib/net.js +24 -73
- package/lib/s3.d.ts +1 -1
- package/lib/s3.js +20 -59
- package/lib/scan.d.ts +3 -3
- package/lib/scan.js +10 -50
- package/lib/session.d.ts +3 -3
- package/lib/session.js +9 -46
- package/lib/sql.d.ts +2 -2
- package/lib/sql.js +9 -50
- package/lib/ssh/sftp.js +5 -46
- package/lib/ssh/shell.js +2 -39
- package/lib/ssh.d.ts +2 -2
- package/lib/ssh.js +5 -43
- package/lib/text.d.ts +1 -1
- package/lib/text.js +40 -104
- package/lib/time.d.ts +1 -1
- package/lib/time.js +10 -50
- package/lib/turnstile.d.ts +1 -1
- package/lib/turnstile.js +6 -43
- package/lib/ws.d.ts +2 -2
- package/lib/ws.js +14 -56
- package/lib/zip.d.ts +1 -1
- package/lib/zip.js +6 -47
- package/lib/zlib.js +17 -68
- package/main.js +6 -44
- package/package.json +9 -8
- package/sys/child.js +10 -45
- package/sys/cmd.js +8 -43
- package/sys/ctr.d.ts +5 -5
- package/sys/ctr.js +9 -47
- package/sys/master.js +11 -46
- package/sys/mod.d.ts +9 -5
- package/sys/mod.js +9 -43
- package/sys/route.d.ts +2 -2
- package/sys/route.js +24 -64
- package/types/index.d.ts +1 -0
- package/www/example/ctr/main.d.ts +1 -1
- package/www/example/ctr/main.js +2 -38
- package/www/example/ctr/middle.d.ts +2 -2
- package/www/example/ctr/middle.js +2 -38
- package/www/example/ctr/test.d.ts +2 -2
- package/www/example/ctr/test.js +65 -72
- package/www/example/mod/test.d.ts +2 -2
- package/www/example/mod/test.js +4 -42
- package/www/example/mod/testdata.d.ts +1 -1
- package/www/example/mod/testdata.js +3 -8
- package/www/example/ws/mproxy.d.ts +1 -1
- package/www/example/ws/mproxy.js +6 -41
- package/www/example/ws/rproxy.d.ts +1 -1
- package/www/example/ws/rproxy.js +5 -40
- package/www/example/ws/rsocket.d.ts +1 -1
- package/www/example/ws/rsocket.js +5 -40
- package/www/example/ws/test.d.ts +1 -1
- package/www/example/ws/test.js +7 -42
- package/eslint.config.js +0 -22
package/sys/cmd.js
CHANGED
|
@@ -1,50 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
1
|
/**
|
|
37
2
|
* Project: Kebab, User: JianSuoQiYue
|
|
38
3
|
* Date: 2020-3-7 23:51:15
|
|
39
4
|
* Last: 2020-3-7 23:51:18, 2022-07-22 14:14:09, 2022-9-27 14:52:19, 2023-5-23 21:42:46, 2024-7-2 15:12:28
|
|
40
5
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
6
|
+
import * as http from 'http';
|
|
7
|
+
import * as lFs from '../lib/fs.js';
|
|
8
|
+
import * as lText from '../lib/text.js';
|
|
9
|
+
import * as lTime from '../lib/time.js';
|
|
10
|
+
import * as lCore from '../lib/core.js';
|
|
11
|
+
import * as lCrypto from '../lib/crypto.js';
|
|
12
|
+
import * as kebab from '../index.js';
|
|
48
13
|
/** --- 解析命令 --- */
|
|
49
14
|
const cmds = process.argv.slice(2);
|
|
50
15
|
/** --- 批量创建目录 --- */
|
|
@@ -229,7 +194,7 @@ async function run() {
|
|
|
229
194
|
return;
|
|
230
195
|
}
|
|
231
196
|
// --- 载入独立文件入口 ---
|
|
232
|
-
|
|
197
|
+
import('../ind/' + cmds[1] + '/index.js').catch((e) => {
|
|
233
198
|
lCore.display('CMD ERROR', 'E', e);
|
|
234
199
|
});
|
|
235
200
|
}
|
package/sys/ctr.d.ts
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as http from 'http';
|
|
7
7
|
import * as http2 from 'http2';
|
|
8
|
-
import * as session from '../lib/session';
|
|
9
|
-
import * as db from '../lib/db';
|
|
10
|
-
import * as kv from '../lib/kv';
|
|
11
|
-
import * as lWs from '../lib/ws';
|
|
12
|
-
import * as types from '../types';
|
|
8
|
+
import * as session from '../lib/session.js';
|
|
9
|
+
import * as db from '../lib/db.js';
|
|
10
|
+
import * as kv from '../lib/kv.js';
|
|
11
|
+
import * as lWs from '../lib/ws.js';
|
|
12
|
+
import * as types from '../types/index.js';
|
|
13
13
|
/**
|
|
14
14
|
* --- 清除已经加载的 data 与语言包文件缓存 ---
|
|
15
15
|
*/
|
package/sys/ctr.js
CHANGED
|
@@ -1,47 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Ctr = void 0;
|
|
37
|
-
exports.clearLocaleData = clearLocaleData;
|
|
38
|
-
const ejs = __importStar(require("ejs"));
|
|
39
|
-
const lCore = __importStar(require("../lib/core"));
|
|
40
|
-
const fs = __importStar(require("../lib/fs"));
|
|
41
|
-
const crypto = __importStar(require("../lib/crypto"));
|
|
42
|
-
const session = __importStar(require("../lib/session"));
|
|
43
|
-
const text = __importStar(require("../lib/text"));
|
|
44
|
-
const sRoute = __importStar(require("../sys/route"));
|
|
1
|
+
import * as ejs from 'ejs';
|
|
2
|
+
import * as lCore from '../lib/core.js';
|
|
3
|
+
import * as fs from '../lib/fs.js';
|
|
4
|
+
import * as crypto from '../lib/crypto.js';
|
|
5
|
+
import * as session from '../lib/session.js';
|
|
6
|
+
import * as text from '../lib/text.js';
|
|
7
|
+
import * as sRoute from '../sys/route.js';
|
|
45
8
|
/** --- 已加载的 DATA 数据缓存(不是语言包)-- */
|
|
46
9
|
let loadedData = {};
|
|
47
10
|
/** --- 已加载的语言文件列表 --- */
|
|
@@ -51,12 +14,12 @@ let localeData = {};
|
|
|
51
14
|
/**
|
|
52
15
|
* --- 清除已经加载的 data 与语言包文件缓存 ---
|
|
53
16
|
*/
|
|
54
|
-
function clearLocaleData() {
|
|
17
|
+
export function clearLocaleData() {
|
|
55
18
|
loadedData = {};
|
|
56
19
|
localeFiles = [];
|
|
57
20
|
localeData = {};
|
|
58
21
|
}
|
|
59
|
-
class Ctr {
|
|
22
|
+
export class Ctr {
|
|
60
23
|
constructor(config, req, res) {
|
|
61
24
|
/** --- 路由参数序列数组 --- */
|
|
62
25
|
this._param = [];
|
|
@@ -782,4 +745,3 @@ class Ctr {
|
|
|
782
745
|
return true;
|
|
783
746
|
}
|
|
784
747
|
}
|
|
785
|
-
exports.Ctr = Ctr;
|
package/sys/master.js
CHANGED
|
@@ -1,55 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
1
|
/**
|
|
37
2
|
* Project: Kebab, User: JianSuoQiYue
|
|
38
3
|
* Date: 2019-5-2 21:03:42
|
|
39
4
|
* Last: 2020-3-7 10:33:17, 2022-07-22 13:40:10, 2022-09-06 22:40:58, 2024-2-7 01:44:59, 2024-7-2 15:17:09, 2025-6-13 13:06:43
|
|
40
5
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
6
|
+
import * as os from 'os';
|
|
7
|
+
import * as cluster from 'cluster';
|
|
8
|
+
import * as http from 'http';
|
|
44
9
|
// --- 库和定义 ---
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
10
|
+
import * as kebab from '../index.js';
|
|
11
|
+
import * as sRoute from '../sys/route.js';
|
|
12
|
+
import * as lCore from '../lib/core.js';
|
|
13
|
+
import * as lFs from '../lib/fs.js';
|
|
14
|
+
import * as lText from '../lib/text.js';
|
|
15
|
+
import * as lCrypto from '../lib/crypto.js';
|
|
16
|
+
import * as lTime from '../lib/time.js';
|
|
17
|
+
import * as lZip from '../lib/zip.js';
|
|
53
18
|
/** --- 当前运行中的子进程列表 --- */
|
|
54
19
|
const workerList = {};
|
|
55
20
|
/**
|
package/sys/mod.d.ts
CHANGED
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
* Date: 2019-6-4 21:35
|
|
4
4
|
* Last: 2020-4-14 13:33:51, 2022-07-23 16:01:34, 2022-09-06 22:59:26, 2023-5-24 19:11:37, 2023-6-13 21:47:58, 2023-7-10 18:54:03, 2023-8-23 17:03:16, 2023-12-11 15:21:22, 2023-12-20 23:12:03, 2024-3-8 16:05:29, 2024-3-20 19:58:15, 2024-8-11 21:14:54, 2024-10-5 14:00:22, 2024-12-14 19:58:34
|
|
5
5
|
*/
|
|
6
|
-
import * as lSql from '
|
|
7
|
-
import * as lDb from '
|
|
8
|
-
import * as sCtr from '
|
|
9
|
-
import * as types from '
|
|
6
|
+
import * as lSql from '../lib/sql.js';
|
|
7
|
+
import * as lDb from '../lib/db.js';
|
|
8
|
+
import * as sCtr from '../sys/ctr.js';
|
|
9
|
+
import * as types from '../types/index.js';
|
|
10
|
+
/** --- 只获取变量 --- */
|
|
11
|
+
type TOnlyProperties<T> = {
|
|
12
|
+
[K in keyof T as T[K] extends (...args: any[]) => any ? never : K]: T[K];
|
|
13
|
+
};
|
|
10
14
|
/** --- 条数列表 --- */
|
|
11
15
|
declare class Rows<T extends Mod> implements types.Rows<T> {
|
|
12
16
|
private readonly _items;
|
|
@@ -450,7 +454,7 @@ export default class Mod {
|
|
|
450
454
|
/**
|
|
451
455
|
* --- 获取值对象 ---
|
|
452
456
|
*/
|
|
453
|
-
toArray(): Record<string, any>;
|
|
457
|
+
toArray<TC extends abstract new (...args: any) => any>(): TOnlyProperties<InstanceType<TC>> & Record<string, any>;
|
|
454
458
|
/**
|
|
455
459
|
* --- 获取当前设置要提交的数据 ---
|
|
456
460
|
*/
|
package/sys/mod.js
CHANGED
|
@@ -1,48 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
1
|
/**
|
|
37
2
|
* Project: Mutton, User: JianSuoQiYue
|
|
38
3
|
* Date: 2019-6-4 21:35
|
|
39
4
|
* Last: 2020-4-14 13:33:51, 2022-07-23 16:01:34, 2022-09-06 22:59:26, 2023-5-24 19:11:37, 2023-6-13 21:47:58, 2023-7-10 18:54:03, 2023-8-23 17:03:16, 2023-12-11 15:21:22, 2023-12-20 23:12:03, 2024-3-8 16:05:29, 2024-3-20 19:58:15, 2024-8-11 21:14:54, 2024-10-5 14:00:22, 2024-12-14 19:58:34
|
|
40
5
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
6
|
+
import * as lSql from '../lib/sql.js';
|
|
7
|
+
import * as lTime from '../lib/time.js';
|
|
8
|
+
import * as lCore from '../lib/core.js';
|
|
9
|
+
import * as lText from '../lib/text.js';
|
|
10
|
+
import * as sCtr from '../sys/ctr.js';
|
|
46
11
|
/** --- 条数列表 --- */
|
|
47
12
|
class Rows {
|
|
48
13
|
constructor(initialItems = []) {
|
|
@@ -971,6 +936,7 @@ class Mod {
|
|
|
971
936
|
return Array.isArray(list) ? new Rows(list) : list;
|
|
972
937
|
}
|
|
973
938
|
// --- 单表 ---
|
|
939
|
+
/** --- 要追加的 values --- */
|
|
974
940
|
const contain = this._contain ? lCore.clone(this._contain.list) : null;
|
|
975
941
|
const r = await this._db.query(this._sql.getSql(), this._sql.getData());
|
|
976
942
|
if (r.rows === null) {
|
|
@@ -990,7 +956,7 @@ class Mod {
|
|
|
990
956
|
if (this._contain && contain?.length) {
|
|
991
957
|
const csql = this._sql.copy(undefined, {
|
|
992
958
|
'where': {
|
|
993
|
-
[this._contain.key]:
|
|
959
|
+
[this._contain.key]: contain,
|
|
994
960
|
}
|
|
995
961
|
});
|
|
996
962
|
cr = await this._db.query(csql.getSql(), csql.getData());
|
|
@@ -1137,7 +1103,7 @@ class Mod {
|
|
|
1137
1103
|
if (this._contain && contain?.length) {
|
|
1138
1104
|
const csql = this._sql.copy(undefined, {
|
|
1139
1105
|
'where': {
|
|
1140
|
-
[this._contain.key]:
|
|
1106
|
+
[this._contain.key]: contain,
|
|
1141
1107
|
}
|
|
1142
1108
|
});
|
|
1143
1109
|
cr = await this._db.query(csql.getSql(), csql.getData());
|
|
@@ -1464,4 +1430,4 @@ Mod._$key = '';
|
|
|
1464
1430
|
Mod._$index = '';
|
|
1465
1431
|
/** ---- 可开启软删软更新软新增 --- */
|
|
1466
1432
|
Mod._$soft = false;
|
|
1467
|
-
|
|
1433
|
+
export default Mod;
|
package/sys/route.d.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import * as http from 'http';
|
|
7
7
|
import * as http2 from 'http2';
|
|
8
8
|
import * as net from 'net';
|
|
9
|
-
import * as sCtr from './ctr';
|
|
10
|
-
import * as types from '
|
|
9
|
+
import * as sCtr from './ctr.js';
|
|
10
|
+
import * as types from '../types/index.js';
|
|
11
11
|
/**
|
|
12
12
|
* --- 清除已经加载的虚拟主机配置文件 ---
|
|
13
13
|
*/
|
package/sys/route.js
CHANGED
|
@@ -1,76 +1,35 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.clearKebabConfigs = clearKebabConfigs;
|
|
37
|
-
exports.run = run;
|
|
38
|
-
exports.unlinkUploadFiles = unlinkUploadFiles;
|
|
39
|
-
exports.waitCtr = waitCtr;
|
|
40
|
-
exports.trimPost = trimPost;
|
|
41
|
-
exports.getFormData = getFormData;
|
|
42
1
|
/**
|
|
43
2
|
* Project: Kebab, User: JianSuoQiYue
|
|
44
3
|
* Date: 2019-4-15 13:40
|
|
45
4
|
* Last: 2020-4-14 13:52:00, 2022-09-07 01:43:31, 2023-12-29 17:24:03, 2024-2-7 00:28:50, 2024-6-6 15:15:54, 2025-6-13 19:23:53
|
|
46
5
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
6
|
+
import * as http from 'http';
|
|
7
|
+
import * as stream from 'stream';
|
|
49
8
|
// --- 第三方 ---
|
|
50
|
-
|
|
9
|
+
import * as ws from '@litert/websocket';
|
|
51
10
|
// --- 库和定义 ---
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
11
|
+
import * as lFs from '../lib/fs.js';
|
|
12
|
+
import * as lZlib from '../lib/zlib.js';
|
|
13
|
+
import * as lCore from '../lib/core.js';
|
|
14
|
+
import * as lText from '../lib/text.js';
|
|
15
|
+
import * as lTime from '../lib/time.js';
|
|
16
|
+
import * as lResponse from '../lib/net/response.js';
|
|
17
|
+
import * as lWs from '../lib/ws.js';
|
|
18
|
+
import * as sCtr from './ctr.js';
|
|
19
|
+
import * as kebab from '../index.js';
|
|
61
20
|
/** --- 动态层 kebab.json 缓存(文件路径: 最终合并值) --- */
|
|
62
21
|
let kebabConfigs = {};
|
|
63
22
|
/**
|
|
64
23
|
* --- 清除已经加载的虚拟主机配置文件 ---
|
|
65
24
|
*/
|
|
66
|
-
function clearKebabConfigs() {
|
|
25
|
+
export function clearKebabConfigs() {
|
|
67
26
|
kebabConfigs = {};
|
|
68
27
|
}
|
|
69
28
|
/**
|
|
70
29
|
* --- 若为动态路径则执行此函数,此函数不进行判断 kebab.json 是否存在 ---
|
|
71
30
|
* @param data 传导的数据
|
|
72
31
|
*/
|
|
73
|
-
async function run(data) {
|
|
32
|
+
export async function run(data) {
|
|
74
33
|
// --- 检测 path 是否是静态文件 ---
|
|
75
34
|
if (/^(stc\/.*|favicon.\w+?\??.*|apple[\w-]+?\.png\??.*|[\w-]+?\.txt\??.*|[\w-]+?\.html\??.*)/.test(data.path)) {
|
|
76
35
|
return false;
|
|
@@ -129,8 +88,9 @@ async function run(data) {
|
|
|
129
88
|
'startTime': process.hrtime.bigint(),
|
|
130
89
|
'startMemory': process.memoryUsage().rss,
|
|
131
90
|
// --- 环境判断 ---
|
|
132
|
-
'mobile': data.req.headers['user-agent'] ? data.req.headers['user-agent'].includes('mobile') : false,
|
|
133
|
-
'wechat': data.req.headers['user-agent'] ? data.req.headers['user-agent'].includes('micromessenger') : false,
|
|
91
|
+
'mobile': data.req.headers['user-agent'] ? data.req.headers['user-agent'].toLowerCase().includes('mobile') : false,
|
|
92
|
+
'wechat': data.req.headers['user-agent'] ? data.req.headers['user-agent'].toLowerCase().includes('micromessenger') : false,
|
|
93
|
+
'miniprogram': data.req.headers['referer'] ? (data.req.headers['referer'].toLowerCase().startsWith('https://servicewechat.com/') ? 'wechat' : '') : '',
|
|
134
94
|
'https': data.uri.protocol === 'https' ? true : false,
|
|
135
95
|
'host': data.uri.host ?? '',
|
|
136
96
|
'hostname': data.uri.hostname ?? '',
|
|
@@ -293,7 +253,7 @@ async function run(data) {
|
|
|
293
253
|
return true;
|
|
294
254
|
}
|
|
295
255
|
// --- 加载控制器文件 ---
|
|
296
|
-
const ctrCtr = (await
|
|
256
|
+
const ctrCtr = (await import((!filePath.startsWith('/') ? '/' : '') + filePath)).default;
|
|
297
257
|
const cctr = new ctrCtr(config, data.req);
|
|
298
258
|
// --- 先处理 web socket 的情况 ---
|
|
299
259
|
let wsSocket;
|
|
@@ -414,7 +374,7 @@ async function run(data) {
|
|
|
414
374
|
return true;
|
|
415
375
|
}
|
|
416
376
|
// --- 加载中间控制器 ---
|
|
417
|
-
const middleCtr = (await
|
|
377
|
+
const middleCtr = (await import((!config.const.ctrPath.startsWith('/') ? '/' : '') + config.const.ctrPath + 'middle.js')).default;
|
|
418
378
|
const middle = new middleCtr(config, data.req, data.res);
|
|
419
379
|
/** --- 可能存在的最终控制器 --- */
|
|
420
380
|
let cctr = null;
|
|
@@ -474,7 +434,7 @@ async function run(data) {
|
|
|
474
434
|
return true;
|
|
475
435
|
}
|
|
476
436
|
// --- 加载控制器文件 ---
|
|
477
|
-
const ctrCtr = (await
|
|
437
|
+
const ctrCtr = (await import((!filePath.startsWith('/') ? '/' : '') + filePath)).default;
|
|
478
438
|
cctr = new ctrCtr(config, data.req, data.res ?? data.socket);
|
|
479
439
|
// --- 对信息进行初始化 ---
|
|
480
440
|
cctr.setPrototype('_timer', middle.getPrototype('_timer'));
|
|
@@ -794,7 +754,7 @@ function getWsCtrName(path) {
|
|
|
794
754
|
* --- 删除本次请求所有已上传的临时文件, Mutton: false, Kebab: true ---
|
|
795
755
|
* @param cctr Ctr 对象 或 files
|
|
796
756
|
*/
|
|
797
|
-
async function unlinkUploadFiles(cctr) {
|
|
757
|
+
export async function unlinkUploadFiles(cctr) {
|
|
798
758
|
const cfiles = cctr instanceof sCtr.Ctr ? cctr.getPrototype('_files') : cctr;
|
|
799
759
|
for (const name in cfiles) {
|
|
800
760
|
let files = cfiles[name];
|
|
@@ -811,7 +771,7 @@ async function unlinkUploadFiles(cctr) {
|
|
|
811
771
|
* --- 此时其实已经给客户端返回了,此处等待不消耗客户端的等待时间 ---
|
|
812
772
|
* @param cctr 要等待的控制器 ---
|
|
813
773
|
*/
|
|
814
|
-
async function waitCtr(cctr) {
|
|
774
|
+
export async function waitCtr(cctr) {
|
|
815
775
|
// --- 先判断异步任务是否结束 ---
|
|
816
776
|
const waitInfo = cctr.getPrototype('_waitInfo');
|
|
817
777
|
if (waitInfo.asyncTask.count) {
|
|
@@ -831,7 +791,7 @@ async function waitCtr(cctr) {
|
|
|
831
791
|
* --- 将 POST 数据的值执行 trim ---
|
|
832
792
|
* @param post
|
|
833
793
|
*/
|
|
834
|
-
function trimPost(post) {
|
|
794
|
+
export function trimPost(post) {
|
|
835
795
|
for (const key in post) {
|
|
836
796
|
const val = post[key];
|
|
837
797
|
if (typeof val === 'string') {
|
|
@@ -883,7 +843,7 @@ function getPost(req) {
|
|
|
883
843
|
* @param req 请求头
|
|
884
844
|
* @param events 文件处理情况
|
|
885
845
|
*/
|
|
886
|
-
function getFormData(req, events = {}) {
|
|
846
|
+
export function getFormData(req, events = {}) {
|
|
887
847
|
return new Promise(function (resolve) {
|
|
888
848
|
const ct = req.headers['content-type'] ?? '';
|
|
889
849
|
if (!ct) {
|
package/types/index.d.ts
CHANGED
package/www/example/ctr/main.js
CHANGED
|
@@ -1,42 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const ctr = __importStar(require("~/sys/ctr"));
|
|
37
|
-
class default_1 extends ctr.Ctr {
|
|
1
|
+
import * as ctr from '../../../sys/ctr.js';
|
|
2
|
+
export default class extends ctr.Ctr {
|
|
38
3
|
index() {
|
|
39
4
|
return `<a href="${this._config.const.urlBase}test">Hello world! Click here to visit demo.</a>`;
|
|
40
5
|
}
|
|
41
6
|
}
|
|
42
|
-
exports.default = default_1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as ctr from '
|
|
2
|
-
import * as types from '
|
|
1
|
+
import * as ctr from '../../../sys/ctr.js';
|
|
2
|
+
import * as types from '../../../types/index.js';
|
|
3
3
|
export default class extends ctr.Ctr {
|
|
4
4
|
onLoad(): string | boolean;
|
|
5
5
|
onUnload(rtn: string | boolean | types.DbValue[]): string | boolean | types.DbValue[];
|
|
@@ -1,40 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const ctr = __importStar(require("~/sys/ctr"));
|
|
37
|
-
class default_1 extends ctr.Ctr {
|
|
1
|
+
import * as ctr from '../../../sys/ctr.js';
|
|
2
|
+
export default class extends ctr.Ctr {
|
|
38
3
|
onLoad() {
|
|
39
4
|
if (this._config.const.path !== 'test/middle') {
|
|
40
5
|
return true;
|
|
@@ -54,4 +19,3 @@ class default_1 extends ctr.Ctr {
|
|
|
54
19
|
return rtn;
|
|
55
20
|
}
|
|
56
21
|
}
|
|
57
|
-
exports.default = default_1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import * as sCtr from '
|
|
3
|
-
import * as types from '
|
|
2
|
+
import * as sCtr from '../../../sys/ctr.js';
|
|
3
|
+
import * as types from '../../../types/index.js';
|
|
4
4
|
export default class extends sCtr.Ctr {
|
|
5
5
|
private _internalUrl;
|
|
6
6
|
onLoad(): Array<string | number> | boolean;
|