@zhin.js/cli 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 +7 -0
- package/LICENSE +21 -0
- package/README.md +244 -56
- package/{dist → lib}/commands/build.d.ts.map +1 -1
- package/{dist → lib}/commands/build.js +3 -2
- package/lib/commands/build.js.map +1 -0
- package/{dist → lib}/commands/dev.d.ts.map +1 -1
- package/{dist → lib}/commands/dev.js +2 -1
- package/lib/commands/dev.js.map +1 -0
- package/{dist → lib}/commands/init.js +194 -140
- package/lib/commands/init.js.map +1 -0
- package/{dist → lib}/utils/logger.d.ts +1 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +79 -0
- package/lib/utils/logger.js.map +1 -0
- package/{dist → lib}/utils/process.d.ts.map +1 -1
- package/{dist → lib}/utils/process.js +2 -1
- package/lib/utils/process.js.map +1 -0
- package/package.json +9 -7
- package/src/commands/build.ts +3 -2
- package/src/commands/dev.ts +2 -1
- package/src/commands/init.ts +200 -140
- package/src/commands/start.ts +1 -1
- package/src/utils/logger.ts +81 -10
- package/src/utils/process.ts +2 -1
- package/tsconfig.json +3 -4
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -18
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/process.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
- /package/{dist → lib}/cli.d.ts +0 -0
- /package/{dist → lib}/cli.d.ts.map +0 -0
- /package/{dist → lib}/cli.js +0 -0
- /package/{dist → lib}/cli.js.map +0 -0
- /package/{dist → lib}/commands/build.d.ts +0 -0
- /package/{dist → lib}/commands/dev.d.ts +0 -0
- /package/{dist → lib}/commands/init.d.ts +0 -0
- /package/{dist → lib}/commands/init.d.ts.map +0 -0
- /package/{dist → lib}/commands/start.d.ts +0 -0
- /package/{dist → lib}/commands/start.d.ts.map +0 -0
- /package/{dist → lib}/commands/start.js +0 -0
- /package/{dist → lib}/commands/start.js.map +0 -0
- /package/{dist → lib}/commands/stop.d.ts +0 -0
- /package/{dist → lib}/commands/stop.d.ts.map +0 -0
- /package/{dist → lib}/commands/stop.js +0 -0
- /package/{dist → lib}/commands/stop.js.map +0 -0
- /package/{dist → lib}/index.d.ts +0 -0
- /package/{dist → lib}/index.d.ts.map +0 -0
- /package/{dist → lib}/index.js +0 -0
- /package/{dist → lib}/index.js.map +0 -0
- /package/{dist → lib}/utils/env.d.ts +0 -0
- /package/{dist → lib}/utils/env.d.ts.map +0 -0
- /package/{dist → lib}/utils/env.js +0 -0
- /package/{dist → lib}/utils/env.js.map +0 -0
- /package/{dist → lib}/utils/process.d.ts +0 -0
|
@@ -132,27 +132,39 @@ async function createProjectStructure(projectPath, projectName, options) {
|
|
|
132
132
|
await fs.ensureDir(path.join(projectPath, 'src', 'plugins'));
|
|
133
133
|
await fs.ensureDir(path.join(projectPath, 'dist'));
|
|
134
134
|
await fs.ensureDir(path.join(projectPath, 'data'));
|
|
135
|
+
// 检查是否在工作区中
|
|
136
|
+
const isInWorkspace = await checkIfInWorkspace();
|
|
137
|
+
const versionSuffix = isInWorkspace ? 'workspace:*' : 'latest';
|
|
135
138
|
// 创建 package.json
|
|
136
139
|
const packageJson = {
|
|
137
140
|
name: projectName,
|
|
141
|
+
private: true,
|
|
138
142
|
version: '0.1.0',
|
|
139
143
|
description: `${projectName} 机器人`,
|
|
140
144
|
type: 'module',
|
|
141
145
|
main: 'src/index.ts',
|
|
142
146
|
scripts: {
|
|
143
|
-
dev:
|
|
147
|
+
dev: 'zhin dev',
|
|
144
148
|
start: options.runtime === 'bun' ? 'zhin start --bun' : 'zhin start',
|
|
145
149
|
daemon: options.runtime === 'bun' ? 'zhin start --bun --daemon' : 'zhin start --daemon',
|
|
146
150
|
build: 'zhin build',
|
|
147
151
|
stop: 'zhin stop'
|
|
148
152
|
},
|
|
149
153
|
dependencies: {
|
|
150
|
-
'
|
|
154
|
+
'zhin.js': versionSuffix,
|
|
155
|
+
'@zhin.js/adapter-process': versionSuffix,
|
|
156
|
+
'@zhin.js/http': versionSuffix,
|
|
157
|
+
'@zhin.js/console': versionSuffix
|
|
151
158
|
},
|
|
152
159
|
devDependencies: {
|
|
153
|
-
'@zhin.js/cli':
|
|
154
|
-
'
|
|
155
|
-
|
|
160
|
+
'@zhin.js/cli': versionSuffix,
|
|
161
|
+
'@zhin.js/types': versionSuffix,
|
|
162
|
+
'typescript': 'latest',
|
|
163
|
+
...(options.runtime === 'bun' ? {
|
|
164
|
+
'bun': 'latest'
|
|
165
|
+
} : {
|
|
166
|
+
'tsx': 'latest'
|
|
167
|
+
})
|
|
156
168
|
},
|
|
157
169
|
engines: {
|
|
158
170
|
node: '>=18.0.0'
|
|
@@ -178,10 +190,14 @@ async function createProjectStructure(projectPath, projectName, options) {
|
|
|
178
190
|
declaration: false,
|
|
179
191
|
sourceMap: true,
|
|
180
192
|
baseUrl: './src',
|
|
181
|
-
|
|
182
|
-
'@
|
|
183
|
-
'@zhin.js/
|
|
184
|
-
|
|
193
|
+
types: [
|
|
194
|
+
'@types/node',
|
|
195
|
+
'@zhin.js/types',
|
|
196
|
+
'zhin.js',
|
|
197
|
+
'@zhin.js/http',
|
|
198
|
+
'@zhin.js/adapter-process',
|
|
199
|
+
'@zhin.js/console'
|
|
200
|
+
]
|
|
185
201
|
},
|
|
186
202
|
include: ['src/**/*'],
|
|
187
203
|
exclude: ['dist', 'node_modules']
|
|
@@ -190,7 +206,7 @@ async function createProjectStructure(projectPath, projectName, options) {
|
|
|
190
206
|
// 创建配置文件
|
|
191
207
|
await createConfigFile(projectPath, options.config);
|
|
192
208
|
// 创建主入口文件
|
|
193
|
-
const indexContent = `import { createApp } from '
|
|
209
|
+
const indexContent = `import { createApp } from 'zhin.js';
|
|
194
210
|
|
|
195
211
|
// 启动机器人
|
|
196
212
|
async function main() {
|
|
@@ -205,10 +221,10 @@ async function main() {
|
|
|
205
221
|
process.exit(0);
|
|
206
222
|
};
|
|
207
223
|
|
|
208
|
-
process.on('SIGINT', shutdown);
|
|
209
|
-
process.on('SIGTERM', shutdown);
|
|
224
|
+
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
225
|
+
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
210
226
|
} catch (error) {
|
|
211
|
-
console.error
|
|
227
|
+
// console.error 已替换为注释
|
|
212
228
|
process.exit(1);
|
|
213
229
|
}
|
|
214
230
|
}
|
|
@@ -219,45 +235,75 @@ main().catch(console.error);
|
|
|
219
235
|
await fs.writeFile(path.join(projectPath, 'src', 'index.ts'), indexContent);
|
|
220
236
|
// 创建示例插件
|
|
221
237
|
const pluginContent = `import {
|
|
238
|
+
useLogger,
|
|
239
|
+
onMessage,
|
|
240
|
+
addCommand,
|
|
241
|
+
addMiddleware,
|
|
242
|
+
MessageCommand,
|
|
243
|
+
useContext,
|
|
222
244
|
onDispose,
|
|
223
|
-
|
|
224
|
-
} from '@zhin.js/core';
|
|
225
|
-
import * as process from "node:process";
|
|
226
|
-
|
|
227
|
-
onDispose(async ()=>{
|
|
228
|
-
console.log('插件已销毁')
|
|
229
|
-
})
|
|
230
|
-
|
|
231
|
-
addMiddleware(async (message, next)=>{ // 添加中间件到插件
|
|
232
|
-
// 在这里处理消息
|
|
233
|
-
return next()
|
|
234
|
-
})
|
|
235
|
-
|
|
236
|
-
let hasChanged=false
|
|
237
|
-
beforeSend((options)=>{
|
|
238
|
-
if(!hasChanged){
|
|
239
|
-
options.content='bar'
|
|
240
|
-
hasChanged=true
|
|
241
|
-
}
|
|
242
|
-
return options
|
|
243
|
-
})
|
|
245
|
+
} from 'zhin.js';
|
|
244
246
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
247
|
+
const logger = useLogger();
|
|
248
|
+
|
|
249
|
+
// 添加命令
|
|
250
|
+
addCommand(new MessageCommand('hello')
|
|
251
|
+
.action(async (message) => {
|
|
252
|
+
logger.info('Hello command called by:', message.sender.name);
|
|
253
|
+
return '你好!欢迎使用 Zhin 机器人框架!';
|
|
254
|
+
})
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
addCommand(new MessageCommand('status')
|
|
258
|
+
.action(() => {
|
|
259
|
+
const uptime = process.uptime() * 1000;
|
|
260
|
+
const memory = process.memoryUsage();
|
|
261
|
+
return [
|
|
262
|
+
'🤖 机器人状态',
|
|
263
|
+
\`⏱️ 运行时间: \${formatTime(uptime)}\`,
|
|
264
|
+
\`📊 内存使用: \${(memory.rss / 1024 / 1024).toFixed(2)}MB\`,
|
|
265
|
+
\`🔧 Node.js: \${process.version}\`
|
|
266
|
+
].join('\\n');
|
|
259
267
|
})
|
|
260
|
-
|
|
268
|
+
);
|
|
269
|
+
|
|
270
|
+
// 添加中间件
|
|
271
|
+
addMiddleware(async (message, next) => {
|
|
272
|
+
logger.info(\`收到消息: \${message.raw}\`);
|
|
273
|
+
await next();
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
// 监听消息
|
|
277
|
+
onMessage(async (message) => {
|
|
278
|
+
if (message.raw.includes('帮助')) {
|
|
279
|
+
await message.reply('可用命令:hello, status\\n输入命令即可使用!');
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// 使用 process 上下文
|
|
284
|
+
useContext('process', () => {
|
|
285
|
+
logger.info('Process 适配器已就绪,可以在控制台输入消息进行测试');
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// 插件销毁时的清理
|
|
289
|
+
onDispose(() => {
|
|
290
|
+
logger.info('测试插件已销毁');
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// 工具函数
|
|
294
|
+
function formatTime(ms: number): string {
|
|
295
|
+
const seconds = Math.floor(ms / 1000);
|
|
296
|
+
const minutes = Math.floor(seconds / 60);
|
|
297
|
+
const hours = Math.floor(minutes / 60);
|
|
298
|
+
const days = Math.floor(hours / 24);
|
|
299
|
+
|
|
300
|
+
if (days > 0) return \`\${days}天 \${hours % 24}小时\`;
|
|
301
|
+
if (hours > 0) return \`\${hours}小时 \${minutes % 60}分钟\`;
|
|
302
|
+
if (minutes > 0) return \`\${minutes}分钟 \${seconds % 60}秒\`;
|
|
303
|
+
return \`\${seconds}秒\`;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
logger.info('测试插件已加载');
|
|
261
307
|
`;
|
|
262
308
|
await fs.writeFile(path.join(projectPath, 'src', 'plugins', 'test-plugin.ts'), pluginContent);
|
|
263
309
|
// 创建 .gitignore
|
|
@@ -454,6 +500,29 @@ MIT License
|
|
|
454
500
|
`;
|
|
455
501
|
await fs.writeFile(path.join(projectPath, 'pnpm-workspace.yaml'), workspaceContent);
|
|
456
502
|
}
|
|
503
|
+
// 创建环境变量示例文件
|
|
504
|
+
const envExampleContent = `# Zhin Bot 环境变量配置示例
|
|
505
|
+
# 复制为 .env 文件并根据需要修改
|
|
506
|
+
|
|
507
|
+
# 调试模式
|
|
508
|
+
DEBUG=true
|
|
509
|
+
|
|
510
|
+
# 插件目录 (可选)
|
|
511
|
+
# PLUGIN_DIR=./src/plugins
|
|
512
|
+
|
|
513
|
+
# KOOK 机器人配置 (如果使用 KOOK 适配器)
|
|
514
|
+
# KOOK_TOKEN=your-kook-token
|
|
515
|
+
|
|
516
|
+
# ICQQ 机器人配置 (如果使用 ICQQ 适配器)
|
|
517
|
+
# ICQQ_SCAN_UIN=your-qq-number
|
|
518
|
+
# ICQQ_LOGIN_UIN=your-qq-number
|
|
519
|
+
# ICQQ_SIGN_ADDR=http://localhost:8080
|
|
520
|
+
|
|
521
|
+
# OneBot 机器人配置 (如果使用 OneBot 适配器)
|
|
522
|
+
# BOT_URL=ws://localhost:8080
|
|
523
|
+
# ACCESS_TOKEN=your-access-token
|
|
524
|
+
`;
|
|
525
|
+
await fs.writeFile(path.join(projectPath, '.env.example'), envExampleContent);
|
|
457
526
|
}
|
|
458
527
|
async function createConfigFile(projectPath, format) {
|
|
459
528
|
const configContent = getConfigContent(format);
|
|
@@ -463,7 +532,7 @@ async function createConfigFile(projectPath, format) {
|
|
|
463
532
|
fileName = 'zhin.config.ts';
|
|
464
533
|
break;
|
|
465
534
|
case 'js':
|
|
466
|
-
fileName = 'zhin.config.
|
|
535
|
+
fileName = 'zhin.config.ts';
|
|
467
536
|
break;
|
|
468
537
|
default:
|
|
469
538
|
fileName = `zhin.config.${format}`;
|
|
@@ -478,12 +547,6 @@ function getConfigContent(format) {
|
|
|
478
547
|
{
|
|
479
548
|
name: `${process.pid}`,
|
|
480
549
|
context: 'process'
|
|
481
|
-
},
|
|
482
|
-
{
|
|
483
|
-
name: '1689919782',
|
|
484
|
-
context: 'icqq',
|
|
485
|
-
log_level: 'off',
|
|
486
|
-
platform: 4
|
|
487
550
|
}
|
|
488
551
|
],
|
|
489
552
|
plugin_dirs: [
|
|
@@ -491,8 +554,9 @@ function getConfigContent(format) {
|
|
|
491
554
|
'node_modules'
|
|
492
555
|
],
|
|
493
556
|
plugins: [
|
|
494
|
-
'
|
|
495
|
-
'
|
|
557
|
+
'adapter-process',
|
|
558
|
+
'http',
|
|
559
|
+
'console',
|
|
496
560
|
'test-plugin'
|
|
497
561
|
],
|
|
498
562
|
debug: false
|
|
@@ -504,10 +568,6 @@ function getConfigContent(format) {
|
|
|
504
568
|
bots:
|
|
505
569
|
- name: \${process.pid}
|
|
506
570
|
context: process
|
|
507
|
-
- name: '1689919782'
|
|
508
|
-
context: icqq
|
|
509
|
-
log_level: off
|
|
510
|
-
platform: 4
|
|
511
571
|
|
|
512
572
|
# 插件目录
|
|
513
573
|
plugin_dirs:
|
|
@@ -516,8 +576,9 @@ plugin_dirs:
|
|
|
516
576
|
|
|
517
577
|
# 要加载的插件列表
|
|
518
578
|
plugins:
|
|
519
|
-
-
|
|
520
|
-
-
|
|
579
|
+
- adapter-process
|
|
580
|
+
- http
|
|
581
|
+
- console
|
|
521
582
|
- test-plugin
|
|
522
583
|
|
|
523
584
|
# 调试模式
|
|
@@ -531,90 +592,78 @@ debug: false
|
|
|
531
592
|
name = "\${process.pid}"
|
|
532
593
|
context = "process"
|
|
533
594
|
|
|
534
|
-
[[bots]]
|
|
535
|
-
name = "1689919782"
|
|
536
|
-
context = "icqq"
|
|
537
|
-
log_level = "off"
|
|
538
|
-
platform = 4
|
|
539
|
-
|
|
540
595
|
# 插件目录
|
|
541
596
|
plugin_dirs = ["./src/plugins", "node_modules"]
|
|
542
597
|
|
|
543
598
|
# 要加载的插件列表
|
|
544
|
-
plugins = ["
|
|
599
|
+
plugins = ["adapter-process", "http", "console", "test-plugin"]
|
|
545
600
|
|
|
546
601
|
# 调试模式
|
|
547
602
|
debug = false
|
|
548
603
|
`;
|
|
549
604
|
case 'ts':
|
|
550
|
-
return `import { defineConfig } from '
|
|
605
|
+
return `import { defineConfig } from 'zhin.js';
|
|
551
606
|
|
|
552
|
-
export default defineConfig(async (env)=>{
|
|
607
|
+
export default defineConfig(async (env) => {
|
|
553
608
|
return {
|
|
554
609
|
// 机器人配置
|
|
555
610
|
bots: [
|
|
556
611
|
{
|
|
557
612
|
name: \`\${process.pid}\`,
|
|
558
613
|
context: 'process'
|
|
559
|
-
},
|
|
560
|
-
{
|
|
561
|
-
name: '1689919782',
|
|
562
|
-
context: 'icqq',
|
|
563
|
-
log_level: 'off',
|
|
564
|
-
platform: 4
|
|
565
614
|
}
|
|
566
615
|
],
|
|
616
|
+
|
|
567
617
|
// 插件目录
|
|
568
618
|
plugin_dirs: [
|
|
569
619
|
env.PLUGIN_DIR || './src/plugins',
|
|
570
620
|
'node_modules'
|
|
571
621
|
],
|
|
622
|
+
|
|
572
623
|
// 要加载的插件列表
|
|
573
624
|
plugins: [
|
|
574
|
-
'
|
|
575
|
-
'
|
|
625
|
+
'adapter-process',
|
|
626
|
+
'http',
|
|
627
|
+
'console',
|
|
576
628
|
'test-plugin'
|
|
577
629
|
],
|
|
578
630
|
|
|
579
631
|
// 调试模式
|
|
580
632
|
debug: env.DEBUG === 'true'
|
|
581
|
-
}
|
|
582
|
-
})
|
|
633
|
+
};
|
|
634
|
+
});
|
|
583
635
|
`;
|
|
584
636
|
case 'js':
|
|
585
|
-
return `import { defineConfig } from '
|
|
637
|
+
return `import { defineConfig } from 'zhin.js';
|
|
586
638
|
|
|
587
|
-
export default defineConfig(async (env)=>{
|
|
639
|
+
export default defineConfig(async (env) => {
|
|
588
640
|
return {
|
|
589
641
|
// 机器人配置
|
|
590
642
|
bots: [
|
|
591
643
|
{
|
|
592
644
|
name: \`\${process.pid}\`,
|
|
593
645
|
context: 'process'
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
name: '1689919782',
|
|
597
|
-
context: 'icqq',
|
|
598
|
-
log_level: 'off',
|
|
599
|
-
platform: 4
|
|
600
646
|
}
|
|
601
647
|
],
|
|
648
|
+
|
|
602
649
|
// 插件目录
|
|
603
650
|
plugin_dirs: [
|
|
604
651
|
env.PLUGIN_DIR || './src/plugins',
|
|
605
652
|
'node_modules'
|
|
606
653
|
],
|
|
654
|
+
|
|
607
655
|
// 要加载的插件列表
|
|
608
656
|
plugins: [
|
|
609
|
-
'
|
|
610
|
-
'
|
|
657
|
+
'adapter-process',
|
|
658
|
+
'http',
|
|
659
|
+
'console',
|
|
611
660
|
'test-plugin'
|
|
612
661
|
],
|
|
613
662
|
|
|
614
663
|
// 调试模式
|
|
615
664
|
debug: env.DEBUG === 'true'
|
|
616
|
-
}
|
|
617
|
-
})
|
|
665
|
+
};
|
|
666
|
+
});
|
|
618
667
|
`;
|
|
619
668
|
default:
|
|
620
669
|
throw new Error(`不支持的配置格式: ${format}`);
|
|
@@ -629,12 +678,6 @@ function getConfigExample(format) {
|
|
|
629
678
|
{
|
|
630
679
|
"name": "\${process.pid}",
|
|
631
680
|
"context": "process"
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
"name": "1689919782",
|
|
635
|
-
"context": "icqq",
|
|
636
|
-
"log_level": "off",
|
|
637
|
-
"platform": 4
|
|
638
681
|
}
|
|
639
682
|
],
|
|
640
683
|
"plugin_dirs": [
|
|
@@ -642,8 +685,9 @@ function getConfigExample(format) {
|
|
|
642
685
|
"node_modules"
|
|
643
686
|
],
|
|
644
687
|
"plugins": [
|
|
645
|
-
"
|
|
646
|
-
"
|
|
688
|
+
"adapter-process",
|
|
689
|
+
"http",
|
|
690
|
+
"console",
|
|
647
691
|
"test-plugin"
|
|
648
692
|
],
|
|
649
693
|
"debug": false
|
|
@@ -658,10 +702,6 @@ function getConfigExample(format) {
|
|
|
658
702
|
bots:
|
|
659
703
|
- name: \${process.pid}
|
|
660
704
|
context: process
|
|
661
|
-
- name: '1689919782'
|
|
662
|
-
context: icqq
|
|
663
|
-
log_level: off
|
|
664
|
-
platform: 4
|
|
665
705
|
|
|
666
706
|
# 插件目录
|
|
667
707
|
plugin_dirs:
|
|
@@ -670,8 +710,9 @@ plugin_dirs:
|
|
|
670
710
|
|
|
671
711
|
# 要加载的插件列表
|
|
672
712
|
plugins:
|
|
673
|
-
-
|
|
674
|
-
-
|
|
713
|
+
- adapter-process
|
|
714
|
+
- http
|
|
715
|
+
- console
|
|
675
716
|
- test-plugin
|
|
676
717
|
|
|
677
718
|
# 调试模式
|
|
@@ -687,17 +728,11 @@ debug: false
|
|
|
687
728
|
name = "\${process.pid}"
|
|
688
729
|
context = "process"
|
|
689
730
|
|
|
690
|
-
[[bots]]
|
|
691
|
-
name = "1689919782"
|
|
692
|
-
context = "icqq"
|
|
693
|
-
log_level = "off"
|
|
694
|
-
platform = 4
|
|
695
|
-
|
|
696
731
|
# 插件目录
|
|
697
732
|
plugin_dirs = ["./src/plugins", "node_modules"]
|
|
698
733
|
|
|
699
734
|
# 要加载的插件列表
|
|
700
|
-
plugins = ["
|
|
735
|
+
plugins = ["adapter-process", "http", "console", "test-plugin"]
|
|
701
736
|
|
|
702
737
|
# 调试模式
|
|
703
738
|
debug = false
|
|
@@ -705,80 +740,99 @@ debug = false
|
|
|
705
740
|
`;
|
|
706
741
|
case 'ts':
|
|
707
742
|
return `\`\`\`typescript
|
|
708
|
-
import { defineConfig } from '
|
|
743
|
+
import { defineConfig } from 'zhin.js';
|
|
709
744
|
|
|
710
|
-
export default defineConfig(async (env)=>{
|
|
745
|
+
export default defineConfig(async (env) => {
|
|
711
746
|
return {
|
|
712
747
|
// 机器人配置
|
|
713
748
|
bots: [
|
|
714
749
|
{
|
|
715
750
|
name: \`\${process.pid}\`,
|
|
716
751
|
context: 'process'
|
|
717
|
-
},
|
|
718
|
-
{
|
|
719
|
-
name: '1689919782',
|
|
720
|
-
context: 'icqq',
|
|
721
|
-
log_level: 'off',
|
|
722
|
-
platform: 4
|
|
723
752
|
}
|
|
724
753
|
],
|
|
754
|
+
|
|
725
755
|
// 插件目录
|
|
726
756
|
plugin_dirs: [
|
|
727
757
|
env.PLUGIN_DIR || './src/plugins',
|
|
728
758
|
'node_modules'
|
|
729
759
|
],
|
|
760
|
+
|
|
730
761
|
// 要加载的插件列表
|
|
731
762
|
plugins: [
|
|
732
|
-
'
|
|
733
|
-
'
|
|
763
|
+
'adapter-process',
|
|
764
|
+
'http',
|
|
765
|
+
'console',
|
|
734
766
|
'test-plugin'
|
|
735
767
|
],
|
|
736
768
|
|
|
737
769
|
// 调试模式
|
|
738
770
|
debug: env.DEBUG === 'true'
|
|
739
|
-
}
|
|
740
|
-
})
|
|
771
|
+
};
|
|
772
|
+
});
|
|
741
773
|
\`\`\`
|
|
742
774
|
`;
|
|
743
775
|
case 'js':
|
|
744
776
|
return `\`\`\`javascript
|
|
745
|
-
import { defineConfig } from '
|
|
777
|
+
import { defineConfig } from 'zhin.js';
|
|
746
778
|
|
|
747
|
-
export default defineConfig(async (env)=>{
|
|
779
|
+
export default defineConfig(async (env) => {
|
|
748
780
|
return {
|
|
749
781
|
// 机器人配置
|
|
750
782
|
bots: [
|
|
751
783
|
{
|
|
752
784
|
name: \`\${process.pid}\`,
|
|
753
785
|
context: 'process'
|
|
754
|
-
},
|
|
755
|
-
{
|
|
756
|
-
name: '1689919782',
|
|
757
|
-
context: 'icqq',
|
|
758
|
-
log_level: 'off',
|
|
759
|
-
platform: 4
|
|
760
786
|
}
|
|
761
787
|
],
|
|
788
|
+
|
|
762
789
|
// 插件目录
|
|
763
790
|
plugin_dirs: [
|
|
764
791
|
env.PLUGIN_DIR || './src/plugins',
|
|
765
792
|
'node_modules'
|
|
766
793
|
],
|
|
794
|
+
|
|
767
795
|
// 要加载的插件列表
|
|
768
796
|
plugins: [
|
|
769
|
-
'
|
|
770
|
-
'
|
|
797
|
+
'adapter-process',
|
|
798
|
+
'http',
|
|
799
|
+
'console',
|
|
771
800
|
'test-plugin'
|
|
772
801
|
],
|
|
773
802
|
|
|
774
803
|
// 调试模式
|
|
775
804
|
debug: env.DEBUG === 'true'
|
|
776
|
-
}
|
|
777
|
-
})
|
|
805
|
+
};
|
|
806
|
+
});
|
|
778
807
|
\`\`\`
|
|
779
808
|
`;
|
|
780
809
|
default:
|
|
781
810
|
throw new Error(`不支持的配置格式: ${format}`);
|
|
782
811
|
}
|
|
783
812
|
}
|
|
813
|
+
async function checkIfInWorkspace() {
|
|
814
|
+
let currentDir = process.cwd();
|
|
815
|
+
while (currentDir !== path.dirname(currentDir)) {
|
|
816
|
+
// 检查 pnpm-workspace.yaml
|
|
817
|
+
const pnpmWorkspacePath = path.join(currentDir, 'pnpm-workspace.yaml');
|
|
818
|
+
if (fs.existsSync(pnpmWorkspacePath)) {
|
|
819
|
+
return true;
|
|
820
|
+
}
|
|
821
|
+
// 检查 package.json 中的 workspaces 字段
|
|
822
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
823
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
824
|
+
try {
|
|
825
|
+
const packageJson = fs.readJsonSync(packageJsonPath);
|
|
826
|
+
if (packageJson.workspaces) {
|
|
827
|
+
return true;
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
catch {
|
|
831
|
+
// 忽略错误,继续向上查找
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
currentDir = path.dirname(currentDir);
|
|
835
|
+
}
|
|
836
|
+
return false;
|
|
837
|
+
}
|
|
784
838
|
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,6 @@ export declare const logger: {
|
|
|
4
4
|
warn: (message: string, ...args: any[]) => void;
|
|
5
5
|
error: (message: string, ...args: any[]) => void;
|
|
6
6
|
log: (message: string, ...args: any[]) => void;
|
|
7
|
+
debug: (message: string, ...args: any[]) => void;
|
|
7
8
|
};
|
|
8
9
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,MAAM;oBACD,MAAM,WAAW,GAAG,EAAE;uBAYnB,MAAM,WAAW,GAAG,EAAE;oBAWzB,MAAM,WAAW,GAAG,EAAE;qBAWrB,MAAM,WAAW,GAAG,EAAE;mBAWxB,MAAM,WAAW,GAAG,EAAE;qBAWpB,MAAM,WAAW,GAAG,EAAE;CAUxC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { getLogger, LogLevel } from '@zhin.js/logger';
|
|
2
|
+
// 创建CLI专用的logger
|
|
3
|
+
const cliLogger = getLogger('CLI');
|
|
4
|
+
// 根据环境变量设置日志级别
|
|
5
|
+
const logLevel = process.env.ZHIN_LOG_LEVEL || process.env.NODE_ENV === 'development' ? 'debug' : 'info';
|
|
6
|
+
switch (logLevel.toLowerCase()) {
|
|
7
|
+
case 'debug':
|
|
8
|
+
cliLogger.setLevel(LogLevel.DEBUG);
|
|
9
|
+
break;
|
|
10
|
+
case 'warn':
|
|
11
|
+
cliLogger.setLevel(LogLevel.WARN);
|
|
12
|
+
break;
|
|
13
|
+
case 'error':
|
|
14
|
+
cliLogger.setLevel(LogLevel.ERROR);
|
|
15
|
+
break;
|
|
16
|
+
case 'silent':
|
|
17
|
+
cliLogger.setLevel(LogLevel.SILENT);
|
|
18
|
+
break;
|
|
19
|
+
default:
|
|
20
|
+
cliLogger.setLevel(LogLevel.INFO);
|
|
21
|
+
}
|
|
22
|
+
export const logger = {
|
|
23
|
+
info: (message, ...args) => {
|
|
24
|
+
if (args.length > 0) {
|
|
25
|
+
// 对于多个参数,直接拼接到消息中,这样更自然
|
|
26
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
27
|
+
cliLogger.info(fullMessage);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
cliLogger.info(message);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
success: (message, ...args) => {
|
|
34
|
+
if (args.length > 0) {
|
|
35
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
36
|
+
cliLogger.success(fullMessage);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
cliLogger.success(message);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
warn: (message, ...args) => {
|
|
43
|
+
if (args.length > 0) {
|
|
44
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
45
|
+
cliLogger.warn(fullMessage);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
cliLogger.warn(message);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
error: (message, ...args) => {
|
|
52
|
+
if (args.length > 0) {
|
|
53
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
54
|
+
cliLogger.error(fullMessage);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
cliLogger.error(message);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
log: (message, ...args) => {
|
|
61
|
+
if (args.length > 0) {
|
|
62
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
63
|
+
cliLogger.info(fullMessage);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
cliLogger.info(message);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
debug: (message, ...args) => {
|
|
70
|
+
if (args.length > 0) {
|
|
71
|
+
const fullMessage = message + ' ' + args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg)).join(' ');
|
|
72
|
+
cliLogger.debug(fullMessage);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
cliLogger.debug(message);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=logger.js.map
|