@lark-apaas/fullstack-cli 1.1.9 → 1.1.10
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/README.md +158 -2
- package/dist/config/drizzle.config.d.ts +3 -1
- package/dist/config/drizzle.config.js +20 -16
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3876 -49
- package/package.json +15 -7
- package/templates/nest-cli.json +25 -0
- package/templates/scripts/build.sh +16 -9
- package/templates/scripts/prune-smart.js +41 -7
- package/dist/commands/gen-db-schema.d.ts +0 -20
- package/dist/commands/gen-db-schema.js +0 -115
- package/dist/commands/read-logs/client-std.d.ts +0 -2
- package/dist/commands/read-logs/client-std.js +0 -98
- package/dist/commands/read-logs/json-lines.d.ts +0 -3
- package/dist/commands/read-logs/json-lines.js +0 -217
- package/dist/commands/read-logs/server-std.d.ts +0 -1
- package/dist/commands/read-logs/server-std.js +0 -25
- package/dist/commands/read-logs/std-utils.d.ts +0 -5
- package/dist/commands/read-logs/std-utils.js +0 -61
- package/dist/commands/read-logs/tail.d.ts +0 -2
- package/dist/commands/read-logs/tail.js +0 -47
- package/dist/commands/read-logs.d.ts +0 -16
- package/dist/commands/read-logs.js +0 -153
- package/dist/commands/read-logs.test.d.ts +0 -1
- package/dist/commands/read-logs.test.js +0 -199
- package/dist/commands/sync.d.ts +0 -6
- package/dist/commands/sync.js +0 -211
- package/dist/config/sync.d.ts +0 -52
- package/dist/config/sync.js +0 -54
- package/dist/utils/file-ops.d.ts +0 -17
- package/dist/utils/file-ops.js +0 -40
- package/dist/utils/file-ops.test.d.ts +0 -1
- package/dist/utils/file-ops.test.js +0 -104
package/README.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# @lark-apaas/fullstack-cli
|
|
2
2
|
|
|
3
|
-
> Fullstack 开发工具集 - 文件派生、数据库 Schema 生成、OpenAPI
|
|
3
|
+
> Fullstack 开发工具集 - 文件派生、数据库 Schema 生成、OpenAPI 生成、能力管理
|
|
4
4
|
|
|
5
5
|
## 功能
|
|
6
6
|
|
|
7
7
|
1. **自动派生** - 自动管理项目脚本和配置文件
|
|
8
8
|
2. **数据库 Schema 生成** - 从现有数据库生成 Drizzle ORM schema
|
|
9
9
|
3. **OpenAPI 生成** - 自动生成 API 文档和客户端 SDK
|
|
10
|
+
4. **Action 插件管理** - 安装、更新、删除 action 插件
|
|
11
|
+
5. **能力配置管理** - 查看、充血、迁移能力配置
|
|
10
12
|
|
|
11
13
|
## 安装
|
|
12
14
|
|
|
@@ -72,7 +74,134 @@ CLIENT_BASE_PATH=/ # 客户端基础路径
|
|
|
72
74
|
2. 挂载 DevToolsModule
|
|
73
75
|
3. 生成 OpenAPI 文档和客户端 SDK
|
|
74
76
|
|
|
75
|
-
### 4.
|
|
77
|
+
### 4. Action 插件管理
|
|
78
|
+
|
|
79
|
+
管理 Action 插件的安装、更新、删除和查看:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# 安装插件(默认最新版)
|
|
83
|
+
fullstack-cli action-plugin install @office/feishu-create-group
|
|
84
|
+
|
|
85
|
+
# 安装指定版本
|
|
86
|
+
fullstack-cli action-plugin install @office/feishu-create-group@1.0.0
|
|
87
|
+
|
|
88
|
+
# 更新插件到最新版
|
|
89
|
+
fullstack-cli action-plugin update @office/feishu-create-group
|
|
90
|
+
|
|
91
|
+
# 删除插件
|
|
92
|
+
fullstack-cli action-plugin remove @office/feishu-create-group
|
|
93
|
+
|
|
94
|
+
# 查看已安装的插件列表
|
|
95
|
+
fullstack-cli action-plugin list
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**命令别名:**
|
|
99
|
+
| 完整命令 | 别名 |
|
|
100
|
+
|----------|------|
|
|
101
|
+
| `action-plugin install` | `action-plugin i` |
|
|
102
|
+
| `action-plugin update` | `action-plugin up` |
|
|
103
|
+
| `action-plugin remove` | `action-plugin rm` |
|
|
104
|
+
| `action-plugin list` | `action-plugin ls` |
|
|
105
|
+
|
|
106
|
+
**插件存储:**
|
|
107
|
+
- 插件文件:`node_modules/<plugin-name>/`(标准 npm 包位置)
|
|
108
|
+
- 配置文件:`.capabilityrc.json`(记录已安装的 action 插件元信息)
|
|
109
|
+
|
|
110
|
+
### 5. 能力配置管理
|
|
111
|
+
|
|
112
|
+
查看和管理项目中的能力配置:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 列出所有能力(充血后,带 actions 信息)
|
|
116
|
+
fullstack-cli capability list
|
|
117
|
+
|
|
118
|
+
# 列出所有能力(原始配置,不充血)
|
|
119
|
+
fullstack-cli capability list --summary
|
|
120
|
+
|
|
121
|
+
# 获取指定能力配置
|
|
122
|
+
fullstack-cli capability list --id create_feishu_group_for_task
|
|
123
|
+
|
|
124
|
+
# 获取指定能力原始配置
|
|
125
|
+
fullstack-cli capability list --id create_feishu_group_for_task --summary
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**能力充血:**
|
|
129
|
+
- 默认返回充血后的能力配置,包含从插件 manifest 读取的 actions 信息
|
|
130
|
+
- 支持动态 Schema:manifest 中标记 `{ dynamic: true }` 的 schema 会运行时生成
|
|
131
|
+
- Schema 优先级:`capability.paramsSchema > 动态 schema > 静态 schema`
|
|
132
|
+
- 充血失败时返回原始配置 + `_hydrateError` 字段(不抛异常)
|
|
133
|
+
- `--summary` 返回原始配置(存储在 `server/capabilities/*.json` 中的内容)
|
|
134
|
+
|
|
135
|
+
### 6. 能力迁移
|
|
136
|
+
|
|
137
|
+
将老版本 capability 配置(`capabilities.json`)迁移到新版本(独立 JSON 文件):
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# 执行迁移
|
|
141
|
+
fullstack-cli capability migration
|
|
142
|
+
|
|
143
|
+
# 预览模式(不修改文件)
|
|
144
|
+
fullstack-cli capability migration --dry-run
|
|
145
|
+
|
|
146
|
+
# 跳过插件安装
|
|
147
|
+
fullstack-cli capability migration --skip-install
|
|
148
|
+
|
|
149
|
+
# 跳过代码迁移
|
|
150
|
+
fullstack-cli capability migration --skip-code
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**迁移步骤:**
|
|
154
|
+
|
|
155
|
+
1. **JSON 文件迁移**
|
|
156
|
+
- 读取 `server/capabilities.json`(老格式:数组)
|
|
157
|
+
- 转换为独立文件 `server/capabilities/<id>.json`(新格式)
|
|
158
|
+
- 自动备份原文件为 `capabilities.json.backup`
|
|
159
|
+
|
|
160
|
+
2. **插件安装**
|
|
161
|
+
- 根据 `sourceActionID → pluginID` 映射表查找对应插件
|
|
162
|
+
- 自动调用 `fullstack-cli action-plugin install` 安装缺失的插件
|
|
163
|
+
|
|
164
|
+
3. **代码迁移**
|
|
165
|
+
- 扫描 `server/` 目录下的 TypeScript 文件
|
|
166
|
+
- 移除 capability 直接导入 `import xxx from '@/capabilities/xxx'`
|
|
167
|
+
- 添加 `CapabilityService` 依赖注入
|
|
168
|
+
- 替换调用点为 `capabilityService.load('xxx').call('run', params)`
|
|
169
|
+
|
|
170
|
+
**老格式 vs 新格式:**
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// 老格式 (capabilities.json)
|
|
174
|
+
{
|
|
175
|
+
"id": "create_group",
|
|
176
|
+
"sourceActionID": "feishu_group_create", // 老字段
|
|
177
|
+
"name": "创建群组",
|
|
178
|
+
"desc": "创建飞书群组", // 老字段
|
|
179
|
+
"actionInput": { ... }, // 老字段
|
|
180
|
+
"inputSchema": { ... }
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// 新格式 (server/capabilities/create_group.json)
|
|
184
|
+
{
|
|
185
|
+
"id": "create_group",
|
|
186
|
+
"pluginID": "@official/feishu-group", // 新字段
|
|
187
|
+
"pluginVersion": "1.0.0", // 新字段
|
|
188
|
+
"name": "创建群组",
|
|
189
|
+
"description": "创建飞书群组", // 重命名
|
|
190
|
+
"formValue": { ... }, // 重命名
|
|
191
|
+
"paramsSchema": { ... }
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**映射文件格式:**
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"feishu_group_create": "@official/feishu-group",
|
|
200
|
+
"feishu_send_message": "@official/feishu-message"
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### 7. CLI 命令
|
|
76
205
|
|
|
77
206
|
```bash
|
|
78
207
|
# 查看帮助
|
|
@@ -84,6 +213,16 @@ fullstack-cli gen-db-schema
|
|
|
84
213
|
# 生成 OpenAPI
|
|
85
214
|
fullstack-cli gen-openapi
|
|
86
215
|
|
|
216
|
+
# Action 插件管理
|
|
217
|
+
fullstack-cli action-plugin --help
|
|
218
|
+
fullstack-cli action-plugin install <plugin>
|
|
219
|
+
fullstack-cli action-plugin list
|
|
220
|
+
|
|
221
|
+
# 能力配置管理
|
|
222
|
+
fullstack-cli capability --help
|
|
223
|
+
fullstack-cli capability list
|
|
224
|
+
fullstack-cli capability migration --dry-run
|
|
225
|
+
|
|
87
226
|
# 查看版本
|
|
88
227
|
fullstack-cli --version
|
|
89
228
|
```
|
|
@@ -179,6 +318,23 @@ fullstack-cli
|
|
|
179
318
|
}
|
|
180
319
|
```
|
|
181
320
|
|
|
321
|
+
### Capability 迁移
|
|
322
|
+
|
|
323
|
+
如果项目使用老版本的 capability 系统(`capabilities.json` 文件),可以使用迁移命令自动升级:
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# 1. 先预览迁移效果
|
|
327
|
+
fullstack-cli capability migration --dry-run
|
|
328
|
+
|
|
329
|
+
# 2. 确认无误后执行迁移
|
|
330
|
+
fullstack-cli capability migration
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
迁移会自动完成:
|
|
334
|
+
- JSON 配置文件格式转换
|
|
335
|
+
- 插件安装
|
|
336
|
+
- 代码调用方式更新(从直接导入改为 CapabilityService 注入)
|
|
337
|
+
|
|
182
338
|
## License
|
|
183
339
|
|
|
184
340
|
MIT
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
parsedUrl.searchParams.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
// src/config/drizzle.config.ts
|
|
2
|
+
import { defineConfig } from "drizzle-kit";
|
|
3
|
+
var outputDir = process.env.__DRIZZLE_OUT_DIR__ || "./server/database/.introspect";
|
|
4
|
+
var schemaPath = process.env.__DRIZZLE_SCHEMA_PATH__ || "./server/database/schema.ts";
|
|
5
|
+
var parsedUrl = new URL(process.env.SUDA_DATABASE_URL || "");
|
|
6
|
+
var schemaFilter = parsedUrl.searchParams.get("schema")?.split(",") ?? [];
|
|
7
|
+
parsedUrl.searchParams.delete("schema");
|
|
8
|
+
var config = {
|
|
9
|
+
schema: schemaPath,
|
|
10
|
+
out: outputDir,
|
|
11
|
+
tablesFilter: ["*"],
|
|
12
|
+
schemaFilter,
|
|
13
|
+
dialect: "postgresql",
|
|
14
|
+
dbCredentials: {
|
|
15
|
+
url: parsedUrl.toString()
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var drizzle_config_default = defineConfig(config);
|
|
19
|
+
export {
|
|
20
|
+
drizzle_config_default as default
|
|
16
21
|
};
|
|
17
|
-
export default defineConfig(config);
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
export { }
|