@zhin.js/core 1.0.0 → 1.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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +295 -74
- package/lib/adapter.d.ts +39 -0
- package/lib/adapter.d.ts.map +1 -0
- package/{dist → lib}/adapter.js +20 -2
- package/lib/adapter.js.map +1 -0
- package/lib/app.d.ts +115 -0
- package/lib/app.d.ts.map +1 -0
- package/{dist → lib}/app.js +148 -78
- package/lib/app.js.map +1 -0
- package/lib/bot.d.ts +31 -0
- package/lib/bot.d.ts.map +1 -0
- package/lib/command.d.ts +32 -0
- package/lib/command.d.ts.map +1 -0
- package/lib/command.js +46 -0
- package/lib/command.js.map +1 -0
- package/lib/component.d.ts +107 -0
- package/lib/component.d.ts.map +1 -0
- package/lib/component.js +273 -0
- package/lib/component.js.map +1 -0
- package/{dist → lib}/config.d.ts.map +1 -1
- package/{dist → lib}/config.js +6 -9
- package/lib/config.js.map +1 -0
- package/lib/cron.d.ts +81 -0
- package/lib/cron.d.ts.map +1 -0
- package/lib/cron.js +159 -0
- package/lib/cron.js.map +1 -0
- package/lib/errors.d.ts +165 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +306 -0
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -0
- package/lib/message.d.ts +44 -0
- package/lib/message.d.ts.map +1 -0
- package/lib/message.js +11 -0
- package/lib/message.js.map +1 -0
- package/lib/plugin.d.ts +50 -0
- package/lib/plugin.d.ts.map +1 -0
- package/lib/plugin.js +170 -0
- package/lib/plugin.js.map +1 -0
- package/lib/prompt.d.ts +116 -0
- package/lib/prompt.d.ts.map +1 -0
- package/lib/prompt.js +240 -0
- package/lib/prompt.js.map +1 -0
- package/lib/schema.d.ts +83 -0
- package/lib/schema.d.ts.map +1 -0
- package/lib/schema.js +245 -0
- package/lib/schema.js.map +1 -0
- package/{dist → lib}/types-generator.d.ts.map +1 -1
- package/{dist → lib}/types-generator.js +6 -3
- package/lib/types-generator.js.map +1 -0
- package/lib/types.d.ts +119 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/utils.d.ts +52 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +338 -0
- package/lib/utils.js.map +1 -0
- package/package.json +15 -9
- package/src/adapter.ts +25 -9
- package/src/app.ts +363 -258
- package/src/bot.ts +29 -8
- package/src/command.ts +50 -0
- package/src/component.ts +318 -0
- package/src/config.ts +9 -12
- package/src/cron.ts +176 -0
- package/src/errors.ts +365 -0
- package/src/index.ts +16 -13
- package/src/message.ts +44 -0
- package/src/plugin.ts +148 -66
- package/src/prompt.ts +290 -0
- package/src/schema.ts +273 -0
- package/src/types-generator.ts +7 -3
- package/src/types.ts +77 -30
- package/src/utils.ts +312 -0
- package/tests/adapter.test.ts +36 -22
- package/tests/app.test.ts +30 -0
- package/tests/command.test.ts +545 -0
- package/tests/component.test.ts +656 -0
- package/tests/config.test.ts +1 -1
- package/tests/errors.test.ts +311 -0
- package/tests/message.test.ts +402 -0
- package/tests/plugin.test.ts +275 -143
- package/tests/utils.test.ts +80 -0
- package/tsconfig.json +3 -4
- package/dist/adapter.d.ts +0 -22
- package/dist/adapter.d.ts.map +0 -1
- package/dist/adapter.js.map +0 -1
- package/dist/app.d.ts +0 -69
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js.map +0 -1
- package/dist/bot.d.ts +0 -9
- package/dist/bot.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
- package/dist/logger.d.ts +0 -3
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -3
- package/dist/logger.js.map +0 -1
- package/dist/plugin.d.ts +0 -41
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -95
- package/dist/plugin.js.map +0 -1
- package/dist/types-generator.js.map +0 -1
- package/dist/types.d.ts +0 -69
- package/dist/types.d.ts.map +0 -1
- package/src/logger.ts +0 -3
- package/tests/logger.test.ts +0 -170
- package/tsconfig.tsbuildinfo +0 -1
- /package/{dist → lib}/bot.js +0 -0
- /package/{dist → lib}/bot.js.map +0 -0
- /package/{dist → lib}/config.d.ts +0 -0
- /package/{dist → lib}/types-generator.d.ts +0 -0
- /package/{dist → lib}/types.js +0 -0
- /package/{dist → lib}/types.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,OAAO,MAAM;IAMK;IAAsB;IAL1C;;;;OAIG;IACH,YAAoB,MAAa,EAAS,KAAiC;QAAvD,WAAM,GAAN,MAAM,CAAO;QAAS,UAAK,GAAL,KAAK,CAA4B;IAAG,CAAC;IAC/E;;OAEG;IACK,iBAAiB,CAA+B,KAAkC;QACtF,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAC7G,CAAC;IACD;;;OAGG;IACK,MAAM,CAAU,MAAwB;QAC5C,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CACX,KAAK,CAAC,EAAE;gBACJ,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjC,IAAI,MAAM,CAAC,YAAY;wBAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;wBACjD,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnB,OAAO;gBACX,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,CAAC,EACD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,CACrB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACH,UAAU,CAAC,QAAwC,EAAE,UAAkB,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW,GAAG,MAAM;QACtG,MAAM,UAAU,GAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,iBAAiB,CAAI,KAAK,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAI,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAC9F,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,EAAE,EAAE,WAAoB;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;SACnC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,EAAE,EAAE,WAAoB;QAC7E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;SACnC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,CAAC,EAAE,WAAoB;QAC/E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK;SACpC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,OAAO,CACT,IAAY,EACZ,YAAoB,KAAK,EACzB,OAAgB,EAChB,YAAY,GAAG,KAAK,EACpB,WAAoB;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAU;YACxB,IAAI,EAAE,GAAG,IAAI,QAAQ,SAAS,MAAM;YACpC,YAAY;YACZ,OAAO;YACP,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS;SACjD,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CACN,IAAY,EACZ,SAA+B,EAAE,IAAI,EAAE,MAAW,EAAE,EACpD,WAAoB;QAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAqB;YACnC,IAAI,EAAE,GAAG,IAAI,WAAW,SAAS,KAAK;YACtC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC3B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,SAAS;wBACV,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;oBACtB,KAAK,QAAQ;wBACT,OAAO,CAAC,CAAC,CAAC;oBACd,KAAK,MAAM;wBACP,OAAO,CAAC,CAAC;gBACjB,CAAC;YACL,CAAC,CAAuB;SAC/B,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,KAAK,CAAU,KAAQ;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CACN,IAAY,EACZ,MAA+B,EAC/B,WAAoB;QAEpB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC9C,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,SAAS,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAA0B;YACxC,IAAI,EAAE,GAAG,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAChB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAClC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC9B,CAAC,CAAC,EAAE,KAAgC,CAAC;gBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,MAAM,CAAC,OAAO;qBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACf,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAA4B,CAAC;YACtD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAmB,MAAS;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YACtC,IAAI,EAAE,EAAS;YACf,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;aACjB,CAAC,CAAC;YACH,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SACpC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAmC,OAAU;QAClE,MAAM,MAAM,GAAS,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,MAA+B,CAAC;IAC3C,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAmB,MAAS;QAChD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjE,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,QAAQ;gBACT,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YAC3E,KAAK,QAAQ;gBACT,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YACzE,KAAK,SAAS;gBACV,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YAC5E,KAAK,QAAQ;gBACT,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW;oBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9E,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAO,CAAC,CAAoB,CAAC;YACvF,KAAK,MAAM;gBACP,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE;oBAC/C,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAoB;iBAChE,CAAC,CAAC;YACP,KAAK,QAAQ;gBACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE;oBACvC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAoB;iBAClE,CAAC,CAAC;YACP,KAAK,OAAO;gBACR,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;YAClD,KAAK,MAAM;gBACP,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAM,CAAC;gBACpC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,KAAK,CAAC,IAAI,CAAC,IAA0B;oBACpF,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;iBACpC,CAAC,CAAoB,CAAC;YAC3B,KAAK,MAAM,CAAC;YACZ;gBACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;CACJ"}
|
package/lib/schema.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export declare class Schema<S = any, T = S> {
|
|
2
|
+
meta: Schema.Meta<S, T>;
|
|
3
|
+
options: Schema.Options;
|
|
4
|
+
[Symbol.toStringTag]: string;
|
|
5
|
+
constructor(meta: Schema.Meta<S, T>, options?: Schema.Options);
|
|
6
|
+
static fromJSON<S, T>(json: Schema.JSON<S, T>): Schema<S, T>;
|
|
7
|
+
toJSON(): Record<string, any>;
|
|
8
|
+
[Symbol.unscopables](): {
|
|
9
|
+
options: boolean;
|
|
10
|
+
meta: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** 设置是否必填 */
|
|
13
|
+
required(): this;
|
|
14
|
+
/** 是否隐藏 */
|
|
15
|
+
hidden(): this;
|
|
16
|
+
/** 设置描述 */
|
|
17
|
+
description(description: string): this;
|
|
18
|
+
/** 设置默认值 */
|
|
19
|
+
default(defaultValue: T): this;
|
|
20
|
+
/** 设置选项列表 */
|
|
21
|
+
option(list: (T | Schema.Option<T>)[]): this;
|
|
22
|
+
/** 设置是否允许多选 */
|
|
23
|
+
multiple(): this;
|
|
24
|
+
/** 声明一个数字类型 */
|
|
25
|
+
static number(description: string): Schema<number>;
|
|
26
|
+
/** 声明一个字符串类型 */
|
|
27
|
+
static string(description: string): Schema<string>;
|
|
28
|
+
/** 声明一个布尔类型 */
|
|
29
|
+
static boolean(description: string): Schema<boolean>;
|
|
30
|
+
/** 声明一个正则类型 */
|
|
31
|
+
static regexp(description: string): Schema<string | RegExp, RegExp>;
|
|
32
|
+
/** 声明一个日期类型 */
|
|
33
|
+
static date(description: string): Schema<number | Date, Date>;
|
|
34
|
+
/** 声明一个字典类型 */
|
|
35
|
+
static dict<X extends Schema>(input: X, description: string): Schema<Record<string, Schema.Types<X>>, Record<string, Schema.Types<X>>>;
|
|
36
|
+
static object<X extends Record<string, Schema>>(input: X, description?: string): Schema<Schema.RecordTypes<X>, Schema.RecordTypes<X>>;
|
|
37
|
+
/** 声明一个列表类型 */
|
|
38
|
+
static list<X extends Schema>(inner: X, description: string): Schema<Schema.Types<X>[], Schema.Types<X>[]>;
|
|
39
|
+
/** 声明一个常量 */
|
|
40
|
+
static const<X extends string | number | boolean>(value: X, description: string): Schema<X, X>;
|
|
41
|
+
static resolve<T extends string>(type: T): Schema.Formatter;
|
|
42
|
+
static extend<T extends string>(type: T, formatter: Schema.Formatter): void;
|
|
43
|
+
}
|
|
44
|
+
export interface Schema<S = any> {
|
|
45
|
+
(value?: S): S;
|
|
46
|
+
}
|
|
47
|
+
export declare namespace Schema {
|
|
48
|
+
const formatters: Map<string, Formatter>;
|
|
49
|
+
type Formatter<S = any, T = S> = (this: Schema, value: S) => T;
|
|
50
|
+
type JSON<S = any, T = S> = Meta<S, T> & {
|
|
51
|
+
object?: Record<string, JSON>;
|
|
52
|
+
inner?: JSON;
|
|
53
|
+
list?: JSON[];
|
|
54
|
+
};
|
|
55
|
+
interface Meta<S = any, T = S> {
|
|
56
|
+
hidden?: boolean;
|
|
57
|
+
type: string;
|
|
58
|
+
default?: T;
|
|
59
|
+
required?: boolean;
|
|
60
|
+
options?: Option<T>[];
|
|
61
|
+
multiple?: boolean;
|
|
62
|
+
description: string;
|
|
63
|
+
component?: string;
|
|
64
|
+
min?: number;
|
|
65
|
+
max?: number;
|
|
66
|
+
step?: number;
|
|
67
|
+
}
|
|
68
|
+
interface Options {
|
|
69
|
+
object?: Record<string, Schema>;
|
|
70
|
+
inner?: Schema;
|
|
71
|
+
}
|
|
72
|
+
type Types<T> = T extends Schema<infer S> ? S : never;
|
|
73
|
+
type RecordTypes<T> = T extends Record<string, Schema> ? {
|
|
74
|
+
[K in keyof T]?: Types<T[K]>;
|
|
75
|
+
} : unknown;
|
|
76
|
+
function checkDefault<T>(schema: Schema, value: T, fallback?: T): T;
|
|
77
|
+
type Option<T = any> = {
|
|
78
|
+
label: string;
|
|
79
|
+
value: T;
|
|
80
|
+
};
|
|
81
|
+
function formatOptionList<T extends (any | Schema.Option)[]>(list: T): Schema.Option[];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/lib/schema.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { isEmpty } from './utils.js';
|
|
2
|
+
export class Schema {
|
|
3
|
+
meta;
|
|
4
|
+
options;
|
|
5
|
+
[Symbol.toStringTag] = 'Schema';
|
|
6
|
+
constructor(meta, options = {}) {
|
|
7
|
+
this.meta = meta;
|
|
8
|
+
this.options = options;
|
|
9
|
+
const _this = this;
|
|
10
|
+
const schema = function (value) {
|
|
11
|
+
const formatter = Schema.resolve(_this.meta.type);
|
|
12
|
+
if (!formatter)
|
|
13
|
+
throw new Error(`type ${_this.meta.type} not found`);
|
|
14
|
+
return formatter.call(_this, value);
|
|
15
|
+
};
|
|
16
|
+
return new Proxy(schema, {
|
|
17
|
+
get(target, p, receiver) {
|
|
18
|
+
return Reflect.get(_this, p, receiver);
|
|
19
|
+
},
|
|
20
|
+
set(target, p, value, receiver) {
|
|
21
|
+
return Reflect.set(_this, p, value, receiver);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static fromJSON(json) {
|
|
26
|
+
const { object, inner, list, ...meta } = json;
|
|
27
|
+
const options = {};
|
|
28
|
+
if (object)
|
|
29
|
+
options.object = Object.fromEntries(Object.entries(object).map(([key, value]) => [key, Schema.fromJSON(value)]));
|
|
30
|
+
if (inner)
|
|
31
|
+
options.inner = Schema.fromJSON(inner);
|
|
32
|
+
return new Schema(meta, options);
|
|
33
|
+
}
|
|
34
|
+
toJSON() {
|
|
35
|
+
return Object.fromEntries(Object.entries({
|
|
36
|
+
...this.meta,
|
|
37
|
+
default: typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default,
|
|
38
|
+
inner: this.options.inner?.toJSON(),
|
|
39
|
+
dict: this.options.object
|
|
40
|
+
? Object.fromEntries(Object.entries(this.options.object || {}).map(([key, value]) => [key, value.toJSON()]))
|
|
41
|
+
: undefined,
|
|
42
|
+
}).filter(([key, value]) => typeof value !== 'undefined'));
|
|
43
|
+
}
|
|
44
|
+
[Symbol.unscopables]() {
|
|
45
|
+
return {
|
|
46
|
+
options: true,
|
|
47
|
+
meta: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** 设置是否必填 */
|
|
51
|
+
required() {
|
|
52
|
+
this.meta.required = true;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/** 是否隐藏 */
|
|
56
|
+
hidden() {
|
|
57
|
+
this.meta.hidden = true;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/** 设置描述 */
|
|
61
|
+
description(description) {
|
|
62
|
+
this.meta.description = description;
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/** 设置默认值 */
|
|
66
|
+
default(defaultValue) {
|
|
67
|
+
this.meta.default = defaultValue;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/** 设置选项列表 */
|
|
71
|
+
option(list) {
|
|
72
|
+
this.meta.options = Schema.formatOptionList(list);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/** 设置是否允许多选 */
|
|
76
|
+
multiple() {
|
|
77
|
+
if (this.meta.type !== 'list')
|
|
78
|
+
throw new Error('multiple only support list type');
|
|
79
|
+
this.meta.multiple = true;
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
/** 声明一个数字类型 */
|
|
83
|
+
static number(description) {
|
|
84
|
+
return new Schema({ type: 'number', description });
|
|
85
|
+
}
|
|
86
|
+
/** 声明一个字符串类型 */
|
|
87
|
+
static string(description) {
|
|
88
|
+
return new Schema({ type: 'string', description });
|
|
89
|
+
}
|
|
90
|
+
/** 声明一个布尔类型 */
|
|
91
|
+
static boolean(description) {
|
|
92
|
+
return new Schema({ type: 'boolean', description });
|
|
93
|
+
}
|
|
94
|
+
/** 声明一个正则类型 */
|
|
95
|
+
static regexp(description) {
|
|
96
|
+
return new Schema({ type: 'regexp', description });
|
|
97
|
+
}
|
|
98
|
+
/** 声明一个日期类型 */
|
|
99
|
+
static date(description) {
|
|
100
|
+
return new Schema({ type: 'date', description });
|
|
101
|
+
}
|
|
102
|
+
/** 声明一个字典类型 */
|
|
103
|
+
static dict(input, description) {
|
|
104
|
+
return new Schema({ type: 'dict', description }, { inner: input });
|
|
105
|
+
}
|
|
106
|
+
static object(input, description = '') {
|
|
107
|
+
return new Schema({ type: 'object', description }, { object: input });
|
|
108
|
+
}
|
|
109
|
+
/** 声明一个列表类型 */
|
|
110
|
+
static list(inner, description) {
|
|
111
|
+
return new Schema({ type: 'list', description }, { inner });
|
|
112
|
+
}
|
|
113
|
+
/** 声明一个常量 */
|
|
114
|
+
static const(value, description) {
|
|
115
|
+
return new Schema({ type: 'const', default: value, description });
|
|
116
|
+
}
|
|
117
|
+
static resolve(type) {
|
|
118
|
+
return Schema.formatters.get(type);
|
|
119
|
+
}
|
|
120
|
+
static extend(type, formatter) {
|
|
121
|
+
Schema.formatters.set(type, formatter);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
(function (Schema) {
|
|
125
|
+
Schema.formatters = new Map();
|
|
126
|
+
function checkDefault(schema, value, fallback = value) {
|
|
127
|
+
if (isEmpty(value)) {
|
|
128
|
+
value = schema.meta.default || fallback;
|
|
129
|
+
}
|
|
130
|
+
const validateType = (schema, value) => {
|
|
131
|
+
switch (schema.meta.type) {
|
|
132
|
+
case 'string':
|
|
133
|
+
if (!['string', 'undefined'].includes(typeof value))
|
|
134
|
+
throw new TypeError(`value is not a string`);
|
|
135
|
+
break;
|
|
136
|
+
case 'number':
|
|
137
|
+
if (!['number', 'undefined'].includes(typeof value))
|
|
138
|
+
throw new TypeError(`value is not a number`);
|
|
139
|
+
break;
|
|
140
|
+
case 'boolean':
|
|
141
|
+
if (!['boolean', 'undefined'].includes(typeof value))
|
|
142
|
+
throw new TypeError(`value is not a boolean`);
|
|
143
|
+
break;
|
|
144
|
+
case 'regexp':
|
|
145
|
+
if (!['string', 'undefined'].includes(typeof value) && !(value instanceof RegExp))
|
|
146
|
+
throw new TypeError(`value is not a RegExp|string`);
|
|
147
|
+
break;
|
|
148
|
+
case 'date':
|
|
149
|
+
if (!['number', 'undefined'].includes(typeof value) && !(value instanceof Date))
|
|
150
|
+
throw new TypeError(`value is not a Date|number`);
|
|
151
|
+
if (value instanceof Date && isNaN(value.getTime()))
|
|
152
|
+
throw new TypeError(`value is not a valid Date`);
|
|
153
|
+
break;
|
|
154
|
+
case 'dict':
|
|
155
|
+
if (!['object', 'undefined', 'null'].includes(typeof value))
|
|
156
|
+
throw new TypeError(`value is not a object`);
|
|
157
|
+
break;
|
|
158
|
+
case 'object':
|
|
159
|
+
if (!['object', 'undefined', 'null'].includes(typeof value))
|
|
160
|
+
throw new TypeError(`value is not a object`);
|
|
161
|
+
break;
|
|
162
|
+
case 'list':
|
|
163
|
+
if (typeof value !== 'undefined' && !Array.isArray(value))
|
|
164
|
+
throw new TypeError(`value is not a list`);
|
|
165
|
+
break;
|
|
166
|
+
case 'const':
|
|
167
|
+
if (typeof value !== 'undefined' && value !== schema.meta.default)
|
|
168
|
+
throw new TypeError(`value is not const`);
|
|
169
|
+
break;
|
|
170
|
+
default:
|
|
171
|
+
throw new TypeError(`value is not a valid type`);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
if (schema.meta.required && typeof value === 'undefined')
|
|
175
|
+
throw new Error(`value is required`);
|
|
176
|
+
validateType(schema, value);
|
|
177
|
+
return value;
|
|
178
|
+
}
|
|
179
|
+
Schema.checkDefault = checkDefault;
|
|
180
|
+
function formatOptionList(list) {
|
|
181
|
+
return list.map(item => {
|
|
182
|
+
if (typeof item === 'string') {
|
|
183
|
+
return {
|
|
184
|
+
label: `${item}`,
|
|
185
|
+
value: item,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return item;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
Schema.formatOptionList = formatOptionList;
|
|
192
|
+
})(Schema || (Schema = {}));
|
|
193
|
+
Schema.extend('number', function (value) {
|
|
194
|
+
value = Schema.checkDefault(this, value);
|
|
195
|
+
return value;
|
|
196
|
+
});
|
|
197
|
+
Schema.extend('string', function (value) {
|
|
198
|
+
value = Schema.checkDefault(this, value);
|
|
199
|
+
return value;
|
|
200
|
+
});
|
|
201
|
+
Schema.extend('boolean', function (value) {
|
|
202
|
+
return Schema.checkDefault(this, value);
|
|
203
|
+
});
|
|
204
|
+
Schema.extend('dict', function (value) {
|
|
205
|
+
value = Schema.checkDefault(this, value, {});
|
|
206
|
+
return Object.fromEntries(Object.entries(value).map(([key, schema]) => {
|
|
207
|
+
return [key, this.options.inner(schema)];
|
|
208
|
+
}));
|
|
209
|
+
});
|
|
210
|
+
Schema.extend('object', function (value) {
|
|
211
|
+
const getDefault = (schema) => {
|
|
212
|
+
const result = Object.create(null);
|
|
213
|
+
for (const key in schema.options.object) {
|
|
214
|
+
result[key] = getDefault(schema.options.object[key]);
|
|
215
|
+
}
|
|
216
|
+
return result;
|
|
217
|
+
};
|
|
218
|
+
value = Schema.checkDefault(this, value, getDefault(this));
|
|
219
|
+
return Object.fromEntries(Object.entries(value).map(([key, schema]) => {
|
|
220
|
+
return [key, this.options.object[key](schema)];
|
|
221
|
+
}));
|
|
222
|
+
});
|
|
223
|
+
Schema.extend('list', function (value) {
|
|
224
|
+
value = Schema.checkDefault(this, value, []);
|
|
225
|
+
return value.map((item) => this.options.inner(item));
|
|
226
|
+
});
|
|
227
|
+
Schema.extend('regexp', function (value) {
|
|
228
|
+
value = Schema.checkDefault(this, value);
|
|
229
|
+
if (typeof value === 'string') {
|
|
230
|
+
return new RegExp(value);
|
|
231
|
+
}
|
|
232
|
+
return value;
|
|
233
|
+
});
|
|
234
|
+
Schema.extend('date', function (value) {
|
|
235
|
+
value = Schema.checkDefault(this, value);
|
|
236
|
+
return new Date(value);
|
|
237
|
+
});
|
|
238
|
+
Schema.extend('const', function (value) {
|
|
239
|
+
value = Schema.checkDefault(this, value);
|
|
240
|
+
if (value !== this.meta.default) {
|
|
241
|
+
throw new Error('const value not match');
|
|
242
|
+
}
|
|
243
|
+
return value;
|
|
244
|
+
});
|
|
245
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEjE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { getLogger } from '@zhin.js/logger';
|
|
4
|
+
const logger = getLogger('TypesGenerator');
|
|
4
5
|
/**
|
|
5
6
|
* 更新 tsconfig.json 的类型声明
|
|
6
7
|
* @param cwd 项目根目录
|
|
@@ -45,7 +46,7 @@ export async function generateEnvTypes(cwd) {
|
|
|
45
46
|
tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, 'utf-8'));
|
|
46
47
|
}
|
|
47
48
|
catch (err) {
|
|
48
|
-
console.error
|
|
49
|
+
// console.error 已替换为注释
|
|
49
50
|
logger.warn('⚠️ Failed to parse tsconfig.json, creating new one');
|
|
50
51
|
}
|
|
51
52
|
}
|
|
@@ -63,7 +64,9 @@ export async function generateEnvTypes(cwd) {
|
|
|
63
64
|
logger.info('✅ Updated TypeScript types configuration');
|
|
64
65
|
}
|
|
65
66
|
catch (error) {
|
|
66
|
-
logger.warn('⚠️ Failed to update TypeScript types
|
|
67
|
+
logger.warn('⚠️ Failed to update TypeScript types', {
|
|
68
|
+
error: error instanceof Error ? error.message : String(error)
|
|
69
|
+
});
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
//# sourceMappingURL=types-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { MaybePromise } from '@zhin.js/types';
|
|
2
|
+
import { MessageChannel } from "./message.js";
|
|
3
|
+
import { Adapter } from "./adapter.js";
|
|
4
|
+
import { Bot, BotConfig } from "./bot.js";
|
|
5
|
+
import { Databases, Registry } from "@zhin.js/database";
|
|
6
|
+
/**
|
|
7
|
+
* 类型定义文件:包含适配器、消息、数据库、配置等核心类型声明。
|
|
8
|
+
* 协作者可通过本文件了解各主要数据结构的用途与关系。
|
|
9
|
+
*/
|
|
10
|
+
declare module '@zhin.js/types' {
|
|
11
|
+
interface GlobalContext extends RegisteredAdapters {
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 所有已注册适配器的类型映射(key为适配器名,value为Adapter实例)
|
|
16
|
+
*/
|
|
17
|
+
export interface RegisteredAdapters extends Record<string, Adapter> {
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 数据库配置类型,支持多种数据库驱动
|
|
21
|
+
*/
|
|
22
|
+
export type DatabaseConfig<T extends keyof Databases = keyof Databases> = {
|
|
23
|
+
dialect: T;
|
|
24
|
+
} & Registry.Config<Databases[T]>;
|
|
25
|
+
/**
|
|
26
|
+
* 获取对象所有value类型
|
|
27
|
+
*/
|
|
28
|
+
export type ObjectItem<T extends object> = T[keyof T];
|
|
29
|
+
/**
|
|
30
|
+
* 已注册适配器名类型
|
|
31
|
+
*/
|
|
32
|
+
export type RegisteredAdapter = keyof RegisteredAdapters;
|
|
33
|
+
/**
|
|
34
|
+
* 指定适配器的消息类型
|
|
35
|
+
*/
|
|
36
|
+
export type AdapterMessage<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? BotMessage<R> : {};
|
|
37
|
+
/**
|
|
38
|
+
* 指定适配器的配置类型
|
|
39
|
+
*/
|
|
40
|
+
export type AdapterConfig<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? PlatformConfig<R> : BotConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Bot实例的配置类型
|
|
43
|
+
*/
|
|
44
|
+
export type PlatformConfig<T> = T extends Bot<infer L, infer R> ? R : BotConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Bot实例的消息类型
|
|
47
|
+
*/
|
|
48
|
+
export type BotMessage<T extends Bot> = T extends Bot<infer R> ? R : {};
|
|
49
|
+
/**
|
|
50
|
+
* 消息段结构,支持 text/image/at/face 等类型
|
|
51
|
+
*/
|
|
52
|
+
export interface MessageSegment {
|
|
53
|
+
type: string;
|
|
54
|
+
data: Record<string, any>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 单个或数组类型
|
|
58
|
+
*/
|
|
59
|
+
export type MaybeArray<T> = T | T[];
|
|
60
|
+
/**
|
|
61
|
+
* 消息发送内容类型
|
|
62
|
+
*/
|
|
63
|
+
export type SendContent = MaybeArray<string | MessageSegment>;
|
|
64
|
+
/**
|
|
65
|
+
* 消息发送者信息
|
|
66
|
+
*/
|
|
67
|
+
export interface MessageSender {
|
|
68
|
+
id: string;
|
|
69
|
+
name?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 通用字典类型
|
|
73
|
+
*/
|
|
74
|
+
export type Dict<V = any, K extends string | symbol = string> = Record<K, V>;
|
|
75
|
+
/**
|
|
76
|
+
* 用户信息结构
|
|
77
|
+
*/
|
|
78
|
+
export interface User {
|
|
79
|
+
user_id: string;
|
|
80
|
+
nickname: string;
|
|
81
|
+
card?: string;
|
|
82
|
+
role?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 群组信息结构
|
|
86
|
+
*/
|
|
87
|
+
export interface Group {
|
|
88
|
+
group_id: string;
|
|
89
|
+
group_name: string;
|
|
90
|
+
member_count: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* App配置类型,涵盖机器人、数据库、插件、调试等
|
|
94
|
+
*/
|
|
95
|
+
export interface AppConfig {
|
|
96
|
+
/** 机器人配置列表 */
|
|
97
|
+
bots?: BotConfig[];
|
|
98
|
+
/** 数据库配置列表 */
|
|
99
|
+
database?: DatabaseConfig;
|
|
100
|
+
/** 插件目录列表,默认为 ['./plugins', 'node_modules'] */
|
|
101
|
+
plugin_dirs?: string[];
|
|
102
|
+
/** 需要加载的插件列表 */
|
|
103
|
+
plugins?: string[];
|
|
104
|
+
/** 禁用的依赖列表 */
|
|
105
|
+
disable_dependencies?: string[];
|
|
106
|
+
/** 是否启用调试模式 */
|
|
107
|
+
debug?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* defineConfig辅助类型,支持函数式/对象式配置
|
|
111
|
+
*/
|
|
112
|
+
export type DefineConfig<T> = T | ((env: Record<string, string>) => MaybePromise<T>);
|
|
113
|
+
export interface SendOptions extends MessageChannel {
|
|
114
|
+
context: string;
|
|
115
|
+
bot: string;
|
|
116
|
+
content: SendContent;
|
|
117
|
+
}
|
|
118
|
+
export type BeforeSendHandler = (options: SendOptions) => MaybePromise<SendOptions | void>;
|
|
119
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Dict, SendContent } from "./types";
|
|
2
|
+
export declare function getValueWithRuntime(template: string, ctx: Dict): any;
|
|
3
|
+
export declare const evaluate: <S, T = any>(exp: string, context: S) => T | undefined;
|
|
4
|
+
export declare const execute: <S, T = any>(exp: string, context: S) => T;
|
|
5
|
+
export declare function compiler(template: string, ctx: Dict): string;
|
|
6
|
+
export declare function segment<T extends object>(type: string, data: T): {
|
|
7
|
+
type: string;
|
|
8
|
+
data: T;
|
|
9
|
+
};
|
|
10
|
+
export declare namespace segment {
|
|
11
|
+
function escape<T>(text: T): T;
|
|
12
|
+
function unescape<T>(text: T): T;
|
|
13
|
+
function text(text: string): {
|
|
14
|
+
type: string;
|
|
15
|
+
data: {
|
|
16
|
+
text: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
function face(id: string, text?: string): {
|
|
20
|
+
type: string;
|
|
21
|
+
data: {
|
|
22
|
+
id: string;
|
|
23
|
+
text: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
function from(content: SendContent): SendContent;
|
|
27
|
+
function raw(content: SendContent): string;
|
|
28
|
+
function toString(content: SendContent): string;
|
|
29
|
+
}
|
|
30
|
+
export declare function remove<T>(list: T[], fn: (item: T) => boolean): void;
|
|
31
|
+
export declare function remove<T>(list: T[], item: T): void;
|
|
32
|
+
export declare function isEmpty<T>(item: T): boolean;
|
|
33
|
+
export declare namespace Time {
|
|
34
|
+
const millisecond = 1;
|
|
35
|
+
const second = 1000;
|
|
36
|
+
const minute: number;
|
|
37
|
+
const hour: number;
|
|
38
|
+
const day: number;
|
|
39
|
+
const week: number;
|
|
40
|
+
function setTimezoneOffset(offset: number): void;
|
|
41
|
+
function getTimezoneOffset(): number;
|
|
42
|
+
function getDateNumber(date?: number | Date, offset?: number): number;
|
|
43
|
+
function fromDateNumber(value: number, offset?: number): Date;
|
|
44
|
+
function parseTime(source: string): number;
|
|
45
|
+
function parseDate(date: string): Date;
|
|
46
|
+
function formatTimeShort(ms: number): string;
|
|
47
|
+
function formatTime(ms: number): string;
|
|
48
|
+
function template(template: string, time?: Date): string;
|
|
49
|
+
function formatTimeInterval(time: Date, interval?: number): string;
|
|
50
|
+
}
|
|
51
|
+
export declare function sleep(ms: number): Promise<unknown>;
|
|
52
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAkB,WAAW,EAAC,MAAM,SAAS,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,OAI9D;AACD,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,SAAS,CAAC,kBAK3D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,SAAS,CAAC,KAAE,CAc5D,CAAC;AASF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,UAUnD;AACD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC;;;EAK3D;AACD,yBAAiB,OAAO,CAAA;IACpB,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQpC;IACD,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQtC;IACD,SAAgB,IAAI,CAAC,IAAI,EAAC,MAAM;;;;;MAE/B;IACD,SAAgB,IAAI,CAAC,EAAE,EAAC,MAAM,EAAC,IAAI,CAAC,EAAC,MAAM;;;;;;MAE1C;IACD,SAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAwDtD;IACD,SAAgB,GAAG,CAAC,OAAO,EAAC,WAAW,UAQtC;IACD,SAAgB,QAAQ,CAAC,OAAO,EAAC,WAAW,UAQ3C;CACJ;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;AACrE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;AAQpD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAC,CAAC,WAOhC;AAED,yBAAiB,IAAI,CAAC;IACX,MAAM,WAAW,IAAI,CAAC;IACtB,MAAM,MAAM,OAAO,CAAC;IACpB,MAAM,MAAM,QAAc,CAAC;IAC3B,MAAM,IAAI,QAAc,CAAC;IACzB,MAAM,GAAG,QAAY,CAAC;IACtB,MAAM,IAAI,QAAU,CAAC;IAI5B,SAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,QAE/C;IAED,SAAgB,iBAAiB,WAEhC;IAED,SAAgB,aAAa,CAAC,IAAI,GAAE,MAAM,GAAG,IAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,UAI9E;IAED,SAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAI5D;IASD,SAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,UAUvC;IAED,SAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,QAUrC;IAED,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,UAYzC;IAED,SAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,UAwBpC;IAQD,SAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAa,UAU3D;IAMD,SAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,UAU/D;CACJ;AACD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B"}
|