@zhin.js/core 1.0.7 → 1.0.8

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/CHANGELOG.md +9 -0
  2. package/lib/adapter.d.ts +8 -6
  3. package/lib/adapter.d.ts.map +1 -1
  4. package/lib/adapter.js +13 -7
  5. package/lib/adapter.js.map +1 -1
  6. package/lib/app.d.ts +72 -14
  7. package/lib/app.d.ts.map +1 -1
  8. package/lib/app.js +240 -79
  9. package/lib/app.js.map +1 -1
  10. package/lib/bot.d.ts +10 -8
  11. package/lib/bot.d.ts.map +1 -1
  12. package/lib/config.d.ts +44 -14
  13. package/lib/config.d.ts.map +1 -1
  14. package/lib/config.js +275 -208
  15. package/lib/config.js.map +1 -1
  16. package/lib/index.d.ts +1 -1
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +1 -1
  19. package/lib/index.js.map +1 -1
  20. package/lib/log-transport.js +1 -1
  21. package/lib/log-transport.js.map +1 -1
  22. package/lib/models/system-log.d.ts +2 -2
  23. package/lib/models/system-log.d.ts.map +1 -1
  24. package/lib/models/system-log.js +1 -1
  25. package/lib/models/system-log.js.map +1 -1
  26. package/lib/models/user.d.ts +2 -2
  27. package/lib/models/user.d.ts.map +1 -1
  28. package/lib/models/user.js +1 -1
  29. package/lib/models/user.js.map +1 -1
  30. package/lib/plugin.d.ts +7 -3
  31. package/lib/plugin.d.ts.map +1 -1
  32. package/lib/plugin.js +16 -5
  33. package/lib/plugin.js.map +1 -1
  34. package/lib/prompt.d.ts +1 -1
  35. package/lib/prompt.d.ts.map +1 -1
  36. package/lib/prompt.js +9 -7
  37. package/lib/prompt.js.map +1 -1
  38. package/lib/types.d.ts +6 -5
  39. package/lib/types.d.ts.map +1 -1
  40. package/package.json +4 -4
  41. package/src/adapter.ts +18 -11
  42. package/src/app.ts +358 -102
  43. package/src/bot.ts +27 -25
  44. package/src/config.ts +352 -230
  45. package/src/index.ts +1 -1
  46. package/src/log-transport.ts +1 -1
  47. package/src/models/system-log.ts +2 -2
  48. package/src/models/user.ts +2 -2
  49. package/src/plugin.ts +19 -6
  50. package/src/prompt.ts +10 -9
  51. package/src/types.ts +8 -5
  52. package/tests/adapter.test.ts +5 -200
  53. package/tests/app.test.ts +208 -181
  54. package/tests/command.test.ts +2 -2
  55. package/tests/config.test.ts +5 -326
  56. package/tests/cron.test.ts +277 -0
  57. package/tests/jsx.test.ts +300 -0
  58. package/tests/permissions.test.ts +358 -0
  59. package/tests/prompt.test.ts +223 -0
  60. package/tests/schema.test.ts +248 -0
  61. package/lib/schema.d.ts +0 -83
  62. package/lib/schema.d.ts.map +0 -1
  63. package/lib/schema.js +0 -245
  64. package/lib/schema.js.map +0 -1
  65. package/src/schema.ts +0 -273
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @zhin.js/core
2
2
 
3
+ ## 1.0.8
4
+
5
+ ### Patch Changes
6
+
7
+ - 551c4d2: fix: 插件支持配置文件读取,优化 test 用例
8
+ - Updated dependencies [551c4d2]
9
+ - @zhin.js/database@1.0.3
10
+ - @zhin.js/hmr@1.0.2
11
+
3
12
  ## 1.0.7
4
13
 
5
14
  ### Patch Changes
package/lib/adapter.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Bot, BotConfig } from "./bot.js";
1
+ import { Bot } from "./bot.js";
2
2
  import { Plugin } from "./plugin.js";
3
3
  /**
4
4
  * Adapter类:适配器抽象,管理多平台Bot实例。
@@ -15,25 +15,27 @@ export declare class Adapter<R extends Bot = Bot> {
15
15
  * @param botFactory Bot工厂函数或构造器
16
16
  */
17
17
  constructor(name: string, botFactory: Adapter.BotFactory<R>);
18
+ createBot(config: Adapter.Config<R>): Bot<{}, Bot.Config>;
18
19
  /**
19
20
  * 启动适配器,自动根据配置创建并连接所有Bot
20
21
  * @param plugin 所属插件实例
21
22
  */
22
- start(plugin: Plugin): Promise<void>;
23
+ mounted(plugin: Plugin): Promise<void>;
23
24
  /**
24
25
  * 停止适配器,断开并移除所有Bot实例
25
26
  * @param plugin 所属插件实例
26
27
  */
27
- stop(plugin: Plugin): Promise<void>;
28
+ dispose(plugin: Plugin): Promise<void>;
28
29
  }
29
30
  export declare namespace Adapter {
30
31
  type BotBotConstructor<T extends Bot> = T extends Bot<infer F, infer S> ? {
31
- new (plugin: Plugin, config: S): T;
32
+ new (config: S): T;
32
33
  } : {
33
- new (plugin: Plugin, config: BotConfig): T;
34
+ new (config: Bot.Config): T;
34
35
  };
35
36
  function isBotConstructor<T extends Bot>(fn: BotFactory<T>): fn is BotBotConstructor<T>;
36
- type BotCreator<T extends Bot> = T extends Bot<infer F, infer S> ? (plugin: Plugin, config: S) => T : (plugin: Plugin, config: BotConfig) => T;
37
+ type BotCreator<T extends Bot> = T extends Bot<infer F, infer S> ? (config: S) => T : (config: Bot.Config) => T;
37
38
  type BotFactory<T extends Bot> = BotBotConstructor<T> | BotCreator<T>;
39
+ type Config<T extends Bot> = T extends Bot<infer F, infer S> ? S : Bot.Config;
38
40
  }
39
41
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,GAAC,GAAG;;IASf,IAAI,EAAC,MAAM;IAR9B,8BAA8B;IACvB,IAAI,EAAC,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC,CAAqB;IAE9C;;;;OAIG;gBACgB,IAAI,EAAC,MAAM,EAAC,UAAU,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAG/D;;;OAGG;IACG,KAAK,CAAC,MAAM,EAAC,MAAM;IA2BzB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAC,MAAM;CAkB3B;AACD,yBAAiB,OAAO,CAAC;IACrB,KAAY,iBAAiB,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG;QAC1E,KAAI,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,CAAC,GAAE,CAAC,CAAA;KAChC,GAAE;QACC,KAAI,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,GAAE,CAAC,CAAA;KACxC,CAAA;IACD,SAAgB,gBAAgB,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAG7F;IACD,KAAY,UAAU,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAA;IAC9I,KAAY,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAA;CAC7E"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,GAAC,GAAG;;IASf,IAAI,EAAC,MAAM;IAR9B,8BAA8B;IACvB,IAAI,EAAC,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC,CAAqB;IAE9C;;;;OAIG;gBACgB,IAAI,EAAC,MAAM,EAAC,UAAU,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAG/D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAMnC;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAC,MAAM;IA2B3B;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAC,MAAM;CAkB9B;AACD,yBAAiB,OAAO,CAAC;IACrB,KAAY,iBAAiB,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG;QAC1E,KAAI,MAAM,EAAC,CAAC,GAAE,CAAC,CAAA;KAClB,GAAE;QACC,KAAI,MAAM,EAAC,GAAG,CAAC,MAAM,GAAE,CAAC,CAAA;KAC3B,CAAA;IACD,SAAgB,gBAAgB,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAG7F;IACD,KAAY,UAAU,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,CAAA;IACnH,KAAY,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1E,KAAY,MAAM,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAC,CAAC,GAAC,GAAG,CAAC,MAAM,CAAA;CAChF"}
package/lib/adapter.js CHANGED
@@ -16,22 +16,28 @@ export class Adapter {
16
16
  this.name = name;
17
17
  this.#botFactory = botFactory;
18
18
  }
19
+ createBot(config) {
20
+ const bot = Adapter.isBotConstructor(this.#botFactory) ?
21
+ new this.#botFactory(config)
22
+ : this.#botFactory(config);
23
+ return bot;
24
+ }
19
25
  /**
20
26
  * 启动适配器,自动根据配置创建并连接所有Bot
21
27
  * @param plugin 所属插件实例
22
28
  */
23
- async start(plugin) {
24
- const configs = plugin.app.getConfig().bots?.filter(c => c.context === this.name);
29
+ async mounted(plugin) {
30
+ const configs = plugin.app.config.bots?.filter(c => c.context === this.name);
25
31
  if (!configs?.length)
26
- return;
32
+ return plugin.logger.warn(`no bot config for adapter ${this.name} found`);
27
33
  try {
28
34
  for (const config of configs) {
29
35
  let bot;
30
36
  if (Adapter.isBotConstructor(this.#botFactory)) {
31
- bot = new this.#botFactory(plugin, config);
37
+ bot = new this.#botFactory(config);
32
38
  }
33
39
  else {
34
- bot = this.#botFactory(plugin, config);
40
+ bot = this.#botFactory(config);
35
41
  }
36
42
  try {
37
43
  await bot.$connect();
@@ -43,7 +49,7 @@ export class Adapter {
43
49
  throw error;
44
50
  }
45
51
  }
46
- plugin.logger.info(`adapter ${this.name} started`);
52
+ plugin.logger.info(`adapter ${this.name} mounted`);
47
53
  }
48
54
  catch (error) {
49
55
  // 确保错误正确传播
@@ -54,7 +60,7 @@ export class Adapter {
54
60
  * 停止适配器,断开并移除所有Bot实例
55
61
  * @param plugin 所属插件实例
56
62
  */
57
- async stop(plugin) {
63
+ async dispose(plugin) {
58
64
  try {
59
65
  for (const [name, bot] of this.bots) {
60
66
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,OAAO;IASG;IARnB,8BAA8B;IACvB,IAAI,GAAe,IAAI,GAAG,EAAa,CAAA;IAC9C,WAAW,CAAsB;IACjC;;;;OAIG;IACH,YAAmB,IAAW,EAAC,UAAgC;QAA5C,SAAI,GAAJ,IAAI,CAAO;QAC1B,IAAI,CAAC,WAAW,GAAC,UAAU,CAAA;IAC/B,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,MAAa;QACrB,MAAM,OAAO,GAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,OAAO,KAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3E,IAAG,CAAC,OAAO,EAAE,MAAM;YAAE,OAAM;QAC3B,IAAI,CAAC;YACD,KAAI,MAAM,MAAM,IAAI,OAAO,EAAC,CAAC;gBACzB,IAAI,GAAM,CAAA;gBACV,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAC,MAAM,CAAM,CAAA;gBAClD,CAAC;qBAAM,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAC,MAAM,CAAM,CAAA;gBAC9C,CAAC;gBACD,IAAI,CAAC;oBACD,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;oBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,YAAY,CAAC,CAAA;oBAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAC,GAAG,CAAC,CAAA;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,kBAAkB;oBAClB,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,UAAU,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,WAAW;YACX,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,MAAa;QACpB,IAAI,CAAC;YACD,KAAI,MAAM,CAAC,IAAI,EAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAC,CAAC;gBAC/B,IAAI,CAAC;oBACD,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;oBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,CAAC,CAAA;oBACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,oBAAoB;oBACpB,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,UAAU,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,WAAW;YACX,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;CACJ;AACD,WAAiB,OAAO;IAMpB,SAAgB,gBAAgB,CAAgB,EAAiB;QAC7D,OAAO,EAAE,CAAC,SAAS;YACf,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAA;IACvC,CAAC;IAHe,wBAAgB,mBAG/B,CAAA;AAGL,CAAC,EAZgB,OAAO,KAAP,OAAO,QAYvB"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,OAAO;IASG;IARnB,8BAA8B;IACvB,IAAI,GAAe,IAAI,GAAG,EAAa,CAAA;IAC9C,WAAW,CAAsB;IACjC;;;;OAIG;IACH,YAAmB,IAAW,EAAC,UAAgC;QAA5C,SAAI,GAAJ,IAAI,CAAO;QAC1B,IAAI,CAAC,WAAW,GAAC,UAAU,CAAA;IAC/B,CAAC;IACD,SAAS,CAAC,MAAyB;QAC/B,MAAM,GAAG,GAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA,CAAC;YACjD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5B,CAAC,CAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7B,OAAO,GAAG,CAAA;IACd,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,MAAa;QACvB,MAAM,OAAO,GAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,OAAO,KAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,IAAG,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAA;QAC9F,IAAI,CAAC;YACD,KAAI,MAAM,MAAM,IAAI,OAAO,EAAC,CAAC;gBACzB,IAAI,GAAM,CAAA;gBACV,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAM,CAAA;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAM,CAAA;gBACvC,CAAC;gBACD,IAAI,CAAC;oBACD,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;oBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,YAAY,CAAC,CAAA;oBAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAC,GAAG,CAAC,CAAA;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,kBAAkB;oBAClB,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,UAAU,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,WAAW;YACX,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,MAAa;QACvB,IAAI,CAAC;YACD,KAAI,MAAM,CAAC,IAAI,EAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAC,CAAC;gBAC/B,IAAI,CAAC;oBACD,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;oBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,CAAC,CAAA;oBACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,oBAAoB;oBACpB,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,UAAU,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,WAAW;YACX,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;CACJ;AACD,WAAiB,OAAO;IAMpB,SAAgB,gBAAgB,CAAgB,EAAiB;QAC7D,OAAO,EAAE,CAAC,SAAS;YACf,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAA;IACvC,CAAC;IAHe,wBAAgB,mBAG/B,CAAA;AAIL,CAAC,EAbgB,OAAO,KAAP,OAAO,QAavB"}
package/lib/app.d.ts CHANGED
@@ -1,15 +1,17 @@
1
1
  import { SideEffect, GlobalContext, Models } from "@zhin.js/types";
2
+ import { Schema } from '@zhin.js/hmr';
2
3
  import { HMR, Context, Logger } from "@zhin.js/hmr";
3
4
  import { AdapterMessage, AppConfig, BeforeSendHandler, RegisteredAdapter, SendOptions, MessageMiddleware } from "./types.js";
5
+ import { Config } from "./config.js";
4
6
  import { Message } from "./message.js";
5
7
  import { PermissionChecker, Permissions } from "./permissions.js";
6
8
  import { Plugin } from "./plugin.js";
7
9
  import { Adapter } from "./adapter";
8
10
  import { MessageCommand } from "./command";
9
11
  import { Component } from "./component";
10
- import { RelatedDatabase, DocumentDatabase, KeyValueDatabase, Schema } from "@zhin.js/database";
12
+ import { RelatedDatabase, DocumentDatabase, KeyValueDatabase, Definition } from "@zhin.js/database";
11
13
  import { SystemLog } from "./models/system-log.js";
12
- import { User } from './models/user.js';
14
+ import { User } from "./models/user.js";
13
15
  declare module "@zhin.js/types" {
14
16
  interface Models {
15
17
  SystemLog: SystemLog;
@@ -21,18 +23,46 @@ declare module "@zhin.js/types" {
21
23
  * 继承自 HMR,支持插件生命周期、适配器管理、数据库集成等。
22
24
  */
23
25
  export declare class App extends HMR<Plugin> {
26
+ #private;
24
27
  static currentPlugin: Plugin;
25
- private config;
26
28
  middlewares: MessageMiddleware[];
27
29
  adapters: string[];
28
30
  database?: RelatedDatabase<any, Models> | DocumentDatabase<any, Models> | KeyValueDatabase<any, Models>;
29
31
  permissions: Permissions;
30
32
  private logTransport?;
33
+ /** 配置变更处理锁 */
34
+ private configChangeLock;
31
35
  /**
32
36
  * 构造函数:初始化应用,加载配置,注册全局异常处理
33
- * @param config 可选的应用配置,若为空则自动查找配置文件
37
+ * @param config 可选,应用配置,若为空则自动查找配置文件
34
38
  */
35
- constructor(config?: Partial<AppConfig>);
39
+ constructor(config: AppConfig);
40
+ /**
41
+ * 构造函数:初始化应用,加载配置,注册全局异常处理
42
+ * @param config_file 可选,配置文件路径,默认为 'zhin.config.yml'
43
+ */
44
+ constructor(config_file?: string);
45
+ /**
46
+ * 处理配置变更
47
+ * 如果上一次变更未完成,等待其完成后再处理新的变更
48
+ */
49
+ private handleConfigChange;
50
+ /**
51
+ * 应用配置变更
52
+ */
53
+ private applyConfigChanges;
54
+ /**
55
+ * 更新监听目录
56
+ */
57
+ private updateWatchDirs;
58
+ /**
59
+ * 更新插件加载
60
+ */
61
+ private updatePlugins;
62
+ /**
63
+ * 卸载插件
64
+ */
65
+ private unloadPlugin;
36
66
  receiveMessage<P extends RegisteredAdapter>(message: Message<AdapterMessage<P>>): Promise<void>;
37
67
  messageMiddleware(message: Message, next: () => Promise<void>): Promise<void>;
38
68
  get commands(): MessageCommand<never>[];
@@ -71,13 +101,13 @@ export declare class App extends HMR<Plugin> {
71
101
  * 获取App配置(只读)
72
102
  */
73
103
  getConfig(): Readonly<AppConfig>;
74
- /** 更新App配置 */
75
- /**
76
- * 更新App配置
77
- * @param config 部分配置项,将与现有配置合并
78
- */
79
- updateConfig(config: Partial<AppConfig>): void;
80
- get schemas(): Map<string, Schema<any>>;
104
+ getConfig<T extends Config.Paths<AppConfig>>(key: T): Readonly<Config.Value<AppConfig, T>>;
105
+ setConfig(value: AppConfig): void;
106
+ setConfig<T extends Config.Paths<AppConfig>>(key: T, value: Config.Value<AppConfig, T>): void;
107
+ changeSchema(key: string, value: Schema): void;
108
+ get config(): AppConfig;
109
+ set config(newConfig: AppConfig);
110
+ get definitions(): Map<string, Definition<any>>;
81
111
  /** 使用插件 */
82
112
  use(filePath: string): void;
83
113
  /** 启动App */
@@ -87,9 +117,36 @@ export declare class App extends HMR<Plugin> {
87
117
  getContext<T>(name: string): T;
88
118
  handleBeforeSend(options: SendOptions): Promise<SendOptions>;
89
119
  }
120
+ export declare namespace App {
121
+ const schema: Schema<{
122
+ database?: any;
123
+ bots?: any[] | undefined;
124
+ log_level?: number | undefined;
125
+ log?: {
126
+ maxDays?: number | undefined;
127
+ maxRecords?: number | undefined;
128
+ cleanupInterval?: number | undefined;
129
+ } | undefined;
130
+ plugin_dirs?: string[] | undefined;
131
+ plugins?: string[] | undefined;
132
+ debug?: boolean | undefined;
133
+ }, {
134
+ database?: any;
135
+ bots?: any[] | undefined;
136
+ log_level?: number | undefined;
137
+ log?: {
138
+ maxDays?: number | undefined;
139
+ maxRecords?: number | undefined;
140
+ cleanupInterval?: number | undefined;
141
+ } | undefined;
142
+ plugin_dirs?: string[] | undefined;
143
+ plugins?: string[] | undefined;
144
+ debug?: boolean | undefined;
145
+ }>;
146
+ }
90
147
  /** 获取App实例 */
91
148
  export declare function useApp(): App;
92
- export declare function defineModel<T extends Record<string, any>>(name: string, schema: Schema<T>): Plugin;
149
+ export declare function defineModel<T extends Record<string, any>>(name: string, schema: Definition<T>): Plugin;
93
150
  export declare function addPermit<T extends RegisteredAdapter>(name: string | RegExp, checker: PermissionChecker<T>): Plugin;
94
151
  /** 获取当前插件实例 */
95
152
  export declare function usePlugin(): Plugin;
@@ -124,10 +181,11 @@ export declare function onMounted(hook: (plugin: Plugin) => Promise<void> | void
124
181
  export declare function onDispose(hook: () => void): void;
125
182
  /** 发送消息 */
126
183
  export declare function sendMessage(options: SendOptions): Promise<void>;
184
+ export declare function defineSchema<S extends Schema>(rules: S): S;
127
185
  /** 获取App实例(用于高级操作) */
128
186
  export declare function getAppInstance(): App;
129
187
  /** 获取插件日志记录器 */
130
188
  export declare function useLogger(): Logger;
131
189
  /** 创建App实例的工厂函数 */
132
- export declare function createApp(config?: Partial<AppConfig>): Promise<App>;
190
+ export declare function createApp(config_file?: string): Promise<App>;
133
191
  //# sourceMappingURL=app.d.ts.map
package/lib/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}