@zhin.js/cli 1.0.5 → 1.0.6

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @zhin.js/cli
2
2
 
3
+ ## 1.0.6
4
+
5
+ ### Patch Changes
6
+
7
+ - c490260: fix: 更新脚手架结构,优化包依赖
8
+
3
9
  ## 1.0.5
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -1,54 +1,67 @@
1
1
  # @zhin.js/cli
2
2
 
3
- Zhin 机器人框架的全功能命令行工具,提供项目创建、开发调试、构建部署等完整开发流程支持。
3
+ Zhin 机器人框架的全功能命令行工具,提供项目创建、开发调试、插件构建、进程管理等完整开发流程支持。
4
4
 
5
5
  ## 核心功能
6
6
 
7
- - 🚀 **项目初始化**: 交互式创建新项目,支持多种配置格式
7
+ - 🧩 **插件开发**: 快速创建插件包,自动配置依赖
8
8
  - 🔥 **开发模式**: 热重载开发服务器,实时代码更新
9
- - 📦 **项目构建**: TypeScript编译和优化
9
+ - 📦 **插件构建**: 构建独立插件包(app + client)
10
10
  - 🛠️ **进程管理**: 生产环境启动、停止、重启、后台运行
11
11
  - ⚙️ **多运行时**: 支持 Node.js 和 Bun 运行时
12
- - 📄 **多配置格式**: 支持 JS/TS/JSON/YAML/TOML 配置文件
12
+
13
+ > **注意**: 项目初始化功能已移至 `create-zhin-app`,请使用 `npm create zhin-app` 创建新项目。
13
14
 
14
15
  ## 命令详解
15
16
 
16
- ### init - 项目初始化
17
+ ### new - 创建插件
17
18
 
18
- 创建新的 Zhin 机器人项目,支持交互式配置:
19
+ 创建新的插件包,自动添加到项目依赖:
19
20
 
20
21
  ```bash
21
- zhin init [project-name] [options]
22
+ zhin new [plugin-name] [options]
22
23
  ```
23
24
 
24
25
  **选项:**
25
- - `-c, --config <format>`: 配置文件格式 (json|yaml|toml|ts|js),默认 js
26
- - `-p, --package-manager <manager>`: 包管理器 (npm|yarn|pnpm),默认 pnpm
27
- - `-r, --runtime <runtime>`: 运行时 (node|bun),默认 node
28
- - `-y, --yes`: 使用默认选项,跳过所有交互
26
+ - `--skip-install`: 跳过依赖安装
29
27
 
30
- **生成的项目结构:**
28
+ **生成的插件结构:**
31
29
  ```
32
- my-bot/
33
- ├── src/
34
- ├── index.ts # 主入口文件
35
- │ └── plugins/ # 插件目录
36
- └── test-plugin.ts # 示例插件
37
- ├── dist/ # 构建输出目录
38
- ├── data/ # 数据存储目录
39
- ├── zhin.config.[ext] # 配置文件
40
- ├── package.json # 项目配置
41
- ├── tsconfig.json # TypeScript配置
42
- ├── .gitignore # Git忽略规则
43
- └── README.md # 项目文档
30
+ plugins/my-plugin/
31
+ ├── app/ # 插件逻辑代码
32
+ └── index.ts # 插件入口
33
+ ├── client/ # 客户端页面
34
+ ├── index.tsx # 页面入口
35
+ │ └── pages/ # React 组件
36
+ │ └── index.tsx
37
+ ├── lib/ # app 构建输出
38
+ ├── dist/ # client 构建输出
39
+ ├── package.json # 插件配置
40
+ ├── tsconfig.json # TypeScript 根配置
41
+ ├── tsconfig.app.json # app 构建配置
42
+ ├── tsconfig.client.json # client 构建配置
43
+ ├── README.md # 插件文档
44
+ └── CHANGELOG.md # 变更日志
44
45
  ```
45
46
 
46
- **配置文件支持:**
47
- - JavaScript (`zhin.config.ts`) - 支持环境变量和动态配置
48
- - TypeScript (`zhin.config.ts`) - 完整类型支持
49
- - JSON (`zhin.config.json`) - 简单静态配置
50
- - YAML (`zhin.config.yaml`) - 人性化格式
51
- - TOML (`zhin.config.toml`) - 结构化配置
47
+ **自动配置:**
48
+ - 创建完整的 npm 包结构
49
+ - 配置 TypeScript 编译
50
+ - 自动添加到根 `package.json` 依赖(`workspace:*`)
51
+ - 自动安装依赖
52
+ - 生成示例代码(命令、页面)
53
+
54
+ **使用示例:**
55
+ ```bash
56
+ # 交互式创建
57
+ zhin new
58
+
59
+ # 直接指定名称
60
+ zhin new my-awesome-plugin
61
+
62
+ # 跳过依赖安装
63
+ zhin new my-plugin --skip-install
64
+ ```
52
65
 
53
66
  ### dev - 开发模式
54
67
 
@@ -65,7 +78,7 @@ zhin dev [options]
65
78
  - 📊 **性能监控**: 实时性能统计
66
79
 
67
80
  **选项:**
68
- - `-p, --port [port]`: HMR服务端口,默认 3000
81
+ - `-p, --port [port]`: HTTP 服务端口,默认 8086
69
82
  - `--verbose`: 显示详细日志输出
70
83
  - `--bun`: 使用 bun 运行时(默认使用 tsx)
71
84
 
@@ -73,7 +86,7 @@ zhin dev [options]
73
86
  ```bash
74
87
  NODE_ENV=development
75
88
  ZHIN_DEV_MODE=true
76
- ZHIN_HMR_PORT=3000
89
+ HTTP_PORT=8086
77
90
  ZHIN_VERBOSE=false
78
91
  ```
79
92
 
@@ -139,44 +152,66 @@ zhin stop
139
152
  - 🧹 清理 PID 文件
140
153
  - 📝 详细停止日志
141
154
 
142
- ### build - 项目构建
155
+ ### build - 构建插件
143
156
 
144
- 编译 TypeScript 代码为生产环境 JavaScript:
157
+ 构建 `plugins/` 目录下的插件包:
145
158
 
146
159
  ```bash
147
- zhin build [options]
160
+ zhin build [plugin] [options]
148
161
  ```
149
162
 
163
+ **参数:**
164
+ - `[plugin]`: 可选,指定要构建的插件名称(不指定则构建所有插件)
165
+
150
166
  **选项:**
151
- - `--clean`: 构建前清理输出目录
167
+ - `--clean`: 构建前清理输出目录(`lib/` 和 `dist/`)
152
168
 
153
169
  **功能:**
154
- - 📦 TypeScript 编译
155
- - 🎯 类型检查
156
- - 🗂️ 文件组织
157
- - 构建优化
170
+ - 📦 构建插件的 app 代码(TypeScript → lib/)
171
+ - 构建插件的 client 页面(TypeScript → dist/)
172
+ - �🎯 完整的类型检查
173
+ - 🗂️ 自动组织输出文件
174
+ - ⚡ 并行构建优化
175
+
176
+ **使用示例:**
177
+ ```bash
178
+ # 构建所有插件
179
+ zhin build
180
+
181
+ # 只构建特定插件
182
+ zhin build my-plugin
183
+
184
+ # 清理后构建
185
+ zhin build --clean
186
+
187
+ # 清理后构建特定插件
188
+ zhin build my-plugin --clean
189
+ ```
190
+
191
+ **注意:**
192
+ - ❌ 不用于构建主应用(app 本身不需要构建)
193
+ - ✅ 只构建 `plugins/` 目录下的独立插件包
194
+ - ✅ 每个插件使用自己的 `package.json` 中的 `build` 脚本
158
195
 
159
196
  ## 完整工作流程
160
197
 
161
198
  ### 1. 创建新项目
162
199
 
163
200
  ```bash
164
- # 交互式创建
165
- zhin init my-awesome-bot
166
-
167
- # 快速创建(使用默认配置)
168
- zhin init my-bot -y
201
+ # 使用 create-zhin-app(推荐)
202
+ npm create zhin-app my-awesome-bot
203
+ # 或
204
+ pnpm create zhin-app my-awesome-bot
169
205
 
170
- # 自定义配置
171
- zhin init my-bot -c ts -p pnpm -r bun
206
+ cd my-awesome-bot
172
207
  ```
173
208
 
174
209
  ### 2. 开发阶段
175
210
 
176
211
  ```bash
177
- cd my-awesome-bot
178
-
179
- # 开发模式启动
212
+ # 开发模式启动(支持热重载)
213
+ pnpm dev
214
+ #
180
215
  zhin dev
181
216
 
182
217
  # 详细日志模式
@@ -186,30 +221,63 @@ zhin dev --verbose
186
221
  zhin dev --port 8080
187
222
  ```
188
223
 
189
- ### 3. 生产部署
224
+ ### 3. 创建插件
190
225
 
191
226
  ```bash
192
- # 构建项目
227
+ # 创建新插件
228
+ zhin new my-awesome-plugin
229
+
230
+ # 插件会自动添加到 package.json 依赖
231
+ # 在配置文件中启用插件
232
+ # 编辑 zhin.config.ts,添加到 plugins 数组:
233
+ # plugins: ['adapter-process', 'http', 'console', 'my-awesome-plugin']
234
+ ```
235
+
236
+ ### 4. 构建插件
237
+
238
+ ```bash
239
+ # 构建所有插件
240
+ pnpm build
241
+ # 或
193
242
  zhin build
194
243
 
244
+ # 只构建特定插件
245
+ zhin build my-awesome-plugin
246
+
247
+ # 清理后构建
248
+ zhin build --clean
249
+ ```
250
+
251
+ ### 5. 生产部署
252
+
253
+ ```bash
254
+ # 确保插件已构建
255
+ pnpm build
256
+
195
257
  # 前台测试
258
+ pnpm start
259
+ # 或
196
260
  zhin start
197
261
 
198
262
  # 后台部署
263
+ pnpm daemon
264
+ # 或
199
265
  zhin start --daemon --log-file ./logs/production.log
200
266
  ```
201
267
 
202
- ### 4. 运维管理
268
+ ### 6. 运维管理
203
269
 
204
270
  ```bash
205
271
  # 重启服务
206
272
  zhin restart
207
273
 
208
274
  # 停止服务
275
+ pnpm stop
276
+ # 或
209
277
  zhin stop
210
278
 
211
- # 重新构建并重启
212
- zhin build && zhin restart
279
+ # 重新构建插件并重启
280
+ pnpm build && zhin restart
213
281
  ```
214
282
 
215
283
  ## 高级配置
@@ -280,10 +348,10 @@ process.exit(51); // 特殊退出码,会触发自动重启
280
348
  2. **端口占用**
281
349
  ```bash
282
350
  # 检查端口占用
283
- lsof -i :3000
351
+ lsof -i :8086
284
352
 
285
353
  # 使用不同端口
286
- zhin dev --port 8080
354
+ zhin dev --port 8087
287
355
  ```
288
356
 
289
357
  3. **权限问题**
package/lib/cli.js CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
- import { initCommand } from './commands/init.js';
4
3
  import { startCommand, restartCommand } from './commands/start.js';
5
4
  import { stopCommand } from './commands/stop.js';
6
5
  import { devCommand } from './commands/dev.js';
7
6
  import { buildCommand } from './commands/build.js';
7
+ import { newCommand } from './commands/new.js';
8
8
  const program = new Command();
9
9
  program
10
10
  .name('zhin')
11
11
  .description('Zhin机器人框架CLI工具')
12
12
  .version('1.0.1');
13
13
  // 注册命令
14
- program.addCommand(initCommand);
15
14
  program.addCommand(startCommand);
16
15
  program.addCommand(restartCommand);
17
16
  program.addCommand(stopCommand);
18
17
  program.addCommand(devCommand);
19
18
  program.addCommand(buildCommand);
19
+ program.addCommand(newCommand);
20
20
  program.parse();
21
21
  //# sourceMappingURL=cli.js.map
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,gBAAgB,CAAC;KAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;AACP,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,gBAAgB,CAAC;KAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;AACP,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAgDrB,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAyDrB,CAAC"}
@@ -4,51 +4,97 @@ import { spawn } from 'child_process';
4
4
  import fs from 'fs-extra';
5
5
  import path from 'path';
6
6
  export const buildCommand = new Command('build')
7
- .description('构建机器人项目')
7
+ .description('构建插件项目')
8
+ .argument('[plugin]', '插件名称(默认构建所有插件)')
8
9
  .option('--clean', '清理输出目录', false)
9
- .action(async (options) => {
10
+ .action(async (pluginName, options) => {
10
11
  try {
11
12
  const cwd = process.cwd();
12
- // 检查是否是Zhin项目
13
- if (!isZhinProject(cwd)) {
14
- logger.error('当前目录不是Zhin项目');
13
+ // 检查是否是 workspace 项目
14
+ if (!isWorkspaceProject(cwd)) {
15
+ logger.error('当前目录不是 Zhin workspace 项目');
15
16
  process.exit(1);
16
17
  }
17
- const distPath = path.join(cwd, 'dist');
18
+ const pluginsDir = path.join(cwd, 'plugins');
19
+ if (!fs.existsSync(pluginsDir)) {
20
+ logger.error('未找到 plugins 目录');
21
+ process.exit(1);
22
+ }
23
+ // 如果指定了插件名称
24
+ if (pluginName) {
25
+ const pluginPath = path.join(pluginsDir, pluginName);
26
+ if (!fs.existsSync(pluginPath)) {
27
+ logger.error(`未找到插件: ${pluginName}`);
28
+ process.exit(1);
29
+ }
30
+ await buildPlugin(pluginPath, pluginName, options.clean);
31
+ }
32
+ else {
33
+ // 构建所有插件
34
+ const plugins = await fs.readdir(pluginsDir);
35
+ const validPlugins = plugins.filter(p => {
36
+ const pluginPath = path.join(pluginsDir, p);
37
+ const stat = fs.statSync(pluginPath);
38
+ return stat.isDirectory() && fs.existsSync(path.join(pluginPath, 'package.json'));
39
+ });
40
+ if (validPlugins.length === 0) {
41
+ logger.warn('未找到任何插件');
42
+ return;
43
+ }
44
+ logger.info(`找到 ${validPlugins.length} 个插件,开始构建...`);
45
+ for (const plugin of validPlugins) {
46
+ const pluginPath = path.join(pluginsDir, plugin);
47
+ await buildPlugin(pluginPath, plugin, options.clean);
48
+ }
49
+ }
50
+ }
51
+ catch (error) {
52
+ logger.error(`构建失败: ${error}`);
53
+ process.exit(1);
54
+ }
55
+ });
56
+ async function buildPlugin(pluginPath, pluginName, clean) {
57
+ return new Promise((resolve, reject) => {
58
+ logger.info(`正在构建插件: ${pluginName}...`);
18
59
  // 清理输出目录
19
- if (options.clean && fs.existsSync(distPath)) {
20
- logger.info('正在清理输出目录...');
21
- await fs.remove(distPath);
60
+ if (clean) {
61
+ const libPath = path.join(pluginPath, 'lib');
62
+ const distPath = path.join(pluginPath, 'dist');
63
+ if (fs.existsSync(libPath)) {
64
+ fs.removeSync(libPath);
65
+ logger.info(`✓ 已清理 ${pluginName}/lib`);
66
+ }
67
+ if (fs.existsSync(distPath)) {
68
+ fs.removeSync(distPath);
69
+ logger.info(`✓ 已清理 ${pluginName}/dist`);
70
+ }
22
71
  }
23
- logger.info('正在构建项目...');
24
- // 使用TypeScript编译
25
- const child = spawn('npx', ['tsc', '--project', 'tsconfig.json'], {
26
- cwd,
72
+ // 使用 pnpm build 构建插件
73
+ const child = spawn('pnpm', ['build'], {
74
+ cwd: pluginPath,
27
75
  stdio: 'inherit',
28
76
  shell: true,
29
77
  });
30
78
  child.on('close', (code) => {
31
79
  if (code === 0) {
32
- logger.info('构建完成!');
80
+ logger.success(`✓ ${pluginName} 构建完成`);
81
+ resolve();
33
82
  }
34
83
  else {
35
- logger.error(`构建失败,退出码: ${code}`);
36
- process.exit(1);
84
+ logger.error(`✗ ${pluginName} 构建失败,退出码: ${code}`);
85
+ reject(new Error(`Build failed with code ${code}`));
37
86
  }
38
87
  });
39
88
  child.on('error', (error) => {
40
- logger.error(`构建失败: ${error.message}`);
41
- process.exit(1);
89
+ logger.error(`✗ ${pluginName} 构建失败: ${error.message}`);
90
+ reject(error);
42
91
  });
43
- }
44
- catch (error) {
45
- logger.error(`构建失败: ${error}`);
46
- process.exit(1);
47
- }
48
- });
49
- function isZhinProject(cwd) {
92
+ });
93
+ }
94
+ function isWorkspaceProject(cwd) {
95
+ const workspaceYamlPath = path.join(cwd, 'pnpm-workspace.yaml');
50
96
  const packageJsonPath = path.join(cwd, 'package.json');
51
- if (!fs.existsSync(packageJsonPath)) {
97
+ if (!fs.existsSync(workspaceYamlPath) || !fs.existsSync(packageJsonPath)) {
52
98
  return false;
53
99
  }
54
100
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,SAAS,CAAC;KACtB,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,cAAc;QACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAExC,SAAS;QACT,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzB,iBAAiB;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAC,WAAW,EAAC,eAAe,CAAC,EAAE;YAC9D,GAAG;YACH,KAAK,EAAE,SAAS;YAChB,KAAK,EAAC,IAAI;SACX,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACrD,OAAO,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const newCommand: Command;
3
+ //# sourceMappingURL=new.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,UAAU,SA+DnB,CAAC"}