@zhin.js/core 1.0.0 → 1.0.2

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 (133) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +295 -74
  4. package/lib/adapter.d.ts +39 -0
  5. package/lib/adapter.d.ts.map +1 -0
  6. package/{dist → lib}/adapter.js +20 -2
  7. package/lib/adapter.js.map +1 -0
  8. package/lib/app.d.ts +115 -0
  9. package/lib/app.d.ts.map +1 -0
  10. package/{dist → lib}/app.js +148 -78
  11. package/lib/app.js.map +1 -0
  12. package/lib/bot.d.ts +31 -0
  13. package/lib/bot.d.ts.map +1 -0
  14. package/lib/command.d.ts +32 -0
  15. package/lib/command.d.ts.map +1 -0
  16. package/lib/command.js +46 -0
  17. package/lib/command.js.map +1 -0
  18. package/lib/component.d.ts +27 -0
  19. package/lib/component.d.ts.map +1 -0
  20. package/lib/component.js +469 -0
  21. package/lib/component.js.map +1 -0
  22. package/{dist → lib}/config.d.ts.map +1 -1
  23. package/{dist → lib}/config.js +6 -9
  24. package/lib/config.js.map +1 -0
  25. package/lib/cron.d.ts +81 -0
  26. package/lib/cron.d.ts.map +1 -0
  27. package/lib/cron.js +159 -0
  28. package/lib/cron.js.map +1 -0
  29. package/lib/errors.d.ts +165 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +306 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/index.d.ts +15 -0
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +17 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/jsx-runtime.d.ts +12 -0
  38. package/lib/jsx-runtime.d.ts.map +1 -0
  39. package/lib/jsx-runtime.js +11 -0
  40. package/lib/jsx-runtime.js.map +1 -0
  41. package/lib/jsx.d.ts +32 -0
  42. package/lib/jsx.d.ts.map +1 -0
  43. package/lib/jsx.js +57 -0
  44. package/lib/jsx.js.map +1 -0
  45. package/lib/message.d.ts +47 -0
  46. package/lib/message.d.ts.map +1 -0
  47. package/lib/message.js +11 -0
  48. package/lib/message.js.map +1 -0
  49. package/lib/plugin.d.ts +50 -0
  50. package/lib/plugin.d.ts.map +1 -0
  51. package/lib/plugin.js +170 -0
  52. package/lib/plugin.js.map +1 -0
  53. package/lib/prompt.d.ts +116 -0
  54. package/lib/prompt.d.ts.map +1 -0
  55. package/lib/prompt.js +240 -0
  56. package/lib/prompt.js.map +1 -0
  57. package/lib/schema.d.ts +83 -0
  58. package/lib/schema.d.ts.map +1 -0
  59. package/lib/schema.js +245 -0
  60. package/lib/schema.js.map +1 -0
  61. package/{dist → lib}/types-generator.d.ts.map +1 -1
  62. package/{dist → lib}/types-generator.js +6 -3
  63. package/lib/types-generator.js.map +1 -0
  64. package/lib/types.d.ts +121 -0
  65. package/lib/types.d.ts.map +1 -0
  66. package/lib/utils.d.ts +52 -0
  67. package/lib/utils.d.ts.map +1 -0
  68. package/lib/utils.js +340 -0
  69. package/lib/utils.js.map +1 -0
  70. package/package.json +23 -9
  71. package/src/adapter.ts +25 -9
  72. package/src/app.ts +363 -258
  73. package/src/bot.ts +29 -8
  74. package/src/command.ts +50 -0
  75. package/src/component.ts +561 -0
  76. package/src/config.ts +9 -12
  77. package/src/cron.ts +176 -0
  78. package/src/errors.ts +365 -0
  79. package/src/index.ts +16 -13
  80. package/src/jsx-runtime.ts +12 -0
  81. package/src/jsx.d.ts +52 -0
  82. package/src/jsx.ts +92 -0
  83. package/src/message.ts +47 -0
  84. package/src/plugin.ts +148 -66
  85. package/src/prompt.ts +290 -0
  86. package/src/schema.ts +273 -0
  87. package/src/types-generator.ts +7 -3
  88. package/src/types.ts +80 -31
  89. package/src/utils.ts +313 -0
  90. package/tests/adapter.test.ts +36 -22
  91. package/tests/app.test.ts +30 -0
  92. package/tests/command.test.ts +545 -0
  93. package/tests/component-new.test.ts +348 -0
  94. package/tests/config.test.ts +1 -1
  95. package/tests/errors.test.ts +311 -0
  96. package/tests/expression-evaluation.test.ts +258 -0
  97. package/tests/message.test.ts +402 -0
  98. package/tests/plugin.test.ts +284 -143
  99. package/tests/utils.test.ts +80 -0
  100. package/tsconfig.json +3 -4
  101. package/dist/adapter.d.ts +0 -22
  102. package/dist/adapter.d.ts.map +0 -1
  103. package/dist/adapter.js.map +0 -1
  104. package/dist/app.d.ts +0 -69
  105. package/dist/app.d.ts.map +0 -1
  106. package/dist/app.js.map +0 -1
  107. package/dist/bot.d.ts +0 -9
  108. package/dist/bot.d.ts.map +0 -1
  109. package/dist/config.js.map +0 -1
  110. package/dist/index.d.ts +0 -9
  111. package/dist/index.d.ts.map +0 -1
  112. package/dist/index.js +0 -12
  113. package/dist/index.js.map +0 -1
  114. package/dist/logger.d.ts +0 -3
  115. package/dist/logger.d.ts.map +0 -1
  116. package/dist/logger.js +0 -3
  117. package/dist/logger.js.map +0 -1
  118. package/dist/plugin.d.ts +0 -41
  119. package/dist/plugin.d.ts.map +0 -1
  120. package/dist/plugin.js +0 -95
  121. package/dist/plugin.js.map +0 -1
  122. package/dist/types-generator.js.map +0 -1
  123. package/dist/types.d.ts +0 -69
  124. package/dist/types.d.ts.map +0 -1
  125. package/src/logger.ts +0 -3
  126. package/tests/logger.test.ts +0 -170
  127. package/tsconfig.tsbuildinfo +0 -1
  128. /package/{dist → lib}/bot.js +0 -0
  129. /package/{dist → lib}/bot.js.map +0 -0
  130. /package/{dist → lib}/config.d.ts +0 -0
  131. /package/{dist → lib}/types-generator.d.ts +0 -0
  132. /package/{dist → lib}/types.js +0 -0
  133. /package/{dist → lib}/types.js.map +0 -0
package/lib/types.d.ts ADDED
@@ -0,0 +1,121 @@
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
+ import { MessageComponent } from "./message.js";
7
+ /**
8
+ * 类型定义文件:包含适配器、消息、数据库、配置等核心类型声明。
9
+ * 协作者可通过本文件了解各主要数据结构的用途与关系。
10
+ */
11
+ declare module '@zhin.js/types' {
12
+ interface GlobalContext extends RegisteredAdapters {
13
+ }
14
+ }
15
+ /**
16
+ * 所有已注册适配器的类型映射(key为适配器名,value为Adapter实例)
17
+ */
18
+ export interface RegisteredAdapters extends Record<string, Adapter> {
19
+ }
20
+ /**
21
+ * 数据库配置类型,支持多种数据库驱动
22
+ */
23
+ export type DatabaseConfig<T extends keyof Databases = keyof Databases> = {
24
+ dialect: T;
25
+ } & Registry.Config<Databases[T]>;
26
+ /**
27
+ * 获取对象所有value类型
28
+ */
29
+ export type ObjectItem<T extends object> = T[keyof T];
30
+ /**
31
+ * 已注册适配器名类型
32
+ */
33
+ export type RegisteredAdapter = keyof RegisteredAdapters;
34
+ /**
35
+ * 指定适配器的消息类型
36
+ */
37
+ export type AdapterMessage<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? BotMessage<R> : {};
38
+ /**
39
+ * 指定适配器的配置类型
40
+ */
41
+ export type AdapterConfig<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? PlatformConfig<R> : BotConfig;
42
+ /**
43
+ * Bot实例的配置类型
44
+ */
45
+ export type PlatformConfig<T> = T extends Bot<infer L, infer R> ? R : BotConfig;
46
+ /**
47
+ * Bot实例的消息类型
48
+ */
49
+ export type BotMessage<T extends Bot> = T extends Bot<infer R> ? R : {};
50
+ /**
51
+ * 消息段结构,支持 text/image/at/face 等类型
52
+ */
53
+ export interface MessageSegment {
54
+ type: string;
55
+ data: Record<string, any>;
56
+ }
57
+ export type MessageElement = MessageSegment | MessageComponent<any>;
58
+ /**
59
+ * 单个或数组类型
60
+ */
61
+ export type MaybeArray<T> = T | T[];
62
+ /**
63
+ * 消息发送内容类型
64
+ */
65
+ export type SendContent = MaybeArray<string | MessageElement>;
66
+ /**
67
+ * 消息发送者信息
68
+ */
69
+ export interface MessageSender {
70
+ id: string;
71
+ name?: string;
72
+ }
73
+ /**
74
+ * 通用字典类型
75
+ */
76
+ export type Dict<V = any, K extends string | symbol = string> = Record<K, V>;
77
+ /**
78
+ * 用户信息结构
79
+ */
80
+ export interface User {
81
+ user_id: string;
82
+ nickname: string;
83
+ card?: string;
84
+ role?: string;
85
+ }
86
+ /**
87
+ * 群组信息结构
88
+ */
89
+ export interface Group {
90
+ group_id: string;
91
+ group_name: string;
92
+ member_count: number;
93
+ }
94
+ /**
95
+ * App配置类型,涵盖机器人、数据库、插件、调试等
96
+ */
97
+ export interface AppConfig {
98
+ /** 机器人配置列表 */
99
+ bots?: BotConfig[];
100
+ /** 数据库配置列表 */
101
+ database?: DatabaseConfig;
102
+ /** 插件目录列表,默认为 ['./plugins', 'node_modules'] */
103
+ plugin_dirs?: string[];
104
+ /** 需要加载的插件列表 */
105
+ plugins?: string[];
106
+ /** 禁用的依赖列表 */
107
+ disable_dependencies?: string[];
108
+ /** 是否启用调试模式 */
109
+ debug?: boolean;
110
+ }
111
+ /**
112
+ * defineConfig辅助类型,支持函数式/对象式配置
113
+ */
114
+ export type DefineConfig<T> = T | ((env: Record<string, string>) => MaybePromise<T>);
115
+ export interface SendOptions extends MessageChannel {
116
+ context: string;
117
+ bot: string;
118
+ content: SendContent;
119
+ }
120
+ export type BeforeSendHandler = (options: SendOptions) => MaybePromise<SendOptions | void>;
121
+ //# 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,EAAkC,WAAW,EAAC,MAAM,SAAS,CAAC;AAE1E,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,UAS3C;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"}
package/lib/utils.js ADDED
@@ -0,0 +1,340 @@
1
+ export function getValueWithRuntime(template, ctx) {
2
+ const result = evaluate(template, ctx);
3
+ if (result === `return(${template})`)
4
+ return undefined;
5
+ return result;
6
+ }
7
+ export const evaluate = (exp, context) => {
8
+ const result = execute(`return(${exp})`, context);
9
+ // 如果结果是原始表达式,说明访问被阻止,返回 undefined
10
+ if (result === `return(${exp})`)
11
+ return undefined;
12
+ return result;
13
+ };
14
+ const evalCache = Object.create(null);
15
+ export const execute = (exp, context) => {
16
+ const fn = evalCache[exp] || (evalCache[exp] = toFunction(exp));
17
+ context = {
18
+ ...context,
19
+ process: undefined,
20
+ global: undefined,
21
+ Buffer: undefined,
22
+ crypto: undefined
23
+ };
24
+ try {
25
+ return fn.apply(context, [context]);
26
+ }
27
+ catch {
28
+ return exp;
29
+ }
30
+ };
31
+ const toFunction = (exp) => {
32
+ try {
33
+ return new Function(`$data`, `with($data){${exp}}`);
34
+ }
35
+ catch {
36
+ return () => { };
37
+ }
38
+ };
39
+ export function compiler(template, ctx) {
40
+ const matched = [...template.matchAll(/\${([^}]*?)}/g)];
41
+ for (const item of matched) {
42
+ const tpl = item[1];
43
+ let value = getValueWithRuntime(tpl, ctx);
44
+ if (value === tpl)
45
+ continue;
46
+ if (typeof value !== 'string')
47
+ value = JSON.stringify(value, null, 2);
48
+ template = template.replace(`\${${item[1]}}`, value);
49
+ }
50
+ return template;
51
+ }
52
+ export function segment(type, data) {
53
+ return {
54
+ type,
55
+ data
56
+ };
57
+ }
58
+ (function (segment) {
59
+ function escape(text) {
60
+ if (typeof text !== 'string')
61
+ return text;
62
+ return text
63
+ .replace(/&/g, '&amp;')
64
+ .replace(/</g, '&lt;')
65
+ .replace(/>/g, '&gt;')
66
+ .replace(/"/g, '&quot;')
67
+ .replace(/'/g, '&#39;');
68
+ }
69
+ segment.escape = escape;
70
+ function unescape(text) {
71
+ if (typeof text !== 'string')
72
+ return text;
73
+ return text
74
+ .replace(/&lt;/g, '<')
75
+ .replace(/&gt;/g, '>')
76
+ .replace(/&quot;/g, '"')
77
+ .replace(/&#39;/g, "'")
78
+ .replace(/&amp;/g, '&');
79
+ }
80
+ segment.unescape = unescape;
81
+ function text(text) {
82
+ return segment('text', { text });
83
+ }
84
+ segment.text = text;
85
+ function face(id, text) {
86
+ return segment('face', { id, text });
87
+ }
88
+ segment.face = face;
89
+ function from(content) {
90
+ if (!Array.isArray(content))
91
+ content = [content];
92
+ const toString = (template) => {
93
+ if (typeof template !== 'string')
94
+ return [template];
95
+ template = unescape(template);
96
+ const result = [];
97
+ const closingReg = /<(\S+)(\s[^>]+)?\/>/;
98
+ const twinningReg = /<(\S+)(\s[^>]+)?>([\s\S]*?)<\/\1>/;
99
+ while (template.length) {
100
+ const [_, type, attrStr = '', child = ''] = template.match(twinningReg) || template.match(closingReg) || [];
101
+ if (!type)
102
+ break;
103
+ const isClosing = closingReg.test(template);
104
+ const matched = isClosing ? `<${type}${attrStr}/>` : `<${type}${attrStr}>${child}</${type}>`;
105
+ const index = template.indexOf(matched);
106
+ const prevText = template.slice(0, index);
107
+ if (prevText)
108
+ result.push({
109
+ type: 'text',
110
+ data: {
111
+ text: unescape(prevText),
112
+ },
113
+ });
114
+ template = template.slice(index + matched.length);
115
+ const attrArr = [...attrStr.matchAll(/\s([^=]+)(?=(?=="([^"]+)")|(?=='([^']+)'))/g)];
116
+ const data = Object.fromEntries(attrArr.map(([source, key, v1, v2]) => {
117
+ const value = v1 || v2;
118
+ try {
119
+ return [key, JSON.parse(unescape(value))];
120
+ }
121
+ catch {
122
+ return [key, unescape(value)];
123
+ }
124
+ }));
125
+ if (child) {
126
+ data.message = toString(child).map(({ type, data }) => ({ type, ...data }));
127
+ }
128
+ result.push({
129
+ type: type,
130
+ data,
131
+ });
132
+ }
133
+ if (template.length) {
134
+ result.push({
135
+ type: 'text',
136
+ data: {
137
+ text: unescape(template),
138
+ },
139
+ });
140
+ }
141
+ return result;
142
+ };
143
+ return content.reduce((result, item) => {
144
+ result.push(...toString(item));
145
+ return result;
146
+ }, []);
147
+ }
148
+ segment.from = from;
149
+ function raw(content) {
150
+ if (!Array.isArray(content))
151
+ content = [content];
152
+ return content.map(item => {
153
+ if (typeof item === 'string')
154
+ return item;
155
+ const { type, data } = item;
156
+ if (type === 'text')
157
+ return data.text;
158
+ return data.text ? `{${type}}(${data.text})` : `{${type}}`;
159
+ }).join('');
160
+ }
161
+ segment.raw = raw;
162
+ function toString(content) {
163
+ if (!Array.isArray(content))
164
+ content = [content];
165
+ return content.map(item => {
166
+ if (typeof item === 'string')
167
+ return item;
168
+ let { type, data } = item;
169
+ if (typeof type === 'function')
170
+ type = type.name;
171
+ if (type === 'text')
172
+ return data.text;
173
+ return `<${type} ${Object.keys(data).map(key => `${key}='${escape(JSON.stringify(data[key]))}'`).join(' ')}/>`;
174
+ }).join('');
175
+ }
176
+ segment.toString = toString;
177
+ })(segment || (segment = {}));
178
+ export function remove(list, arg) {
179
+ const index = typeof arg === 'function' && !list.every(item => typeof item === 'function')
180
+ ? list.findIndex(arg)
181
+ : list.indexOf(arg);
182
+ if (index !== -1)
183
+ list.splice(index, 1);
184
+ }
185
+ export function isEmpty(item) {
186
+ if (Array.isArray(item))
187
+ return item.length === 0;
188
+ if (typeof item === 'object') {
189
+ if (!item)
190
+ return true;
191
+ return Reflect.ownKeys(item).length === 0;
192
+ }
193
+ return false;
194
+ }
195
+ export var Time;
196
+ (function (Time) {
197
+ Time.millisecond = 1;
198
+ Time.second = 1000;
199
+ Time.minute = Time.second * 60;
200
+ Time.hour = Time.minute * 60;
201
+ Time.day = Time.hour * 24;
202
+ Time.week = Time.day * 7;
203
+ let timezoneOffset = new Date().getTimezoneOffset();
204
+ function setTimezoneOffset(offset) {
205
+ timezoneOffset = offset;
206
+ }
207
+ Time.setTimezoneOffset = setTimezoneOffset;
208
+ function getTimezoneOffset() {
209
+ return timezoneOffset;
210
+ }
211
+ Time.getTimezoneOffset = getTimezoneOffset;
212
+ function getDateNumber(date = new Date(), offset) {
213
+ if (typeof date === 'number')
214
+ date = new Date(date);
215
+ if (offset === undefined)
216
+ offset = timezoneOffset;
217
+ return Math.floor((date.valueOf() / Time.minute - offset) / 1440);
218
+ }
219
+ Time.getDateNumber = getDateNumber;
220
+ function fromDateNumber(value, offset) {
221
+ const date = new Date(value * Time.day);
222
+ if (offset === undefined)
223
+ offset = timezoneOffset;
224
+ return new Date(+date + offset * Time.minute);
225
+ }
226
+ Time.fromDateNumber = fromDateNumber;
227
+ const numeric = /\d+(?:\.\d+)?/.source;
228
+ const timeRegExp = new RegExp(`^${['w(?:eek(?:s)?)?', 'd(?:ay(?:s)?)?', 'h(?:our(?:s)?)?', 'm(?:in(?:ute)?(?:s)?)?', 's(?:ec(?:ond)?(?:s)?)?']
229
+ .map(unit => `(${numeric}${unit})?`)
230
+ .join('')}$`);
231
+ function parseTime(source) {
232
+ const capture = timeRegExp.exec(source);
233
+ if (!capture)
234
+ return 0;
235
+ return ((parseFloat(capture[1]) * Time.week || 0) +
236
+ (parseFloat(capture[2]) * Time.day || 0) +
237
+ (parseFloat(capture[3]) * Time.hour || 0) +
238
+ (parseFloat(capture[4]) * Time.minute || 0) +
239
+ (parseFloat(capture[5]) * Time.second || 0));
240
+ }
241
+ Time.parseTime = parseTime;
242
+ function parseDate(date) {
243
+ const parsed = parseTime(date);
244
+ if (parsed) {
245
+ date = (Date.now() + parsed);
246
+ }
247
+ else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
248
+ date = `${new Date().toLocaleDateString()}-${date}`;
249
+ }
250
+ else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
251
+ date = `${new Date().getFullYear()}-${date}`;
252
+ }
253
+ return date ? new Date(date) : new Date();
254
+ }
255
+ Time.parseDate = parseDate;
256
+ function formatTimeShort(ms) {
257
+ const abs = Math.abs(ms);
258
+ if (abs >= Time.day - Time.hour / 2) {
259
+ return Math.round(ms / Time.day) + 'd';
260
+ }
261
+ else if (abs >= Time.hour - Time.minute / 2) {
262
+ return Math.round(ms / Time.hour) + 'h';
263
+ }
264
+ else if (abs >= Time.minute - Time.second / 2) {
265
+ return Math.round(ms / Time.minute) + 'm';
266
+ }
267
+ else if (abs >= Time.second) {
268
+ return Math.round(ms / Time.second) + 's';
269
+ }
270
+ return ms + 'ms';
271
+ }
272
+ Time.formatTimeShort = formatTimeShort;
273
+ function formatTime(ms) {
274
+ let result;
275
+ if (ms >= Time.day - Time.hour / 2) {
276
+ ms += Time.hour / 2;
277
+ result = Math.floor(ms / Time.day) + ' 天';
278
+ if (ms % Time.day > Time.hour) {
279
+ result += ` ${Math.floor((ms % Time.day) / Time.hour)} 小时`;
280
+ }
281
+ }
282
+ else if (ms >= Time.hour - Time.minute / 2) {
283
+ ms += Time.minute / 2;
284
+ result = Math.floor(ms / Time.hour) + ' 小时';
285
+ if (ms % Time.hour > Time.minute) {
286
+ result += ` ${Math.floor((ms % Time.hour) / Time.minute)} 分钟`;
287
+ }
288
+ }
289
+ else if (ms >= Time.minute - Time.second / 2) {
290
+ ms += Time.second / 2;
291
+ result = Math.floor(ms / Time.minute) + ' 分钟';
292
+ if (ms % Time.minute > Time.second) {
293
+ result += ` ${Math.floor((ms % Time.minute) / Time.second)} 秒`;
294
+ }
295
+ }
296
+ else {
297
+ result = Math.round(ms / Time.second) + ' 秒';
298
+ }
299
+ return result;
300
+ }
301
+ Time.formatTime = formatTime;
302
+ const dayMap = ['日', '一', '二', '三', '四', '五', '六'];
303
+ function toDigits(source, length = 2) {
304
+ return source.toString().padStart(length, '0');
305
+ }
306
+ function template(template, time = new Date()) {
307
+ return template
308
+ .replace('yyyy', time.getFullYear().toString())
309
+ .replace('yy', time.getFullYear().toString().slice(2))
310
+ .replace('MM', toDigits(time.getMonth() + 1))
311
+ .replace('dd', toDigits(time.getDate()))
312
+ .replace('hh', toDigits(time.getHours()))
313
+ .replace('mm', toDigits(time.getMinutes()))
314
+ .replace('ss', toDigits(time.getSeconds()))
315
+ .replace('SSS', toDigits(time.getMilliseconds(), 3));
316
+ }
317
+ Time.template = template;
318
+ function toHourMinute(time) {
319
+ return `${toDigits(time.getHours())}:${toDigits(time.getMinutes())}`;
320
+ }
321
+ function formatTimeInterval(time, interval) {
322
+ if (!interval) {
323
+ return template('yyyy-MM-dd hh:mm:ss', time);
324
+ }
325
+ else if (interval === Time.day) {
326
+ return `每天 ${toHourMinute(time)}`;
327
+ }
328
+ else if (interval === Time.week) {
329
+ return `每周${dayMap[time.getDay()]} ${toHourMinute(time)}`;
330
+ }
331
+ else {
332
+ return `${template('yyyy-MM-dd hh:mm:ss', time)} 起每隔 ${formatTime(interval)}`;
333
+ }
334
+ }
335
+ Time.formatTimeInterval = formatTimeInterval;
336
+ })(Time || (Time = {}));
337
+ export function sleep(ms) {
338
+ return new Promise(resolve => setTimeout(resolve, ms));
339
+ }
340
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,29 +1,43 @@
1
1
  {
2
2
  "name": "@zhin.js/core",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Zhin机器人核心框架",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
6
+ "main": "./lib/index.js",
7
+ "types": "./lib/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
10
+ "types": "./lib/index.d.ts",
11
+ "import": "./lib/index.js"
12
+ },
13
+ "./jsx": {
14
+ "types": "./lib/jsx.d.ts",
15
+ "import": "./lib/jsx.js"
16
+ },
17
+ "./jsx-runtime": {
18
+ "types": "./lib/jsx-runtime.d.ts",
19
+ "import": "./lib/jsx-runtime.js"
12
20
  }
13
21
  },
14
22
  "dependencies": {
15
- "ws": "^8.14.2",
23
+ "segment-matcher": "1.0.3",
16
24
  "yaml": "^2.3.4",
17
25
  "toml": "^3.0.0",
18
26
  "dotenv": "^16.3.1",
19
- "@zhin.js/hmr": "1.0.0"
27
+ "cron-parser": "latest",
28
+ "@zhin.js/hmr": "1.0.1",
29
+ "@zhin.js/database": "1.0.0"
30
+ },
31
+ "peerDependencies": {
32
+ "@zhin.js/logger": "0.1.0"
20
33
  },
21
34
  "devDependencies": {
35
+ "@types/node": "^24.3.0",
22
36
  "typescript": "^5.3.0",
23
- "@zhin.js/types": "1.0.0"
37
+ "@zhin.js/types": "1.0.1"
24
38
  },
25
39
  "scripts": {
26
40
  "build": "tsc",
27
- "clean": "rm -rf dist"
41
+ "clean": "rm -rf lib"
28
42
  }
29
43
  }