@maiyunnet/kebab 2.0.9 → 2.0.10

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 (65) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +1 -1
  3. package/lib/captcha.js +2 -2
  4. package/lib/consistent.js +1 -1
  5. package/lib/core.d.ts +3 -3
  6. package/lib/core.js +8 -8
  7. package/lib/crypto.js +2 -2
  8. package/lib/db.d.ts +2 -2
  9. package/lib/db.js +5 -5
  10. package/lib/dns.d.ts +1 -1
  11. package/lib/dns.js +5 -5
  12. package/lib/jwt.d.ts +3 -3
  13. package/lib/jwt.js +4 -4
  14. package/lib/kv.d.ts +2 -2
  15. package/lib/kv.js +2 -2
  16. package/lib/lan.js +1 -1
  17. package/lib/net/formdata.js +2 -2
  18. package/lib/net/request.d.ts +1 -1
  19. package/lib/net/request.js +1 -1
  20. package/lib/net/response.d.ts +1 -1
  21. package/lib/net.d.ts +2 -2
  22. package/lib/net.js +4 -4
  23. package/lib/s3.d.ts +1 -1
  24. package/lib/s3.js +2 -2
  25. package/lib/scan.d.ts +3 -3
  26. package/lib/scan.js +6 -6
  27. package/lib/session.d.ts +3 -3
  28. package/lib/session.js +6 -6
  29. package/lib/sql.d.ts +2 -2
  30. package/lib/sql.js +3 -3
  31. package/lib/ssh/sftp.js +2 -2
  32. package/lib/ssh/shell.js +1 -1
  33. package/lib/text.d.ts +1 -1
  34. package/lib/text.js +1 -1
  35. package/lib/time.d.ts +1 -1
  36. package/lib/time.js +1 -1
  37. package/lib/ws.d.ts +2 -2
  38. package/lib/ws.js +2 -2
  39. package/lib/zip.d.ts +1 -1
  40. package/lib/zip.js +1 -1
  41. package/package.json +1 -1
  42. package/sys/child.js +6 -6
  43. package/sys/cmd.js +6 -6
  44. package/sys/ctr.js +1 -1
  45. package/sys/master.js +8 -8
  46. package/sys/mod.d.ts +6 -4
  47. package/sys/mod.js +32 -21
  48. package/sys/route.d.ts +1 -1
  49. package/sys/route.js +8 -8
  50. package/www/example/ctr/main.d.ts +1 -1
  51. package/www/example/ctr/main.js +1 -1
  52. package/www/example/ctr/middle.d.ts +2 -2
  53. package/www/example/ctr/middle.js +1 -1
  54. package/www/example/ctr/test.d.ts +2 -2
  55. package/www/example/ctr/test.js +24 -21
  56. package/www/example/mod/test.d.ts +4 -2
  57. package/www/example/mod/test.js +16 -13
  58. package/www/example/mod/testdata.d.ts +1 -1
  59. package/www/example/mod/testdata.js +1 -1
  60. package/www/example/ws/mproxy.d.ts +1 -1
  61. package/www/example/ws/mproxy.js +2 -2
  62. package/www/example/ws/rproxy.d.ts +1 -1
  63. package/www/example/ws/rproxy.js +2 -2
  64. package/www/example/ws/test.d.ts +1 -1
  65. package/www/example/ws/test.js +2 -2
package/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * --- npx tsc-alias -w ---
7
7
  */
8
8
  /** --- 当前系统版本号 --- */
9
- export declare const VER = "2.0.9";
9
+ export declare const VER = "2.0.10";
10
10
  /** --- 框架根目录,以 / 结尾 --- */
11
11
  export declare const ROOT_PATH: string;
12
12
  export declare const LIB_PATH: string;
package/index.js CHANGED
@@ -9,7 +9,7 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.MOD_CWD = exports.FTMP_CWD = exports.IND_CWD = exports.WWW_CWD = exports.LOG_CWD = exports.LIB_CWD = exports.VHOST_CWD = exports.CERT_CWD = exports.CONF_CWD = exports.ROOT_CWD = exports.SYS_PATH = exports.LIB_PATH = exports.ROOT_PATH = exports.VER = void 0;
11
11
  /** --- 当前系统版本号 --- */
12
- exports.VER = '2.0.9';
12
+ exports.VER = '2.0.10';
13
13
  // --- 服务端用的路径 ---
14
14
  /** --- /xxx/xxx --- */
15
15
  const dirname = __dirname.replace(/\\/g, '/');
package/lib/captcha.js CHANGED
@@ -42,8 +42,8 @@ exports.get = get;
42
42
  */
43
43
  const svgCaptcha = __importStar(require("svg-captcha"));
44
44
  const mime = __importStar(require("@litert/mime"));
45
- const core = __importStar(require("../lib/core"));
46
- const kebab = __importStar(require("../index"));
45
+ const core = __importStar(require("~/lib/core"));
46
+ const kebab = __importStar(require("~/index"));
47
47
  svgCaptcha.loadFont(kebab.LIB_PATH + 'captcha/zcool-addict-italic.ttf');
48
48
  class Captcha {
49
49
  constructor(opt) {
package/lib/consistent.js CHANGED
@@ -45,7 +45,7 @@ exports.findInCircle = findInCircle;
45
45
  * Date: 2022-09-12 10:51:16
46
46
  * Last: 2022-09-12 10:51:20, 2023-3-17 10:52:04, 2023-11-15 11:45:28
47
47
  */
48
- const crypto = __importStar(require("../lib/crypto"));
48
+ const crypto = __importStar(require("~/lib/crypto"));
49
49
  class Consistent {
50
50
  constructor(vcount) {
51
51
  /** --- 虚拟节点数量 --- */
package/lib/core.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as http from 'http';
2
2
  import * as http2 from 'http2';
3
3
  import * as stream from 'stream';
4
- import * as lResponse from '../lib/net/response';
5
- import * as sCtr from '../sys/ctr';
6
- import * as types from '../types';
4
+ import * as lResponse from '~/lib/net/response';
5
+ import * as sCtr from '~/sys/ctr';
6
+ import * as types from '~/types';
7
7
  /** --- 全局参数 --- */
8
8
  export declare const globalConfig: types.IConfig & {
9
9
  'httpPort': number;
package/lib/core.js CHANGED
@@ -66,14 +66,14 @@ exports.display = display;
66
66
  */
67
67
  const cp = __importStar(require("child_process"));
68
68
  const stream = __importStar(require("stream"));
69
- const lTime = __importStar(require("../lib/time"));
70
- const lFs = __importStar(require("../lib/fs"));
71
- const lText = __importStar(require("../lib/text"));
72
- const lNet = __importStar(require("../lib/net"));
73
- const lCrypto = __importStar(require("../lib/crypto"));
74
- const lResponse = __importStar(require("../lib/net/response"));
75
- const sCtr = __importStar(require("../sys/ctr"));
76
- const kebab = __importStar(require("../index"));
69
+ const lTime = __importStar(require("~/lib/time"));
70
+ const lFs = __importStar(require("~/lib/fs"));
71
+ const lText = __importStar(require("~/lib/text"));
72
+ const lNet = __importStar(require("~/lib/net"));
73
+ const lCrypto = __importStar(require("~/lib/crypto"));
74
+ const lResponse = __importStar(require("~/lib/net/response"));
75
+ const sCtr = __importStar(require("~/sys/ctr"));
76
+ const kebab = __importStar(require("~/index"));
77
77
  /** --- 全局参数 --- */
78
78
  exports.globalConfig = {};
79
79
  /**
package/lib/crypto.js CHANGED
@@ -61,8 +61,8 @@ exports.uuid = uuid;
61
61
  */
62
62
  const crypto = __importStar(require("crypto"));
63
63
  // --- 库和定义 ---
64
- const lFs = __importStar(require("../lib/fs"));
65
- const lCore = __importStar(require("../lib/core"));
64
+ const lFs = __importStar(require("~/lib/fs"));
65
+ const lCore = __importStar(require("~/lib/core"));
66
66
  // --- 非对称加密 ---
67
67
  /**
68
68
  * --- 创建非对称秘钥 ---
package/lib/db.d.ts CHANGED
@@ -4,8 +4,8 @@
4
4
  * Last: 2020-4-13 15:34:45, 2022-09-12 13:10:34, 2023-5-24 18:29:38, 2024-7-11 14:37:54, 2024-8-25 00:32:53, 2024-9-22 17:30:47
5
5
  */
6
6
  import * as mysql2 from 'mysql2/promise';
7
- import * as ctr from '../sys/ctr';
8
- import * as types from '../types';
7
+ import * as ctr from '~/sys/ctr';
8
+ import * as types from '~/types';
9
9
  /** --- query 返回的数据 --- */
10
10
  export interface IData {
11
11
  'rows': any[] | null;
package/lib/db.js CHANGED
@@ -45,11 +45,11 @@ exports.getConnectionList = getConnectionList;
45
45
  // --- 第三方 ---
46
46
  const mysql2 = __importStar(require("mysql2/promise"));
47
47
  // --- 库和定义 ---
48
- const time = __importStar(require("../lib/time"));
49
- const lSql = __importStar(require("../lib/sql"));
50
- const core = __importStar(require("../lib/core"));
51
- const text = __importStar(require("../lib/text"));
52
- const ctr = __importStar(require("../sys/ctr"));
48
+ const time = __importStar(require("~/lib/time"));
49
+ const lSql = __importStar(require("~/lib/sql"));
50
+ const core = __importStar(require("~/lib/core"));
51
+ const text = __importStar(require("~/lib/text"));
52
+ const ctr = __importStar(require("~/sys/ctr"));
53
53
  /** --- 连接列表池 --- */
54
54
  const connections = [];
55
55
  /**
package/lib/dns.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Date: 2019-6-19
4
4
  * Last: 2022-09-12 20:58:07, 2024-2-21 17:55:54, 2025-6-13 19:08:56
5
5
  */
6
- import * as ctr from '../sys/ctr';
6
+ import * as ctr from '~/sys/ctr';
7
7
  /**
8
8
  * 0.DNSPod:https://www.dnspod.cn/docs/index.html(腾讯云也请使用 DNSPod 的 API)
9
9
  * 1.阿里云:https://help.aliyun.com/document_detail/29745.html
package/lib/dns.js CHANGED
@@ -41,11 +41,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
41
41
  exports.Dns = exports.ERecordLine = exports.RECORD_TYPE = exports.ESERVICE = void 0;
42
42
  exports.get = get;
43
43
  // --- 库和定义 ---
44
- const net = __importStar(require("../lib/net"));
45
- const core = __importStar(require("../lib/core"));
46
- const text = __importStar(require("../lib/text"));
47
- const crypto = __importStar(require("../lib/crypto"));
48
- const response = __importStar(require("../lib/net/response"));
44
+ const net = __importStar(require("~/lib/net"));
45
+ const core = __importStar(require("~/lib/core"));
46
+ const text = __importStar(require("~/lib/text"));
47
+ const crypto = __importStar(require("~/lib/crypto"));
48
+ const response = __importStar(require("~/lib/net/response"));
49
49
  /**
50
50
  * 0.DNSPod:https://www.dnspod.cn/docs/index.html(腾讯云也请使用 DNSPod 的 API)
51
51
  * 1.阿里云:https://help.aliyun.com/document_detail/29745.html
package/lib/jwt.d.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  * Date: 2023-1-31 20:34:47
4
4
  * Last: 2023-1-31 20:34:47, 2023-12-8 13:55:09
5
5
  */
6
- import * as kv from '../lib/kv';
7
- import * as ctr from '../sys/ctr';
8
- import * as types from '../types';
6
+ import * as kv from '~/lib/kv';
7
+ import * as ctr from '~/sys/ctr';
8
+ import * as types from '~/types';
9
9
  export interface IOptions {
10
10
  'name'?: string;
11
11
  'ttl'?: number;
package/lib/jwt.js CHANGED
@@ -44,10 +44,10 @@ exports.decode = decode;
44
44
  exports.block = block;
45
45
  exports.get = get;
46
46
  // --- 库和定义 ---
47
- const lCore = __importStar(require("../lib/core"));
48
- const lTime = __importStar(require("../lib/time"));
49
- const lText = __importStar(require("../lib/text"));
50
- const lCrypto = __importStar(require("../lib/crypto"));
47
+ const lCore = __importStar(require("~/lib/core"));
48
+ const lTime = __importStar(require("~/lib/time"));
49
+ const lText = __importStar(require("~/lib/text"));
50
+ const lCrypto = __importStar(require("~/lib/crypto"));
51
51
  class Jwt {
52
52
  /**
53
53
  * --- 初始化函数,相当于 construct ---
package/lib/kv.d.ts CHANGED
@@ -4,8 +4,8 @@
4
4
  * Last: 2020-3-28 18:54:04, 2022-09-12 23:24:45, 2022-09-22 01:06:22, 2024-2-21 13:32:56, 2024-8-21 16:59:57
5
5
  */
6
6
  import * as redis from '@litert/redis';
7
- import * as ctr from '../sys/ctr';
8
- import * as types from '../types';
7
+ import * as ctr from '~/sys/ctr';
8
+ import * as types from '~/types';
9
9
  /** --- 连接信息 --- */
10
10
  export interface IConnectionInfo {
11
11
  'id': number;
package/lib/kv.js CHANGED
@@ -46,8 +46,8 @@ exports.getConnectionList = getConnectionList;
46
46
  // --- 第三方 ---
47
47
  const redis = __importStar(require("@litert/redis"));
48
48
  // --- 库和定义 ---
49
- const time = __importStar(require("../lib/time"));
50
- const text = __importStar(require("../lib/text"));
49
+ const time = __importStar(require("~/lib/time"));
50
+ const text = __importStar(require("~/lib/text"));
51
51
  /** --- 连接列表(同一个 host、port、index、auth 只有一个连接) --- */
52
52
  const connections = [];
53
53
  /**
package/lib/lan.js CHANGED
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.card = card;
37
37
  exports.scan = scan;
38
38
  const os = __importStar(require("os"));
39
- const lCore = __importStar(require("../lib/core"));
39
+ const lCore = __importStar(require("~/lib/core"));
40
40
  /**
41
41
  * --- 获取当前网卡的 IP、MAC 信息 ---
42
42
  */
@@ -41,8 +41,8 @@ exports.FormData = void 0;
41
41
  */
42
42
  const stream = __importStar(require("stream"));
43
43
  const mime = __importStar(require("@litert/mime"));
44
- const core = __importStar(require("../../lib/core"));
45
- const fs = __importStar(require("../../lib/fs"));
44
+ const core = __importStar(require("~/lib/core"));
45
+ const fs = __importStar(require("~/lib/fs"));
46
46
  class FormData extends stream.Readable {
47
47
  constructor() {
48
48
  super(...arguments);
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as stream from 'stream';
7
7
  import * as response from './response';
8
- import * as types from '../../types';
8
+ import * as types from '~/types';
9
9
  export declare class Request {
10
10
  /** --- get 或 post 的数据 --- */
11
11
  private _data;
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Request = void 0;
37
- const net = __importStar(require("../../lib/net"));
37
+ const net = __importStar(require("~/lib/net"));
38
38
  class Request {
39
39
  constructor(url) {
40
40
  /** --- get 或 post 的数据 --- */
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as hc from '@litert/http-client';
7
7
  import * as nStream from 'stream';
8
- import * as types from '../../types';
8
+ import * as types from '~/types';
9
9
  export declare class Response {
10
10
  /** --- httpClient 请求对象 --- */
11
11
  private readonly _req;
package/lib/net.d.ts CHANGED
@@ -7,8 +7,8 @@
7
7
  import * as stream from 'stream';
8
8
  import * as http from 'http';
9
9
  import * as http2 from 'http2';
10
- import * as ctr from '../sys/ctr';
11
- import * as types from '../types';
10
+ import * as ctr from '~/sys/ctr';
11
+ import * as types from '~/types';
12
12
  import * as fd from './net/formdata';
13
13
  import * as lRequest from './net/request';
14
14
  import * as response from './net/response';
package/lib/net.js CHANGED
@@ -57,10 +57,10 @@ const stream = __importStar(require("stream"));
57
57
  // --- 第三方 ---
58
58
  const hc = __importStar(require("@litert/http-client"));
59
59
  // --- 库和定义 ---
60
- const fs = __importStar(require("../lib/fs"));
61
- const text = __importStar(require("../lib/text"));
62
- const time = __importStar(require("../lib/time"));
63
- const kebab = __importStar(require("../index"));
60
+ const fs = __importStar(require("~/lib/fs"));
61
+ const text = __importStar(require("~/lib/text"));
62
+ const time = __importStar(require("~/lib/time"));
63
+ const kebab = __importStar(require("~/index"));
64
64
  // --- 自己 ---
65
65
  const fd = __importStar(require("./net/formdata"));
66
66
  const lRequest = __importStar(require("./net/request"));
package/lib/s3.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as s3 from '@aws-sdk/client-s3';
7
7
  import * as stream from 'stream';
8
- import * as sCtr from '../sys/ctr';
8
+ import * as sCtr from '~/sys/ctr';
9
9
  /**
10
10
  * s3 文档:https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/
11
11
  */
package/lib/s3.js CHANGED
@@ -43,8 +43,8 @@ exports.get = get;
43
43
  // --- 库和定义 ---
44
44
  const s3 = __importStar(require("@aws-sdk/client-s3"));
45
45
  const ls = __importStar(require("@aws-sdk/lib-storage"));
46
- const lCore = __importStar(require("../lib/core"));
47
- const lText = __importStar(require("../lib/text"));
46
+ const lCore = __importStar(require("~/lib/core"));
47
+ const lText = __importStar(require("~/lib/text"));
48
48
  /**
49
49
  * s3 文档:https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/
50
50
  */
package/lib/scan.d.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  * Date: 2022-09-24 15:23:25
4
4
  * Last: 2022-09-24 15:23:25, 2022-9-26 12:37:01, 2022-12-29 00:11:16
5
5
  */
6
- import * as lDb from '../lib/db';
7
- import * as lKv from '../lib/kv';
8
- import * as sCtr from '../sys/ctr';
6
+ import * as lDb from '~/lib/db';
7
+ import * as lKv from '~/lib/kv';
8
+ import * as sCtr from '~/sys/ctr';
9
9
  /** --- Scan 设置的选项 --- */
10
10
  export interface IOptions {
11
11
  'ttl'?: number;
package/lib/scan.js CHANGED
@@ -56,12 +56,12 @@ CREATE TABLE IF NOT EXISTS `scan` (
56
56
  KEY `time_exp` (`time_exp`)
57
57
  ) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
58
58
  */
59
- const lCore = __importStar(require("../lib/core"));
60
- const lDb = __importStar(require("../lib/db"));
61
- const lKv = __importStar(require("../lib/kv"));
62
- const lSql = __importStar(require("../lib/sql"));
63
- const lTime = __importStar(require("../lib/time"));
64
- const lText = __importStar(require("../lib/text"));
59
+ const lCore = __importStar(require("~/lib/core"));
60
+ const lDb = __importStar(require("~/lib/db"));
61
+ const lKv = __importStar(require("~/lib/kv"));
62
+ const lSql = __importStar(require("~/lib/sql"));
63
+ const lTime = __importStar(require("~/lib/time"));
64
+ const lText = __importStar(require("~/lib/text"));
65
65
  class Scan {
66
66
  constructor(link, token, opt = {}) {
67
67
  this._sql = null;
package/lib/session.d.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  * Date: 2019-6-5 22:01:40
4
4
  * Last: 2020-3-30 00:11:15, 2022-12-29 00:10:28, 2023-5-24 18:59:27
5
5
  */
6
- import * as db from '../lib/db';
7
- import * as kv from '../lib/kv';
8
- import * as ctr from '../sys/ctr';
6
+ import * as db from '~/lib/db';
7
+ import * as kv from '~/lib/kv';
8
+ import * as ctr from '~/sys/ctr';
9
9
  export interface IOptions {
10
10
  'name'?: string;
11
11
  'ttl'?: number;
package/lib/session.js CHANGED
@@ -53,12 +53,12 @@ CREATE TABLE `session` (
53
53
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
54
54
  */
55
55
  // --- 库和定义 ---
56
- const core = __importStar(require("../lib/core"));
57
- const time = __importStar(require("../lib/time"));
58
- const db = __importStar(require("../lib/db"));
59
- const kv = __importStar(require("../lib/kv"));
60
- const sql = __importStar(require("../lib/sql"));
61
- const text = __importStar(require("../lib/text"));
56
+ const core = __importStar(require("~/lib/core"));
57
+ const time = __importStar(require("~/lib/time"));
58
+ const db = __importStar(require("~/lib/db"));
59
+ const kv = __importStar(require("~/lib/kv"));
60
+ const sql = __importStar(require("~/lib/sql"));
61
+ const text = __importStar(require("~/lib/text"));
62
62
  class Session {
63
63
  constructor() {
64
64
  /** --- 当前 Session 的 token --- */
package/lib/sql.d.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  * Date: 2019-5-27 20:18:50
4
4
  * Last: 2020-3-29 19:37:25, 2022-07-24 22:38:11, 2023-5-24 18:49:18, 2023-6-13 22:20:21, 2023-12-11 13:58:54, 2023-12-14 13:14:40, 2023-12-21 00:04:40, 2024-4-11 19:29:29, 2024-9-2 17:15:28
5
5
  */
6
- import * as ctr from '../sys/ctr';
7
- import * as types from '../types';
6
+ import * as ctr from '~/sys/ctr';
7
+ import * as types from '~/types';
8
8
  export declare class Sql {
9
9
  /** --- 前置 --- */
10
10
  private readonly _pre;
package/lib/sql.js CHANGED
@@ -43,12 +43,12 @@ exports.get = get;
43
43
  exports.format = format;
44
44
  exports.aoMix = aoMix;
45
45
  exports.column = column;
46
- const lText = __importStar(require("../lib/text"));
47
- const lCore = __importStar(require("../lib/core"));
46
+ const lText = __importStar(require("~/lib/text"));
47
+ const lCore = __importStar(require("~/lib/core"));
48
48
  // --- 第三方 ---
49
49
  const mysql2 = __importStar(require("mysql2/promise"));
50
50
  // --- 库和定义 ---
51
- const ctr = __importStar(require("../sys/ctr"));
51
+ const ctr = __importStar(require("~/sys/ctr"));
52
52
  /** --- filed 用 token --- */
53
53
  let columnToken = '';
54
54
  class Sql {
package/lib/ssh/sftp.js CHANGED
@@ -35,8 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Connection = void 0;
37
37
  // --- 库和定义 ---
38
- const core = __importStar(require("../../lib/core"));
39
- const text = __importStar(require("../../lib/text"));
38
+ const core = __importStar(require("~/lib/core"));
39
+ const text = __importStar(require("~/lib/text"));
40
40
  class Connection {
41
41
  constructor(sftp, path) {
42
42
  this._client = sftp;
package/lib/ssh/shell.js CHANGED
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Connection = void 0;
37
- const lCore = __importStar(require("../../lib/core"));
37
+ const lCore = __importStar(require("~/lib/core"));
38
38
  class Connection {
39
39
  constructor(stream) {
40
40
  this._client = stream;
package/lib/text.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as types from '../types';
1
+ import * as types from '~/types';
2
2
  /**
3
3
  * --- 将文件大小格式化为带单位的字符串 ---
4
4
  * @param size 文件大小
package/lib/text.js CHANGED
@@ -66,7 +66,7 @@ exports.int2str = int2str;
66
66
  * Date: 2019-5-15 16:49:39
67
67
  * Last: 2020-04-06 20:51:06, 2022-9-29 15:18:16, 2022-12-29 00:01:30, 2024-3-6 17:53:14, 2024-5-31 17:29:52, 2025-6-13 15:47:02
68
68
  */
69
- const kebab = __importStar(require("../index"));
69
+ const kebab = __importStar(require("~/index"));
70
70
  const fs = __importStar(require("./fs"));
71
71
  /**
72
72
  * --- 将文件大小格式化为带单位的字符串 ---
package/lib/time.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Date: 2019-6-6 12:04:15
4
4
  * Last: 2020-3-29 23:41:21, 2024-1-18 17:16:50, 2024-8-5 10:55:21
5
5
  */
6
- import * as sCtr from '../sys/ctr';
6
+ import * as sCtr from '~/sys/ctr';
7
7
  export interface IOptions {
8
8
  /** --- 时区 --- */
9
9
  'zone'?: number;
package/lib/time.js CHANGED
@@ -43,7 +43,7 @@ exports.format = format;
43
43
  * Date: 2019-6-6 12:04:15
44
44
  * Last: 2020-3-29 23:41:21, 2024-1-18 17:16:50, 2024-8-5 10:55:21
45
45
  */
46
- const sCtr = __importStar(require("../sys/ctr"));
46
+ const sCtr = __importStar(require("~/sys/ctr"));
47
47
  /** --- 一小时的秒数 --- */
48
48
  exports.HOUR = 3600;
49
49
  /** --- 一天的秒数 --- */
package/lib/ws.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import * as http from 'http';
7
7
  import * as net from 'net';
8
- import * as types from '../types';
9
- import * as sCtr from '../sys/ctr';
8
+ import * as types from '~/types';
9
+ import * as sCtr from '~/sys/ctr';
10
10
  /** --- 一般用 SIMPLE --- */
11
11
  export declare enum EFrameReceiveMode {
12
12
  STANDARD = 0,
package/lib/ws.js CHANGED
@@ -41,8 +41,8 @@ exports.rproxy = rproxy;
41
41
  // --- 第三方 ---
42
42
  const liws = __importStar(require("@litert/websocket"));
43
43
  // --- 库 ---
44
- const lText = __importStar(require("../lib/text"));
45
- const lNet = __importStar(require("../lib/net"));
44
+ const lText = __importStar(require("~/lib/text"));
45
+ const lNet = __importStar(require("~/lib/net"));
46
46
  /** --- 一般用 SIMPLE --- */
47
47
  var EFrameReceiveMode;
48
48
  (function (EFrameReceiveMode) {
package/lib/zip.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import jszip from 'jszip';
2
- import * as types from '../types';
2
+ import * as types from '~/types';
3
3
  /**
4
4
  * --- 本库主要用于读取 zip,请尽量不要用来写入 zip,尤其是大文件 zip ---
5
5
  */
package/lib/zip.js CHANGED
@@ -40,7 +40,7 @@ exports.Zip = void 0;
40
40
  exports.get = get;
41
41
  const jszip_1 = __importDefault(require("jszip"));
42
42
  const mime = __importStar(require("@litert/mime"));
43
- const lText = __importStar(require("../lib/text"));
43
+ const lText = __importStar(require("~/lib/text"));
44
44
  /**
45
45
  * --- 本库主要用于读取 zip,请尽量不要用来写入 zip,尤其是大文件 zip ---
46
46
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maiyunnet/kebab",
3
- "version": "2.0.9",
3
+ "version": "2.0.10",
4
4
  "description": "Simple, easy-to-use, and fully-featured Node.js framework that is ready-to-use out of the box.",
5
5
  "keywords": [
6
6
  "kebab",
package/sys/child.js CHANGED
@@ -43,13 +43,13 @@ const tls = __importStar(require("tls"));
43
43
  const http = __importStar(require("http"));
44
44
  const crypto = __importStar(require("crypto"));
45
45
  // --- 库和定义 ---
46
- const fs = __importStar(require("../lib/fs"));
47
- const lCore = __importStar(require("../lib/core"));
48
- const lText = __importStar(require("../lib/text"));
49
- const sCtr = __importStar(require("../sys/ctr"));
50
- const kebab = __importStar(require("../index"));
46
+ const fs = __importStar(require("~/lib/fs"));
47
+ const lCore = __importStar(require("~/lib/core"));
48
+ const lText = __importStar(require("~/lib/text"));
49
+ const sCtr = __importStar(require("~/sys/ctr"));
50
+ const kebab = __importStar(require("~/index"));
51
51
  // --- 初始化 ---
52
- const sRoute = __importStar(require("../sys/route"));
52
+ const sRoute = __importStar(require("~/sys/route"));
53
53
  /** --- 10 秒往主线程发送一次心跳的 Timer --- */
54
54
  const hbTimer = setInterval(function () {
55
55
  if (!process.connected || !process.send) {
package/sys/cmd.js CHANGED
@@ -39,12 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  * 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
40
  */
41
41
  const http = __importStar(require("http"));
42
- const lFs = __importStar(require("../lib/fs"));
43
- const lText = __importStar(require("../lib/text"));
44
- const lTime = __importStar(require("../lib/time"));
45
- const lCore = __importStar(require("../lib/core"));
46
- const lCrypto = __importStar(require("../lib/crypto"));
47
- const kebab = __importStar(require("../index"));
42
+ const lFs = __importStar(require("~/lib/fs"));
43
+ const lText = __importStar(require("~/lib/text"));
44
+ const lTime = __importStar(require("~/lib/time"));
45
+ const lCore = __importStar(require("~/lib/core"));
46
+ const lCrypto = __importStar(require("~/lib/crypto"));
47
+ const kebab = __importStar(require("~/index"));
48
48
  /** --- 解析命令 --- */
49
49
  const cmds = process.argv.slice(2);
50
50
  /** --- 批量创建目录 --- */
package/sys/ctr.js CHANGED
@@ -690,7 +690,7 @@ class Ctr {
690
690
  this._res.setHeader('access-control-allow-headers', '*');
691
691
  this._res.setHeader('access-control-allow-methods', '*');
692
692
  if (this._req.method === 'OPTIONS') {
693
- this._res.setHeader('access-control-max-age', '600');
693
+ this._res.setHeader('access-control-max-age', '3600');
694
694
  return false;
695
695
  }
696
696
  return true;
package/sys/master.js CHANGED
@@ -42,14 +42,14 @@ const os = __importStar(require("os"));
42
42
  const cluster = __importStar(require("cluster"));
43
43
  const http = __importStar(require("http"));
44
44
  // --- 库和定义 ---
45
- const kebab = __importStar(require("../index"));
46
- const sRoute = __importStar(require("../sys/route"));
47
- const lCore = __importStar(require("../lib/core"));
48
- const lFs = __importStar(require("../lib/fs"));
49
- const lText = __importStar(require("../lib/text"));
50
- const lCrypto = __importStar(require("../lib/crypto"));
51
- const lTime = __importStar(require("../lib/time"));
52
- const lZip = __importStar(require("../lib/zip"));
45
+ const kebab = __importStar(require("~/index"));
46
+ const sRoute = __importStar(require("~/sys/route"));
47
+ const lCore = __importStar(require("~/lib/core"));
48
+ const lFs = __importStar(require("~/lib/fs"));
49
+ const lText = __importStar(require("~/lib/text"));
50
+ const lCrypto = __importStar(require("~/lib/crypto"));
51
+ const lTime = __importStar(require("~/lib/time"));
52
+ const lZip = __importStar(require("~/lib/zip"));
53
53
  /** --- 当前运行中的子进程列表 --- */
54
54
  const workerList = {};
55
55
  /**
package/sys/mod.d.ts CHANGED
@@ -3,10 +3,10 @@
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 '../lib/sql';
7
- import * as lDb from '../lib/db';
8
- import * as sCtr from '../sys/ctr';
9
- import * as types from '../types';
6
+ import * as lSql from '~/lib/sql';
7
+ import * as lDb from '~/lib/db';
8
+ import * as sCtr from '~/sys/ctr';
9
+ import * as types from '~/types';
10
10
  /** --- 条数列表 --- */
11
11
  declare class Rows<T extends Mod> implements types.Rows<T> {
12
12
  private readonly _items;
@@ -33,6 +33,8 @@ export default class Mod {
33
33
  protected static _$primary: string;
34
34
  /** --- 设置后将由 _keyGenerator 函数生成唯一字段 --- */
35
35
  protected static _$key: string;
36
+ /** --- 若使用 _$key 并且有多个 unique 索引,这里指定 _$key 的索引名 --- */
37
+ protected static _$index: string;
36
38
  /** ---- 可开启软删软更新软新增 --- */
37
39
  protected static _$soft: boolean;
38
40
  /** --- 要 update 的内容 --- */
package/sys/mod.js CHANGED
@@ -38,11 +38,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  * Date: 2019-6-4 21:35
39
39
  * 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
40
  */
41
- const lSql = __importStar(require("../lib/sql"));
42
- const lTime = __importStar(require("../lib/time"));
43
- const lCore = __importStar(require("../lib/core"));
44
- const lText = __importStar(require("../lib/text"));
45
- const sCtr = __importStar(require("../sys/ctr"));
41
+ const lSql = __importStar(require("~/lib/sql"));
42
+ const lTime = __importStar(require("~/lib/time"));
43
+ const lCore = __importStar(require("~/lib/core"));
44
+ const lText = __importStar(require("~/lib/text"));
45
+ const sCtr = __importStar(require("~/sys/ctr"));
46
46
  /** --- 条数列表 --- */
47
47
  class Rows {
48
48
  constructor(initialItems = []) {
@@ -353,8 +353,8 @@ class Mod {
353
353
  if (typeof opt.index === 'string') {
354
354
  opt.index = [opt.index];
355
355
  }
356
- else if (!opt.index) {
357
- opt.index = [''];
356
+ else {
357
+ opt.index ??= [''];
358
358
  }
359
359
  if (this._$soft && !opt.raw) {
360
360
  if (typeof where === 'string') {
@@ -657,9 +657,7 @@ class Mod {
657
657
  for (const k in this._updates) {
658
658
  updates[k] = this._data[k];
659
659
  }
660
- if (!table) {
661
- table = cstr._$table + (this._index ? ('_' + this._index[0]) : '');
662
- }
660
+ table ??= cstr._$table + (this._index ? ('_' + this._index[0]) : '');
663
661
  let r = null;
664
662
  if ((cstr._$key !== '') && (updates[cstr._$key] === undefined)) {
665
663
  let count = 0;
@@ -682,18 +680,29 @@ class Mod {
682
680
  if (!r.error) {
683
681
  break;
684
682
  }
685
- if (r.error.errno !== 1062) {
686
- await lCore.log(this._ctr ?? {
687
- 'path': '',
688
- 'urlFull': '',
689
- 'hostname': '',
690
- 'req': null,
691
- 'get': {},
692
- 'cookie': {},
693
- 'headers': {}
694
- }, '[create0, mod] [' + table + '] ' + lText.stringifyJson(r.error?.message ?? '').slice(1, -1).replace(/"/g, '""'), '-error');
695
- return false;
683
+ if (r.error.errno === 1062) {
684
+ // --- 与唯一键冲突 ---
685
+ if (!cstr._$index) {
686
+ // --- 没设置 index,那就当做是本次生成的 key 重复了 ---
687
+ continue;
688
+ }
689
+ const match = /for key '([\w.]+)'/.exec(r.error.message);
690
+ if (match?.[1].includes(cstr._$index)) {
691
+ // --- 确实重复了 ---
692
+ continue;
693
+ }
696
694
  }
695
+ // --- 未处理的错误 ---
696
+ await lCore.log(this._ctr ?? {
697
+ 'path': '',
698
+ 'urlFull': '',
699
+ 'hostname': '',
700
+ 'req': null,
701
+ 'get': {},
702
+ 'cookie': {},
703
+ 'headers': {}
704
+ }, '[create0, mod] [' + table + '] ' + lText.stringifyJson(r.error?.message ?? '').slice(1, -1).replace(/"/g, '""'), '-error');
705
+ return false;
697
706
  }
698
707
  }
699
708
  else {
@@ -1603,6 +1612,8 @@ Mod._$table = '';
1603
1612
  Mod._$primary = 'id';
1604
1613
  /** --- 设置后将由 _keyGenerator 函数生成唯一字段 --- */
1605
1614
  Mod._$key = '';
1615
+ /** --- 若使用 _$key 并且有多个 unique 索引,这里指定 _$key 的索引名 --- */
1616
+ Mod._$index = '';
1606
1617
  /** ---- 可开启软删软更新软新增 --- */
1607
1618
  Mod._$soft = false;
1608
1619
  exports.default = Mod;
package/sys/route.d.ts CHANGED
@@ -7,7 +7,7 @@ import * as http from 'http';
7
7
  import * as http2 from 'http2';
8
8
  import * as net from 'net';
9
9
  import * as sCtr from './ctr';
10
- import * as types from '../types';
10
+ import * as types from '~/types';
11
11
  /**
12
12
  * --- 清除已经加载的虚拟主机配置文件 ---
13
13
  */
package/sys/route.js CHANGED
@@ -49,15 +49,15 @@ const stream = __importStar(require("stream"));
49
49
  // --- 第三方 ---
50
50
  const ws = __importStar(require("@litert/websocket"));
51
51
  // --- 库和定义 ---
52
- const lFs = __importStar(require("../lib/fs"));
53
- const lZlib = __importStar(require("../lib/zlib"));
54
- const lCore = __importStar(require("../lib/core"));
55
- const lText = __importStar(require("../lib/text"));
56
- const lTime = __importStar(require("../lib/time"));
57
- const lResponse = __importStar(require("../lib/net/response"));
58
- const lWs = __importStar(require("../lib/ws"));
52
+ const lFs = __importStar(require("~/lib/fs"));
53
+ const lZlib = __importStar(require("~/lib/zlib"));
54
+ const lCore = __importStar(require("~/lib/core"));
55
+ const lText = __importStar(require("~/lib/text"));
56
+ const lTime = __importStar(require("~/lib/time"));
57
+ const lResponse = __importStar(require("~/lib/net/response"));
58
+ const lWs = __importStar(require("~/lib/ws"));
59
59
  const sCtr = __importStar(require("./ctr"));
60
- const kebab = __importStar(require("../index"));
60
+ const kebab = __importStar(require("~/index"));
61
61
  /** --- 动态层 kebab.json 缓存(文件路径: 最终合并值) --- */
62
62
  let kebabConfigs = {};
63
63
  /**
@@ -1,4 +1,4 @@
1
- import * as ctr from '../../../sys/ctr';
1
+ import * as ctr from '~/sys/ctr';
2
2
  export default class extends ctr.Ctr {
3
3
  index(): string;
4
4
  }
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const ctr = __importStar(require("../../../sys/ctr"));
36
+ const ctr = __importStar(require("~/sys/ctr"));
37
37
  class default_1 extends ctr.Ctr {
38
38
  index() {
39
39
  return `<a href="${this._config.const.urlBase}test">Hello world! Click here to visit demo.</a>`;
@@ -1,5 +1,5 @@
1
- import * as ctr from '../../../sys/ctr';
2
- import * as types from '../../../types';
1
+ import * as ctr from '~/sys/ctr';
2
+ import * as types from '~/types';
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[];
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const ctr = __importStar(require("../../../sys/ctr"));
36
+ const ctr = __importStar(require("~/sys/ctr"));
37
37
  class default_1 extends ctr.Ctr {
38
38
  onLoad() {
39
39
  if (this._config.const.path !== 'test/middle') {
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'fs';
2
- import * as sCtr from '../../../sys/ctr';
3
- import * as types from '../../../types';
2
+ import * as sCtr from '~/sys/ctr';
3
+ import * as types from '~/types';
4
4
  export default class extends sCtr.Ctr {
5
5
  private _internalUrl;
6
6
  onLoad(): Array<string | number> | boolean;
@@ -37,27 +37,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  // --- 库和定义 ---
40
- const lCore = __importStar(require("../../../lib/core"));
41
- const lNet = __importStar(require("../../../lib/net"));
42
- const lDb = __importStar(require("../../../lib/db"));
43
- const lFs = __importStar(require("../../../lib/fs"));
44
- const lText = __importStar(require("../../../lib/text"));
45
- const lCrypto = __importStar(require("../../../lib/crypto"));
46
- const lKv = __importStar(require("../../../lib/kv"));
47
- const lCaptcha = __importStar(require("../../../lib/captcha"));
48
- const lTime = __importStar(require("../../../lib/time"));
49
- const lScan = __importStar(require("../../../lib/scan"));
50
- const lSql = __importStar(require("../../../lib/sql"));
51
- const lConsistent = __importStar(require("../../../lib/consistent"));
52
- const lSsh = __importStar(require("../../../lib/ssh"));
53
- const lJwt = __importStar(require("../../../lib/jwt"));
54
- const lWs = __importStar(require("../../../lib/ws"));
55
- const lS3 = __importStar(require("../../../lib/s3"));
56
- const lZip = __importStar(require("../../../lib/zip"));
57
- const lBuffer = __importStar(require("../../../lib/buffer"));
58
- const lLan = __importStar(require("../../../lib/lan"));
59
- const sCtr = __importStar(require("../../../sys/ctr"));
60
- const kebab = __importStar(require("../../../index"));
40
+ const lCore = __importStar(require("~/lib/core"));
41
+ const lNet = __importStar(require("~/lib/net"));
42
+ const lDb = __importStar(require("~/lib/db"));
43
+ const lFs = __importStar(require("~/lib/fs"));
44
+ const lText = __importStar(require("~/lib/text"));
45
+ const lCrypto = __importStar(require("~/lib/crypto"));
46
+ const lKv = __importStar(require("~/lib/kv"));
47
+ const lCaptcha = __importStar(require("~/lib/captcha"));
48
+ const lTime = __importStar(require("~/lib/time"));
49
+ const lScan = __importStar(require("~/lib/scan"));
50
+ const lSql = __importStar(require("~/lib/sql"));
51
+ const lConsistent = __importStar(require("~/lib/consistent"));
52
+ const lSsh = __importStar(require("~/lib/ssh"));
53
+ const lJwt = __importStar(require("~/lib/jwt"));
54
+ const lWs = __importStar(require("~/lib/ws"));
55
+ const lS3 = __importStar(require("~/lib/s3"));
56
+ const lZip = __importStar(require("~/lib/zip"));
57
+ const lBuffer = __importStar(require("~/lib/buffer"));
58
+ const lLan = __importStar(require("~/lib/lan"));
59
+ const sCtr = __importStar(require("~/sys/ctr"));
60
+ const kebab = __importStar(require("~/index"));
61
61
  // --- mod ---
62
62
  const test_1 = __importDefault(require("../mod/test"));
63
63
  const testdata_1 = __importDefault(require("../mod/testdata"));
@@ -548,6 +548,7 @@ Result:<pre id="result">Nothing.</pre>` + this._getEnd();
548
548
  'ctr': this
549
549
  });
550
550
  test.set({
551
+ 'name': 'nam' + lCore.rand(0, 3).toString(),
551
552
  'point': { 'x': lCore.rand(0, 99), 'y': lCore.rand(0, 99) },
552
553
  'polygon': [
553
554
  [
@@ -566,6 +567,7 @@ const test = mTest.getCreate<mTest>(db, {
566
567
  'ctr': this
567
568
  });
568
569
  test.set({
570
+ 'name': 'nam' + lCore.rand(0, 4).toString(),
569
571
  'point': { 'x': lCore.rand(0, 99), 'y': lCore.rand(0, 99) },
570
572
  'polygon': [
571
573
  [
@@ -744,6 +746,7 @@ CREATE TABLE \`m_test_data_0\` (
744
746
  'ctr': this
745
747
  });
746
748
  test.set({
749
+ 'name': lCore.random(4),
747
750
  'token': lCore.random(lCore.rand(8, 32)),
748
751
  'point': {
749
752
  'x': 10,
@@ -1,10 +1,12 @@
1
- import sMod from '../../../sys/mod';
2
- import types from '../../../types';
1
+ import sMod from '~/sys/mod';
2
+ import types from '~/types';
3
3
  export default class extends sMod {
4
4
  protected static _$table: string;
5
5
  protected static _$primary: string;
6
6
  protected static _$key: string;
7
+ protected static _$index: string;
7
8
  id: number;
9
+ name: string;
8
10
  token: string;
9
11
  point: {
10
12
  'x': number;
@@ -36,28 +36,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- const lCore = __importStar(require("../../../lib/core"));
40
- const mod_1 = __importDefault(require("../../../sys/mod"));
39
+ const lCore = __importStar(require("~/lib/core"));
40
+ const mod_1 = __importDefault(require("~/sys/mod"));
41
41
  /*
42
- CREATE TABLE `m_test` (
43
- `id` INT NOT NULL AUTO_INCREMENT,
44
- `token` CHAR(16) NOT NULL COLLATE 'ascii_bin',
45
- `point` POINT NOT NULL,
46
- `polygon` POLYGON NULL DEFAULT NULL,
47
- `json` JSON NULL DEFAULT NULL,
48
- `time_add` BIGINT NOT NULL,
42
+ CREATE TABLE `m_test` (
43
+ `id` int NOT NULL AUTO_INCREMENT,
44
+ `name` char(4) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
45
+ `token` varchar(32) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
46
+ `point` point NOT NULL,
47
+ `polygon` polygon NULL,
48
+ `json` json NULL,
49
+ `time_add` bigint NOT NULL,
49
50
  PRIMARY KEY (`id`) USING BTREE,
50
- UNIQUE INDEX `token` (`token`) USING BTREE,
51
- INDEX `time_add` (`time_add`) USING BTREE
52
- ) ENGINE=InnoDB COLLATE=utf8mb4_general_ci;
51
+ INDEX `time_add`(`time_add` ASC) USING BTREE,
52
+ UNIQUE INDEX `utoken`(`token` ASC) USING BTREE,
53
+ UNIQUE INDEX `uname`(`name` ASC) USING BTREE
54
+ ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
53
55
  */
54
56
  class default_1 extends mod_1.default {
55
57
  /* eslint-enable */
56
58
  _keyGenerator() {
57
- return 'test_' + lCore.rand(0, 5).toString();
59
+ return 'test_' + lCore.rand(0, 3).toString();
58
60
  }
59
61
  }
60
62
  default_1._$table = 'test';
61
63
  default_1._$primary = 'id';
62
64
  default_1._$key = 'token';
65
+ default_1._$index = 'utoken';
63
66
  exports.default = default_1;
@@ -1,4 +1,4 @@
1
- import sMod from '../../../sys/mod';
1
+ import sMod from '~/sys/mod';
2
2
  export default class extends sMod {
3
3
  protected static _$table: string;
4
4
  protected static _$primary: string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const mod_1 = __importDefault(require("../../../sys/mod"));
6
+ const mod_1 = __importDefault(require("~/sys/mod"));
7
7
  /*
8
8
  CREATE TABLE `m_test_data_0` (
9
9
  `id` bigint NOT NULL AUTO_INCREMENT,
@@ -1,4 +1,4 @@
1
- import * as sCtr from '../../../sys/ctr';
1
+ import * as sCtr from '~/sys/ctr';
2
2
  export default class extends sCtr.Ctr {
3
3
  onLoad(): Promise<boolean>;
4
4
  }
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const sCtr = __importStar(require("../../../sys/ctr"));
37
- const lWs = __importStar(require("../../../lib/ws"));
36
+ const sCtr = __importStar(require("~/sys/ctr"));
37
+ const lWs = __importStar(require("~/lib/ws"));
38
38
  class default_1 extends sCtr.Ctr {
39
39
  async onLoad() {
40
40
  console.log('WebSocket mproxy test onLoad.');
@@ -1,4 +1,4 @@
1
- import * as sCtr from '../../../sys/ctr';
1
+ import * as sCtr from '~/sys/ctr';
2
2
  export default class extends sCtr.Ctr {
3
3
  onLoad(): Promise<boolean>;
4
4
  }
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const sCtr = __importStar(require("../../../sys/ctr"));
37
- const lWs = __importStar(require("../../../lib/ws"));
36
+ const sCtr = __importStar(require("~/sys/ctr"));
37
+ const lWs = __importStar(require("~/lib/ws"));
38
38
  class default_1 extends sCtr.Ctr {
39
39
  async onLoad() {
40
40
  console.log('WebSocket rproxy test onLoad.');
@@ -1,4 +1,4 @@
1
- import * as sCtr from '../../../sys/ctr';
1
+ import * as sCtr from '~/sys/ctr';
2
2
  export default class extends sCtr.Ctr {
3
3
  private _nick;
4
4
  onLoad(): boolean;
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const sCtr = __importStar(require("../../../sys/ctr"));
37
- const lCrypto = __importStar(require("../../../lib/crypto"));
36
+ const sCtr = __importStar(require("~/sys/ctr"));
37
+ const lCrypto = __importStar(require("~/lib/crypto"));
38
38
  class default_1 extends sCtr.Ctr {
39
39
  constructor() {
40
40
  super(...arguments);