@zhin.js/core 1.0.16 → 1.0.18

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 (118) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/REFACTORING_COMPLETE.md +178 -0
  3. package/REFACTORING_STATUS.md +263 -0
  4. package/lib/adapter.d.ts +44 -19
  5. package/lib/adapter.d.ts.map +1 -1
  6. package/lib/adapter.js +81 -50
  7. package/lib/adapter.js.map +1 -1
  8. package/lib/bot.d.ts +7 -12
  9. package/lib/bot.d.ts.map +1 -1
  10. package/lib/built/adapter-process.d.ts +36 -0
  11. package/lib/built/adapter-process.d.ts.map +1 -0
  12. package/lib/built/adapter-process.js +77 -0
  13. package/lib/built/adapter-process.js.map +1 -0
  14. package/lib/built/command.d.ts +46 -0
  15. package/lib/built/command.d.ts.map +1 -0
  16. package/lib/built/command.js +54 -0
  17. package/lib/built/command.js.map +1 -0
  18. package/lib/built/component.d.ts +42 -0
  19. package/lib/built/component.d.ts.map +1 -0
  20. package/lib/built/component.js +66 -0
  21. package/lib/built/component.js.map +1 -0
  22. package/lib/built/config.d.ts +31 -0
  23. package/lib/built/config.d.ts.map +1 -0
  24. package/lib/built/config.js +141 -0
  25. package/lib/built/config.js.map +1 -0
  26. package/lib/built/cron.d.ts +53 -0
  27. package/lib/built/cron.d.ts.map +1 -0
  28. package/lib/built/cron.js +79 -0
  29. package/lib/built/cron.js.map +1 -0
  30. package/lib/built/database.d.ts +17 -0
  31. package/lib/built/database.d.ts.map +1 -0
  32. package/lib/built/database.js +28 -0
  33. package/lib/built/database.js.map +1 -0
  34. package/lib/{permissions.d.ts → built/permission.d.ts} +5 -10
  35. package/lib/built/permission.d.ts.map +1 -0
  36. package/lib/{permissions.js → built/permission.js} +11 -10
  37. package/lib/built/permission.js.map +1 -0
  38. package/lib/command.d.ts +18 -7
  39. package/lib/command.d.ts.map +1 -1
  40. package/lib/command.js +36 -15
  41. package/lib/command.js.map +1 -1
  42. package/lib/component.d.ts +1 -1
  43. package/lib/component.d.ts.map +1 -1
  44. package/lib/component.js.map +1 -1
  45. package/lib/cron.d.ts +4 -12
  46. package/lib/cron.d.ts.map +1 -1
  47. package/lib/cron.js +33 -64
  48. package/lib/cron.js.map +1 -1
  49. package/lib/index.d.ts +11 -3
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/index.js +14 -4
  52. package/lib/index.js.map +1 -1
  53. package/lib/jsx-runtime.d.ts +2 -2
  54. package/lib/jsx.d.ts +2 -3
  55. package/lib/jsx.d.ts.map +1 -1
  56. package/lib/jsx.js.map +1 -1
  57. package/lib/message.d.ts +4 -7
  58. package/lib/message.d.ts.map +1 -1
  59. package/lib/message.js.map +1 -1
  60. package/lib/plugin.d.ts +164 -51
  61. package/lib/plugin.d.ts.map +1 -1
  62. package/lib/plugin.js +520 -137
  63. package/lib/plugin.js.map +1 -1
  64. package/lib/prompt.d.ts +1 -1
  65. package/lib/prompt.d.ts.map +1 -1
  66. package/lib/prompt.js +2 -1
  67. package/lib/prompt.js.map +1 -1
  68. package/lib/types.d.ts +33 -33
  69. package/lib/types.d.ts.map +1 -1
  70. package/lib/utils.d.ts +16 -1
  71. package/lib/utils.d.ts.map +1 -1
  72. package/lib/utils.js +166 -66
  73. package/lib/utils.js.map +1 -1
  74. package/package.json +17 -11
  75. package/src/adapter.ts +131 -80
  76. package/src/bot.ts +8 -13
  77. package/src/built/adapter-process.ts +77 -0
  78. package/src/built/command.ts +102 -0
  79. package/src/built/component.ts +111 -0
  80. package/src/built/config.ts +126 -0
  81. package/src/built/cron.ts +140 -0
  82. package/src/built/database.ts +38 -0
  83. package/src/{permissions.ts → built/permission.ts} +9 -12
  84. package/src/command.ts +48 -20
  85. package/src/component.ts +2 -3
  86. package/src/cron.ts +35 -70
  87. package/src/index.ts +15 -5
  88. package/src/jsx.ts +2 -3
  89. package/src/message.ts +3 -4
  90. package/src/plugin.ts +671 -184
  91. package/src/prompt.ts +4 -3
  92. package/src/types.ts +41 -35
  93. package/src/utils.ts +418 -296
  94. package/test/minimal-bot.ts +31 -0
  95. package/test/stress-test.ts +123 -0
  96. package/tests/command.test.ts +124 -44
  97. package/ASYNC-JSX-SUPPORT.md +0 -173
  98. package/lib/app.d.ts +0 -191
  99. package/lib/app.d.ts.map +0 -1
  100. package/lib/app.js +0 -604
  101. package/lib/app.js.map +0 -1
  102. package/lib/config.d.ts +0 -54
  103. package/lib/config.d.ts.map +0 -1
  104. package/lib/config.js +0 -308
  105. package/lib/config.js.map +0 -1
  106. package/lib/log-transport.d.ts +0 -37
  107. package/lib/log-transport.d.ts.map +0 -1
  108. package/lib/log-transport.js +0 -136
  109. package/lib/log-transport.js.map +0 -1
  110. package/lib/permissions.d.ts.map +0 -1
  111. package/lib/permissions.js.map +0 -1
  112. package/src/app.ts +0 -772
  113. package/src/config.ts +0 -397
  114. package/src/log-transport.ts +0 -163
  115. package/tests/app.test.ts +0 -265
  116. package/tests/permissions.test.ts +0 -358
  117. package/tests/plugin.test.ts +0 -234
  118. package/tests/prompt.test.ts +0 -223
package/src/prompt.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import {AdapterMessage, Dict, MessageMiddleware, RegisteredAdapter} from './types.js';
2
2
  import { Plugin } from './plugin.js';
3
3
  import { Message } from './message.js';
4
- import { Schema } from '@zhin.js/hmr';
5
-
4
+ import { Schema } from '@zhin.js/schema';
5
+ import { Adapter } from './adapter.js';
6
6
  /**
7
7
  * Prompt类:用于实现机器人与用户的交互式提问与输入收集。
8
8
  * 支持文本、数字、确认、列表、选项、Schema等多种输入类型,自动处理超时、默认值、格式化等。
@@ -37,7 +37,8 @@ export class Prompt<P extends RegisteredAdapter> {
37
37
  else reject(input);
38
38
  return;
39
39
  }
40
- this.plugin.recallMessage(this.event.$adapter,this.event.$bot,id);
40
+ const adapter = this.plugin.inject(this.event.$adapter) as Adapter;
41
+ adapter.emit('call.recallMessage',this.event.$bot, id);
41
42
  resolve(config.format(input));
42
43
  },
43
44
  config.timeout,
package/src/types.ts CHANGED
@@ -1,18 +1,28 @@
1
- import {MaybePromise,RegisteredAdapters}from '@zhin.js/types'
2
- import { Schema } from '@zhin.js/hmr'
3
- import { LogLevel } from '@zhin.js/logger';
1
+
4
2
  import {MessageChannel,Message} from "./message.js";
5
3
  import {Adapter} from "./adapter.js";
6
4
  import {Bot} from "./bot.js";
5
+ import { SystemLog } from "./models/system-log.js";
6
+ import { User } from "./models/user.js";
7
7
  import { Databases,Registry } from "@zhin.js/database";
8
8
  import { MessageComponent } from "./message.js";
9
+ import { ProcessAdapter } from "./built/adapter-process.js";
9
10
 
11
+ export type ArrayItem<T>=T extends Array<infer R>?R:unknown
12
+ export interface Models extends Record<string,object>{
13
+ SystemLog: SystemLog
14
+ User: User,
15
+ }
16
+ export type MaybePromise<T> = T extends Promise<infer U> ? T|U : T|Promise<T>;
17
+ export interface RegisteredAdapters {
18
+ process: ProcessAdapter;
19
+ }
10
20
  /**
11
21
  * 数据库配置类型,支持多种数据库驱动
12
22
  */
13
23
  export type DatabaseConfig<T extends keyof Databases=keyof Databases>={
14
24
  dialect:T
15
- } & Registry.Config<Databases[T]>
25
+ } & Registry.Config[T]
16
26
  /**
17
27
  * 获取对象所有value类型
18
28
  */
@@ -20,7 +30,7 @@ export type ObjectItem<T extends object>=T[keyof T]
20
30
  /**
21
31
  * 已注册适配器名类型
22
32
  */
23
- export type RegisteredAdapter=keyof RegisteredAdapters
33
+ export type RegisteredAdapter=Extract<keyof RegisteredAdapters, string>
24
34
  /**
25
35
  * 指定适配器的消息类型
26
36
  */
@@ -68,13 +78,23 @@ export type Dict<V=any,K extends string|symbol=string>=Record<K, V>;
68
78
  /**
69
79
  * 用户信息结构
70
80
  */
71
- export interface User {
81
+ export interface UserInfo {
72
82
  user_id: string;
73
83
  nickname: string;
74
84
  card?: string;
75
85
  role?: string;
76
86
  }
77
87
 
88
+ /**
89
+ * 权限服务接口
90
+ */
91
+ import type { PermissionService } from './built/permission.js';
92
+ /**
93
+ * 配置服务接口
94
+ */
95
+ import type { ConfigService } from './built/config.js';
96
+
97
+ export { PermissionService, ConfigService };
78
98
  /**
79
99
  * 群组信息结构
80
100
  */
@@ -88,35 +108,6 @@ export interface Group {
88
108
  export type MessageMiddleware<P extends RegisteredAdapter=RegisteredAdapter> = (message: Message<AdapterMessage<P>>, next: () => Promise<void>) => MaybePromise<void>;
89
109
 
90
110
 
91
- /**
92
- * App配置类型,涵盖机器人、数据库、插件、调试等
93
- */
94
- export interface AppConfig {
95
- bots?: Bot.Config[];
96
- log_level: LogLevel;
97
- /** 数据库配置列表 */
98
- database?: DatabaseConfig;
99
- /** 插件目录列表,默认为 ['./plugins', 'node_modules'] */
100
- plugin_dirs?: string[];
101
- /** 需要加载的插件列表 */
102
- plugins?: string[];
103
- /** 禁用的依赖列表 */
104
- disable_dependencies?: string[];
105
- /** 是否启用调试模式 */
106
- debug?: boolean;
107
- /** 日志配置 */
108
- log?: {
109
- /** 最大日志保留天数,默认 7 天 */
110
- maxDays?: number;
111
- /** 最大日志条数,默认 10000 条 */
112
- maxRecords?: number;
113
- /** 自动清理间隔(小时),默认 24 小时 */
114
- cleanupInterval?: number;
115
- };
116
- /** 插件配置(键为插件名,值为配置对象) */
117
- [key: string]: any;
118
- }
119
-
120
111
  /**
121
112
  * defineConfig辅助类型,支持函数式/对象式配置
122
113
  */
@@ -127,4 +118,19 @@ export interface SendOptions extends MessageChannel{
127
118
  bot:string
128
119
  content:SendContent
129
120
  }
121
+
122
+ // export type PermissionChecker<T extends RegisteredAdapter = RegisteredAdapter> = (name: string, message: Message<AdapterMessage<T>>) => MaybePromise<boolean>
123
+ // export type PermissionItem<T extends RegisteredAdapter = RegisteredAdapter> = {
124
+ // name: string | RegExp
125
+ // check: PermissionChecker<T>
126
+ // }
127
+ export interface ProcessMessage {
128
+ type: string;
129
+ pid?: number;
130
+ body: any;
131
+ }
132
+ export type QueueItem = {
133
+ action: string;
134
+ payload: any;
135
+ };
130
136
  export type BeforeSendHandler=(options:SendOptions)=>MaybePromise<SendOptions|void>