@loom-framework/core 0.1.0-alpha.165 → 0.1.0-alpha.166
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/builtin-skills/loom/SKILL.md +9 -6
- package/builtin-skills/loom/references/eject.md +102 -0
- package/dist/cli/commands/eject.d.ts.map +1 -1
- package/dist/cli/commands/eject.js +52 -285
- package/dist/cli/commands/eject.js.map +1 -1
- package/dist/cli/commands/generate-system-settings.d.ts +3 -3
- package/dist/cli/commands/generate-system-settings.d.ts.map +1 -1
- package/dist/cli/commands/generate-system-settings.js +29 -204
- package/dist/cli/commands/generate-system-settings.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +27 -44
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/helpers/app-tsx-utils.d.ts +12 -0
- package/dist/cli/helpers/app-tsx-utils.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-utils.js +22 -0
- package/dist/cli/helpers/app-tsx-utils.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.d.ts +70 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.js +546 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts +4 -39
- package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -1
- package/dist/cli/helpers/app-tsx-wiring.js +5 -608
- package/dist/cli/helpers/app-tsx-wiring.js.map +1 -1
- package/dist/cli/helpers/system-page-config.d.ts +27 -0
- package/dist/cli/helpers/system-page-config.d.ts.map +1 -0
- package/dist/cli/helpers/system-page-config.js +73 -0
- package/dist/cli/helpers/system-page-config.js.map +1 -0
- package/dist/cli/templates/login-page.d.ts +2 -3
- package/dist/cli/templates/login-page.d.ts.map +1 -1
- package/dist/cli/templates/login-page.js +18 -29
- package/dist/cli/templates/login-page.js.map +1 -1
- package/dist/cli/templates/model-management-page.d.ts +2 -3
- package/dist/cli/templates/model-management-page.d.ts.map +1 -1
- package/dist/cli/templates/model-management-page.js +11 -9
- package/dist/cli/templates/model-management-page.js.map +1 -1
- package/dist/cli/templates/notification-center-page.d.ts +2 -3
- package/dist/cli/templates/notification-center-page.d.ts.map +1 -1
- package/dist/cli/templates/notification-center-page.js +25 -62
- package/dist/cli/templates/notification-center-page.js.map +1 -1
- package/dist/cli/templates/notification-detail-page.d.ts +2 -3
- package/dist/cli/templates/notification-detail-page.d.ts.map +1 -1
- package/dist/cli/templates/notification-detail-page.js +13 -41
- package/dist/cli/templates/notification-detail-page.js.map +1 -1
- package/dist/cli/templates/process-management-page.d.ts +3 -3
- package/dist/cli/templates/process-management-page.d.ts.map +1 -1
- package/dist/cli/templates/process-management-page.js +75 -565
- package/dist/cli/templates/process-management-page.js.map +1 -1
- package/dist/cli/templates/skill-management-page.d.ts +2 -3
- package/dist/cli/templates/skill-management-page.d.ts.map +1 -1
- package/dist/cli/templates/skill-management-page.js +12 -15
- package/dist/cli/templates/skill-management-page.js.map +1 -1
- package/dist/cli/templates/user-management-page.d.ts +2 -4
- package/dist/cli/templates/user-management-page.d.ts.map +1 -1
- package/dist/cli/templates/user-management-page.js +21 -22
- package/dist/cli/templates/user-management-page.js.map +1 -1
- package/package.json +4 -2
|
@@ -35,7 +35,7 @@ Loom 是**配置驱动的 AI 平台开发框架**——你描述需求,AI 通
|
|
|
35
35
|
npx -p @loom-framework/core loom init <name> --description <desc> --adapter <filesystem|sqlite>
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
项目初始化时自动生成系统管理页面(模型管理、技能管理、用户管理、过程管理、通知中心),并以子菜单形式接入导航。同时自动安装以下内置 Skill:
|
|
39
39
|
|
|
40
40
|
| Skill | 触发场景 | 说明 |
|
|
41
41
|
|-------|---------|------|
|
|
@@ -107,7 +107,7 @@ loom generate capabilities
|
|
|
107
107
|
1. **询问需求**:是否需要登录功能?有哪些角色?每个角色能做什么?
|
|
108
108
|
2. **编辑配置**:在 `loom.config.ts` 中添加 `auth` 字段(Schema 见上方)。至少定义一个 `admin` 角色
|
|
109
109
|
3. **设置密钥**:`secret` 推荐 `env:JWT_SECRET`,不要硬编码。提醒用户设置环境变量 `export JWT_SECRET=your-secret`
|
|
110
|
-
4. **生成认证页面**:`loom generate system-settings user` —
|
|
110
|
+
4. **生成认证页面**:`loom generate system-settings user` — 自动接入用户管理页和登录页的 npm import,并接入 AuthProvider 路由守卫
|
|
111
111
|
5. **重启后端**:auth 配置需要重启后端生效(**必须先询问用户**)
|
|
112
112
|
6. **首次登录**:默认创建 admin 用户(密码 `admin123`),**提醒用户立即修改密码**
|
|
113
113
|
7. **生成 app-skill**:`loom generate capabilities` 更新 Skill 中的 auth.md
|
|
@@ -153,6 +153,10 @@ loom generate page <Name> --model <model-name> --force
|
|
|
153
153
|
|
|
154
154
|
**恢复备份**:`--force` 覆盖的文件自动备份到项目 `.loom/backup/<时间戳>/` 目录(每次 --force 生成独立时间戳目录,同一天多次执行互不影响),如需恢复:`cp .loom/backup/<时间戳>/XXX.tsx frontend/src/components/pages/XXX.tsx`
|
|
155
155
|
|
|
156
|
+
### 6. 系统页面定制(Eject)
|
|
157
|
+
|
|
158
|
+
系统管理页面默认以 npm 组件接入,无法直接修改。需要定制时 eject 为本地文件,恢复时 uneject。详见 `references/eject.md`。
|
|
159
|
+
|
|
156
160
|
### 内置 Skill 使用原则
|
|
157
161
|
|
|
158
162
|
- 涉及前端页面开发 → 先用 `/antd` 查询组件 API,不要凭记忆写代码
|
|
@@ -170,11 +174,10 @@ loom generate page <Name> --model <model-name> --force
|
|
|
170
174
|
| `loom generate capabilities` | 生成应用 Skill(`references/models.md` + `references/data-semantics.md`,`SKILL.md` 仅首次创建不覆盖) |
|
|
171
175
|
| `loom generate dashboard <name>` | 从 loom.config.ts dashboards 生成 Dashboard 页面 |
|
|
172
176
|
| `loom generate dashboard <name> --force` | 重建 Dashboard 页面(自动备份旧文件到 `.loom/backup/`) |
|
|
173
|
-
| `loom generate system-settings <
|
|
174
|
-
| `loom generate system-settings <model\|skill\|user\|process> --force` | 重建系统管理页面(自动备份旧文件到 `.loom/backup/`) |
|
|
177
|
+
| `loom generate system-settings <type>` | 将系统页面接入 App.tsx(npm import 接线),type: `model`/`skill`/`user`/`login`/`process`/`notification`;`user` 同时接入 AuthProvider 路由守卫,`notification` 同时接入 NotificationCenterProvider |
|
|
175
178
|
| `loom generate skill <name>` | 生成自定义 Skill 脚架 |
|
|
176
|
-
| `loom eject system-settings <type>` | 将系统页面从 npm 组件切换为本地文件(可自由编辑),type: `model`/`skill`/`user`/`login`/`process`/`notification` |
|
|
177
|
-
| `loom uneject system-settings <type>` | 删除本地文件,恢复为 npm 组件(修改过的需 `--force
|
|
179
|
+
| `loom eject system-settings <type>` | 将系统页面从 npm 组件切换为本地文件(可自由编辑),type: `model`/`skill`/`user`/`login`/`process`/`notification`。详见 `references/eject.md` |
|
|
180
|
+
| `loom uneject system-settings <type>` | 删除本地文件,恢复为 npm 组件(修改过的需 `--force`,操作前自动备份)。详见 `references/eject.md` |
|
|
178
181
|
| `loom data read <model>` | 查询数据(`--filter` 筛选、`--limit` 限制条数、`--sort` 排序) |
|
|
179
182
|
| `loom data write <model> --data '<json>'` | 创建记录 |
|
|
180
183
|
| `loom data update <model> <id> --data '<json>'` | 更新记录 |
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# System Page Eject — 定制化参考
|
|
2
|
+
|
|
3
|
+
系统管理页面默认以 npm 组件形式接入 App.tsx,不支持直接修改。Eject 机制将页面输出为本地 .tsx 文件,切换 import 来源,使页面可自由定制。
|
|
4
|
+
|
|
5
|
+
## 页面类型
|
|
6
|
+
|
|
7
|
+
| type | 组件名 | npmComponent | 接线方式 | 说明 |
|
|
8
|
+
|--------------|---------------------|---------------------------|---------------|-----------------------------------|
|
|
9
|
+
| model | ModelManagement | ModelManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
10
|
+
| skill | SkillManagement | SkillManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
11
|
+
| user | UserManagement | UserManagementPage | sidebar-nav | 自动接入 AuthProvider |
|
|
12
|
+
| login | Login | LoginPage | auth-fallback | AuthGuard 的 fallback,无导航入口 |
|
|
13
|
+
| process | ProcessManagement | ProcessManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
14
|
+
| notification | NotificationCenter | NotificationCenterPage | skip-nav | 通知铃铛触发,无导航入口 |
|
|
15
|
+
|
|
16
|
+
notification eject 时同时生成 NotificationCenter + NotificationDetail 两个文件。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# eject: npm 组件 → 本地文件(可编辑)
|
|
22
|
+
loom eject system-settings <type>
|
|
23
|
+
|
|
24
|
+
# uneject: 本地文件 → npm 组件(已修改需 --force)
|
|
25
|
+
loom uneject system-settings <type> [--force]
|
|
26
|
+
|
|
27
|
+
# 接入 App.tsx(npm import 接线,init 时自动执行)
|
|
28
|
+
loom generate system-settings <type>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Eject/Uneject 对 App.tsx 的影响
|
|
32
|
+
|
|
33
|
+
### eject 前
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { ModelManagementPage } from '@loom-framework/frontend-antd';
|
|
37
|
+
// ...
|
|
38
|
+
case 'model-management': return <ModelManagementPage />;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### eject 后
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
import ModelManagementPage from './components/pages/ModelManagement';
|
|
45
|
+
// ...
|
|
46
|
+
case 'model-management': return <ModelManagementPage />;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
本地文件出现在 `frontend/src/components/pages/<PascalName>.tsx`。
|
|
50
|
+
|
|
51
|
+
### uneject 后
|
|
52
|
+
|
|
53
|
+
本地文件删除,import 恢复为 npm 路径。
|
|
54
|
+
|
|
55
|
+
## 定制化操作指南
|
|
56
|
+
|
|
57
|
+
### 修改页面布局或样式
|
|
58
|
+
|
|
59
|
+
1. 执行 `loom eject system-settings <type>`
|
|
60
|
+
2. 编辑 `frontend/src/components/pages/` 下的 .tsx 文件
|
|
61
|
+
3. 运行 `loom dev` 查看效果
|
|
62
|
+
|
|
63
|
+
### 使用框架子组件
|
|
64
|
+
|
|
65
|
+
eject 后的文件 import 来自 `@loom-framework/frontend-antd`,可直接使用框架子组件:
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import { ProcessTree, ProcessOverview, ProcessLogs, ProcessMetrics } from '@loom-framework/frontend-antd';
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
可用的 hook:`useData`, `useSchema`, `useLocale`, `useModels`, `useChartData`。
|
|
72
|
+
|
|
73
|
+
### 替换子组件
|
|
74
|
+
|
|
75
|
+
将 import 替换为自定义实现:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
// 替换前
|
|
79
|
+
import { ProcessTree } from '@loom-framework/frontend-antd';
|
|
80
|
+
// 替换后
|
|
81
|
+
import { MyCustomTree } from './MyCustomTree';
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 添加自定义管理页面
|
|
85
|
+
|
|
86
|
+
内置的 6 种系统页面 type(model/skill/user/login/process/notification)由框架预定义,用户无法新增 type。如需框架未提供的管理页面,根据场景选择:
|
|
87
|
+
|
|
88
|
+
**数据驱动页面**(对应一个数据模型,需要增删改查)→ 在 `loom.config.ts` 中添加模型定义,然后 `loom generate page <Name> --model <model>` 生成 CRUD 页面 + API + 导航
|
|
89
|
+
|
|
90
|
+
**纯 UI 页面**(不对应数据模型,如审批流程、配置向导)→ 手动创建 `frontend/src/components/pages/MyPage.tsx`,然后在 App.tsx 中添加 import、导航项和路由
|
|
91
|
+
|
|
92
|
+
## 安全机制
|
|
93
|
+
|
|
94
|
+
- eject 时自动保存校验和到 `.loom/checksums/`
|
|
95
|
+
- uneject 时校验:未修改可直接删除,已修改需 `--force`
|
|
96
|
+
- 所有操作前自动备份到 `.loom/backup/`
|
|
97
|
+
|
|
98
|
+
## WiringMode 说明
|
|
99
|
+
|
|
100
|
+
- **sidebar-nav**: 添加到系统配置子菜单,有导航入口、switch case、breadcrumb
|
|
101
|
+
- **auth-fallback**: 作为 `<AuthGuard fallback={<Login />}>` 注入,无导航入口
|
|
102
|
+
- **skip-nav**: 无导航入口(通过其他 UI 触发),但有 switch case 和 breadcrumb
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/eject.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/eject.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyIzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6G3D"}
|
|
@@ -14,72 +14,29 @@ import crypto from 'crypto';
|
|
|
14
14
|
import { resolveProjectRoot } from '../utils.js';
|
|
15
15
|
import { modelManagementPageTemplate, skillManagementPageTemplate, userManagementPageTemplate, processManagementPageTemplate, loginPageTemplate, notificationCenterPageTemplate, notificationDetailPageTemplate } from '../templates/index.js';
|
|
16
16
|
import { backupFile } from '../helpers/backup.js';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
skill: {
|
|
28
|
-
pascalName: 'SkillManagement',
|
|
29
|
-
fileName: 'SkillManagement.tsx',
|
|
30
|
-
navKey: 'skill-management',
|
|
31
|
-
navLabelZh: '技能管理',
|
|
32
|
-
navLabelEn: 'Skill Management',
|
|
33
|
-
npmComponent: 'SkillManagementPage',
|
|
34
|
-
template: skillManagementPageTemplate,
|
|
35
|
-
},
|
|
36
|
-
user: {
|
|
37
|
-
pascalName: 'UserManagement',
|
|
38
|
-
fileName: 'UserManagement.tsx',
|
|
39
|
-
navKey: 'user-management',
|
|
40
|
-
navLabelZh: '用户管理',
|
|
41
|
-
navLabelEn: 'User Management',
|
|
42
|
-
npmComponent: 'UserManagementPage',
|
|
43
|
-
template: userManagementPageTemplate,
|
|
44
|
-
},
|
|
45
|
-
login: {
|
|
46
|
-
pascalName: 'Login',
|
|
47
|
-
fileName: 'Login.tsx',
|
|
48
|
-
// No navKey — Login is rendered by AuthGuard fallback, not in navigation
|
|
49
|
-
npmComponent: 'LoginPage',
|
|
50
|
-
template: loginPageTemplate,
|
|
51
|
-
},
|
|
52
|
-
process: {
|
|
53
|
-
pascalName: 'ProcessManagement',
|
|
54
|
-
fileName: 'ProcessManagement.tsx',
|
|
55
|
-
navKey: 'process-management',
|
|
56
|
-
navLabelZh: '过程管理',
|
|
57
|
-
navLabelEn: 'Process Management',
|
|
58
|
-
npmComponent: 'ProcessManagementPage',
|
|
59
|
-
template: processManagementPageTemplate,
|
|
60
|
-
},
|
|
61
|
-
notification: {
|
|
62
|
-
pascalName: 'NotificationCenter',
|
|
63
|
-
fileName: 'NotificationCenter.tsx',
|
|
64
|
-
navKey: 'notifications',
|
|
65
|
-
navLabelZh: '通知',
|
|
66
|
-
navLabelEn: 'Notifications',
|
|
67
|
-
npmComponent: 'NotificationCenterPage',
|
|
68
|
-
template: notificationCenterPageTemplate,
|
|
69
|
-
extraFiles: [{
|
|
70
|
-
pascalName: 'NotificationDetail',
|
|
71
|
-
fileName: 'NotificationDetail.tsx',
|
|
72
|
-
navKey: 'notification-detail',
|
|
73
|
-
navLabelZh: '通知详情',
|
|
74
|
-
navLabelEn: 'Notification Detail',
|
|
75
|
-
npmComponent: 'NotificationDetailPage',
|
|
76
|
-
template: notificationDetailPageTemplate,
|
|
77
|
-
}],
|
|
78
|
-
},
|
|
17
|
+
import { SYSTEM_PAGE_CONFIG, VALID_SYSTEM_PAGE_TYPES } from '../helpers/system-page-config.js';
|
|
18
|
+
import { wireAppTsx } from '../helpers/app-tsx-wiring-engine.js';
|
|
19
|
+
/** Template map — resolves page type to its template function. */
|
|
20
|
+
const TEMPLATE_MAP = {
|
|
21
|
+
model: modelManagementPageTemplate,
|
|
22
|
+
skill: skillManagementPageTemplate,
|
|
23
|
+
user: userManagementPageTemplate,
|
|
24
|
+
login: loginPageTemplate,
|
|
25
|
+
process: processManagementPageTemplate,
|
|
26
|
+
notification: notificationCenterPageTemplate,
|
|
79
27
|
};
|
|
80
|
-
const
|
|
28
|
+
const EXTRA_TEMPLATE_MAP = {
|
|
29
|
+
NotificationDetail: notificationDetailPageTemplate,
|
|
30
|
+
};
|
|
31
|
+
/** Get template function for a config entry (main or extra file). */
|
|
32
|
+
function getTemplateFn(config, pageType) {
|
|
33
|
+
if (pageType && TEMPLATE_MAP[pageType] && SYSTEM_PAGE_CONFIG[pageType].pascalName === config.pascalName) {
|
|
34
|
+
return TEMPLATE_MAP[pageType];
|
|
35
|
+
}
|
|
36
|
+
return EXTRA_TEMPLATE_MAP[config.pascalName];
|
|
37
|
+
}
|
|
81
38
|
function parsePageType(type) {
|
|
82
|
-
if (
|
|
39
|
+
if (VALID_SYSTEM_PAGE_TYPES.includes(type))
|
|
83
40
|
return type;
|
|
84
41
|
return null;
|
|
85
42
|
}
|
|
@@ -105,132 +62,8 @@ async function deleteChecksum(projectRoot, pascalName) {
|
|
|
105
62
|
}
|
|
106
63
|
catch { /* ignore */ }
|
|
107
64
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
let lastMatch = null;
|
|
111
|
-
let m;
|
|
112
|
-
while ((m = importRegex.exec(content)) !== null) {
|
|
113
|
-
lastMatch = m;
|
|
114
|
-
}
|
|
115
|
-
if (!lastMatch)
|
|
116
|
-
return null;
|
|
117
|
-
return lastMatch.index + lastMatch[0].length;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Add a name to the npm import from @loom-framework/frontend-antd.
|
|
121
|
-
* If the name already exists in any npm import, no-op.
|
|
122
|
-
* If no npm import exists, creates a new one.
|
|
123
|
-
*/
|
|
124
|
-
function addNpmImportName(content, name) {
|
|
125
|
-
const existingNpmImport = content.match(/import\s*\{([^}]+)\}\s*from\s*'@loom-framework\/frontend-antd';/);
|
|
126
|
-
if (existingNpmImport) {
|
|
127
|
-
const currentNames = existingNpmImport[1].split(',').map(s => s.trim()).filter(Boolean);
|
|
128
|
-
if (currentNames.includes(name))
|
|
129
|
-
return content;
|
|
130
|
-
const newNames = [...currentNames, name].join(', ');
|
|
131
|
-
const newImport = `import { ${newNames} } from '@loom-framework/frontend-antd';`;
|
|
132
|
-
return content.replace(existingNpmImport[0], newImport);
|
|
133
|
-
}
|
|
134
|
-
const importLine = `import { ${name} } from '@loom-framework/frontend-antd';`;
|
|
135
|
-
const lastImportEnd = findLastImportEnd(content);
|
|
136
|
-
if (lastImportEnd === null)
|
|
137
|
-
return content;
|
|
138
|
-
return content.slice(0, lastImportEnd) + '\n' + importLine + content.slice(lastImportEnd);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Remove a name from the npm import from @loom-framework/frontend-antd.
|
|
142
|
-
*/
|
|
143
|
-
function removeNpmImportName(content, name) {
|
|
144
|
-
const npmImportMatches = content.match(/import\s*\{([^}]+)\}\s*from\s*'@loom-framework\/frontend-antd';/g);
|
|
145
|
-
if (!npmImportMatches)
|
|
146
|
-
return content;
|
|
147
|
-
let modified = content;
|
|
148
|
-
for (const importLine of npmImportMatches) {
|
|
149
|
-
if (!importLine.includes(name))
|
|
150
|
-
continue;
|
|
151
|
-
const namesMatch = importLine.match(/import\s*\{([^}]+)\}/);
|
|
152
|
-
if (!namesMatch)
|
|
153
|
-
continue;
|
|
154
|
-
const importNames = namesMatch[1].split(',').map(s => s.trim()).filter(Boolean);
|
|
155
|
-
const filtered = importNames.filter(n => n !== name);
|
|
156
|
-
if (filtered.length > 0) {
|
|
157
|
-
const newImport = `import { ${filtered.join(', ')} } from '@loom-framework/frontend-antd';`;
|
|
158
|
-
modified = modified.replace(importLine, newImport);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
modified = modified.replace(importLine, '');
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return modified;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Add a local import line: import XPage from './components/pages/X';
|
|
168
|
-
*/
|
|
169
|
-
function addLocalImportLine(content, pascalName) {
|
|
170
|
-
const importLine = `import ${pascalName}Page from './components/pages/${pascalName}';`;
|
|
171
|
-
if (content.includes(importLine))
|
|
172
|
-
return content;
|
|
173
|
-
const lastImportEnd = findLastImportEnd(content);
|
|
174
|
-
if (lastImportEnd === null)
|
|
175
|
-
return content;
|
|
176
|
-
return content.slice(0, lastImportEnd) + '\n' + importLine + content.slice(lastImportEnd);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Remove a local import line.
|
|
180
|
-
*/
|
|
181
|
-
function removeLocalImportLine(content, pascalName) {
|
|
182
|
-
const regex = new RegExp(`import\\s+${pascalName}Page\\s+from\\s*'\\.\\/components\\/pages\\/${pascalName}';\\n?`, 'g');
|
|
183
|
-
return content.replace(regex, '');
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Replace the switch case for a page.
|
|
187
|
-
*/
|
|
188
|
-
function replaceSwitchCase(content, navKey, oldComponent, newComponent) {
|
|
189
|
-
const oldCaseRegex = new RegExp(`case\\s*'${navKey}':\\s*return\\s*<${oldComponent}\\s*\\/?>;`, 'g');
|
|
190
|
-
return content.replace(oldCaseRegex, `case '${navKey}': return <${newComponent} />;`);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Remove the switch case for a page.
|
|
194
|
-
*/
|
|
195
|
-
function removeSwitchCase(content, navKey, componentPatterns) {
|
|
196
|
-
let modified = content;
|
|
197
|
-
for (const pattern of componentPatterns) {
|
|
198
|
-
const regex = new RegExp(`\\s*case\\s*'${navKey}':\\s*return\\s*<${pattern}\\s*\\/?>;\\n?`, 'g');
|
|
199
|
-
modified = modified.replace(regex, '');
|
|
200
|
-
}
|
|
201
|
-
return modified;
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Add a switch case before the default case.
|
|
205
|
-
*/
|
|
206
|
-
function addSwitchCase(content, navKey, componentName) {
|
|
207
|
-
if (content.includes(`case '${navKey}':`))
|
|
208
|
-
return content;
|
|
209
|
-
const caseLine = ` case '${navKey}': return <${componentName} />;`;
|
|
210
|
-
const defaultIdx = content.indexOf('default:');
|
|
211
|
-
if (defaultIdx === -1)
|
|
212
|
-
return content;
|
|
213
|
-
const lineStart = content.lastIndexOf('\n', defaultIdx) + 1;
|
|
214
|
-
return content.slice(0, lineStart) + caseLine + '\n' + content.slice(lineStart);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* For login eject: add fallback prop to AuthGuard
|
|
218
|
-
* <AuthGuard> → <AuthGuard fallback={<Login />}>
|
|
219
|
-
*/
|
|
220
|
-
function addAuthGuardFallback(content) {
|
|
221
|
-
if (content.includes('fallback={<Login'))
|
|
222
|
-
return content;
|
|
223
|
-
return content.replace(/<AuthGuard>/g, '<AuthGuard fallback={<Login />}>');
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* For login uneject: remove fallback prop from AuthGuard
|
|
227
|
-
* <AuthGuard fallback={<Login />}> → <AuthGuard>
|
|
228
|
-
*/
|
|
229
|
-
function removeAuthGuardFallback(content) {
|
|
230
|
-
return content.replace(/<AuthGuard\s+fallback=\{<Login\s*\/>\}>/g, '<AuthGuard>');
|
|
231
|
-
}
|
|
232
|
-
async function ejectSingleFile(projectRoot, pageDir, fileConfig, initialAppContent, force) {
|
|
233
|
-
const { pascalName, fileName, navKey, npmComponent, template, isLogin } = fileConfig;
|
|
65
|
+
/** Write a local page file from template and save its checksum. */
|
|
66
|
+
async function writeLocalPage(projectRoot, pageDir, pascalName, fileName, templateFn, force) {
|
|
234
67
|
const pagePath = path.join(pageDir, fileName);
|
|
235
68
|
// Check if local file already exists
|
|
236
69
|
try {
|
|
@@ -248,34 +81,14 @@ async function ejectSingleFile(projectRoot, pageDir, fileConfig, initialAppConte
|
|
|
248
81
|
catch {
|
|
249
82
|
// File does not exist, proceed
|
|
250
83
|
}
|
|
251
|
-
|
|
252
|
-
const templateContent = template();
|
|
84
|
+
const templateContent = templateFn();
|
|
253
85
|
await fs.mkdir(pageDir, { recursive: true });
|
|
254
86
|
await fs.writeFile(pagePath, templateContent, 'utf-8');
|
|
255
87
|
await saveChecksum(projectRoot, pascalName, templateContent);
|
|
256
88
|
console.log(chalk.green(' ✓'), `Local file created: ${path.relative(projectRoot, pagePath)}`);
|
|
257
|
-
// Modify App.tsx content passed in
|
|
258
|
-
let appContent = initialAppContent;
|
|
259
|
-
let modified = false;
|
|
260
|
-
if (isLogin) {
|
|
261
|
-
appContent = addLocalImportLine(appContent, pascalName);
|
|
262
|
-
appContent = addAuthGuardFallback(appContent);
|
|
263
|
-
appContent = removeNpmImportName(appContent, npmComponent);
|
|
264
|
-
modified = true;
|
|
265
|
-
}
|
|
266
|
-
else if (navKey) {
|
|
267
|
-
appContent = removeNpmImportName(appContent, npmComponent);
|
|
268
|
-
appContent = addLocalImportLine(appContent, pascalName);
|
|
269
|
-
appContent = replaceSwitchCase(appContent, navKey, npmComponent, `${pascalName}Page`);
|
|
270
|
-
if (!appContent.includes(`case '${navKey}':`)) {
|
|
271
|
-
appContent = addSwitchCase(appContent, navKey, `${pascalName}Page`);
|
|
272
|
-
}
|
|
273
|
-
modified = true;
|
|
274
|
-
}
|
|
275
|
-
return { appContent, modified };
|
|
276
89
|
}
|
|
277
|
-
|
|
278
|
-
|
|
90
|
+
/** Delete a local page file after checksum verification. */
|
|
91
|
+
async function deleteLocalPage(projectRoot, pageDir, pascalName, fileName, force) {
|
|
279
92
|
const pagePath = path.join(pageDir, fileName);
|
|
280
93
|
// Confirm local file exists
|
|
281
94
|
try {
|
|
@@ -303,25 +116,6 @@ async function unejectSingleFile(projectRoot, pageDir, fileConfig, initialAppCon
|
|
|
303
116
|
await fs.unlink(pagePath);
|
|
304
117
|
await deleteChecksum(projectRoot, pascalName);
|
|
305
118
|
console.log(chalk.green(' ✓'), `Local file removed: ${path.relative(projectRoot, pagePath)}`);
|
|
306
|
-
// Modify App.tsx content passed in
|
|
307
|
-
let appContent = initialAppContent;
|
|
308
|
-
let modified = false;
|
|
309
|
-
if (isLogin) {
|
|
310
|
-
appContent = removeLocalImportLine(appContent, pascalName);
|
|
311
|
-
appContent = removeAuthGuardFallback(appContent);
|
|
312
|
-
appContent = addNpmImportName(appContent, npmComponent);
|
|
313
|
-
modified = true;
|
|
314
|
-
}
|
|
315
|
-
else if (navKey) {
|
|
316
|
-
appContent = removeLocalImportLine(appContent, pascalName);
|
|
317
|
-
appContent = addNpmImportName(appContent, npmComponent);
|
|
318
|
-
appContent = replaceSwitchCase(appContent, navKey, `${pascalName}Page`, npmComponent);
|
|
319
|
-
if (!appContent.includes(`case '${navKey}':`)) {
|
|
320
|
-
appContent = addSwitchCase(appContent, navKey, npmComponent);
|
|
321
|
-
}
|
|
322
|
-
modified = true;
|
|
323
|
-
}
|
|
324
|
-
return { appContent, modified };
|
|
325
119
|
}
|
|
326
120
|
// ── Register commands ──
|
|
327
121
|
export function registerEjectCommand(program) {
|
|
@@ -335,10 +129,10 @@ export function registerEjectCommand(program) {
|
|
|
335
129
|
.action(async (type, cmdOptions) => {
|
|
336
130
|
const pageType = parsePageType(type);
|
|
337
131
|
if (!pageType) {
|
|
338
|
-
console.error(chalk.red(`Invalid type "${type}". Use: ${
|
|
132
|
+
console.error(chalk.red(`Invalid type "${type}". Use: ${VALID_SYSTEM_PAGE_TYPES.join(', ')}.`));
|
|
339
133
|
process.exit(1);
|
|
340
134
|
}
|
|
341
|
-
const config =
|
|
135
|
+
const config = SYSTEM_PAGE_CONFIG[pageType];
|
|
342
136
|
try {
|
|
343
137
|
const projectRoot = await resolveProjectRoot();
|
|
344
138
|
const pageDir = path.join(projectRoot, 'frontend', 'src', 'components', 'pages');
|
|
@@ -347,33 +141,23 @@ export function registerEjectCommand(program) {
|
|
|
347
141
|
const appBackup = await backupFile(projectRoot, appTsxPath);
|
|
348
142
|
if (appBackup)
|
|
349
143
|
console.log(chalk.dim(` App.tsx backup: ${path.relative(projectRoot, appBackup)}`));
|
|
350
|
-
//
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
const mainResult = await ejectSingleFile(projectRoot, pageDir, {
|
|
355
|
-
...config,
|
|
356
|
-
isLogin: pageType === 'login',
|
|
357
|
-
}, appContent, cmdOptions.force);
|
|
358
|
-
if (mainResult.modified) {
|
|
359
|
-
appContent = mainResult.appContent;
|
|
360
|
-
anyModified = true;
|
|
144
|
+
// Write main page file from template
|
|
145
|
+
const mainTemplateFn = getTemplateFn(config, pageType);
|
|
146
|
+
if (mainTemplateFn) {
|
|
147
|
+
await writeLocalPage(projectRoot, pageDir, config.pascalName, config.fileName, mainTemplateFn, cmdOptions.force);
|
|
361
148
|
}
|
|
362
|
-
//
|
|
149
|
+
// Write extra files (e.g., NotificationDetail for notification type)
|
|
363
150
|
if (config.extraFiles) {
|
|
364
151
|
for (const extra of config.extraFiles) {
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
}, appContent, cmdOptions.force);
|
|
369
|
-
if (result.modified) {
|
|
370
|
-
appContent = result.appContent;
|
|
371
|
-
anyModified = true;
|
|
152
|
+
const extraTemplateFn = getTemplateFn(extra);
|
|
153
|
+
if (extraTemplateFn) {
|
|
154
|
+
await writeLocalPage(projectRoot, pageDir, extra.pascalName, extra.fileName, extraTemplateFn, cmdOptions.force);
|
|
372
155
|
}
|
|
373
156
|
}
|
|
374
157
|
}
|
|
375
|
-
|
|
376
|
-
|
|
158
|
+
// Wire App.tsx using the engine
|
|
159
|
+
const result = await wireAppTsx({ projectRoot, pageConfig: config, action: 'eject', force: cmdOptions.force });
|
|
160
|
+
if (result.modified) {
|
|
377
161
|
console.log(chalk.green(' ✓'), 'App.tsx switched to local import');
|
|
378
162
|
}
|
|
379
163
|
console.log();
|
|
@@ -396,45 +180,28 @@ export function registerEjectCommand(program) {
|
|
|
396
180
|
.action(async (type, cmdOptions) => {
|
|
397
181
|
const pageType = parsePageType(type);
|
|
398
182
|
if (!pageType) {
|
|
399
|
-
console.error(chalk.red(`Invalid type "${type}". Use: ${
|
|
183
|
+
console.error(chalk.red(`Invalid type "${type}". Use: ${VALID_SYSTEM_PAGE_TYPES.join(', ')}.`));
|
|
400
184
|
process.exit(1);
|
|
401
185
|
}
|
|
402
|
-
const config =
|
|
186
|
+
const config = SYSTEM_PAGE_CONFIG[pageType];
|
|
403
187
|
try {
|
|
404
188
|
const projectRoot = await resolveProjectRoot();
|
|
405
189
|
const pageDir = path.join(projectRoot, 'frontend', 'src', 'components', 'pages');
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
if (appBackup)
|
|
410
|
-
console.log(chalk.dim(` App.tsx backup: ${path.relative(projectRoot, appBackup)}`));
|
|
411
|
-
// Read App.tsx content once
|
|
412
|
-
let appContent = await fs.readFile(appTsxPath, 'utf-8');
|
|
413
|
-
let anyModified = false;
|
|
414
|
-
// Uneject main file
|
|
415
|
-
const mainResult = await unejectSingleFile(projectRoot, pageDir, {
|
|
416
|
-
...config,
|
|
417
|
-
isLogin: pageType === 'login',
|
|
418
|
-
}, appContent, cmdOptions.force);
|
|
419
|
-
if (mainResult.modified) {
|
|
420
|
-
appContent = mainResult.appContent;
|
|
421
|
-
anyModified = true;
|
|
422
|
-
}
|
|
423
|
-
// Uneject extra files
|
|
190
|
+
// Delete main page file
|
|
191
|
+
await deleteLocalPage(projectRoot, pageDir, config.pascalName, config.fileName, cmdOptions.force);
|
|
192
|
+
// Delete extra files
|
|
424
193
|
if (config.extraFiles) {
|
|
425
194
|
for (const extra of config.extraFiles) {
|
|
426
|
-
|
|
427
|
-
...extra,
|
|
428
|
-
isLogin: false,
|
|
429
|
-
}, appContent, cmdOptions.force);
|
|
430
|
-
if (result.modified) {
|
|
431
|
-
appContent = result.appContent;
|
|
432
|
-
anyModified = true;
|
|
433
|
-
}
|
|
195
|
+
await deleteLocalPage(projectRoot, pageDir, extra.pascalName, extra.fileName, cmdOptions.force);
|
|
434
196
|
}
|
|
435
197
|
}
|
|
436
|
-
|
|
437
|
-
|
|
198
|
+
// Wire App.tsx using the engine
|
|
199
|
+
const appTsxPath = path.join(projectRoot, 'frontend', 'src', 'App.tsx');
|
|
200
|
+
const appBackup = await backupFile(projectRoot, appTsxPath);
|
|
201
|
+
if (appBackup)
|
|
202
|
+
console.log(chalk.dim(` App.tsx backup: ${path.relative(projectRoot, appBackup)}`));
|
|
203
|
+
const result = await wireAppTsx({ projectRoot, pageConfig: config, action: 'uneject', force: cmdOptions.force });
|
|
204
|
+
if (result.modified) {
|
|
438
205
|
console.log(chalk.green(' ✓'), 'App.tsx switched back to npm import');
|
|
439
206
|
}
|
|
440
207
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/cli/commands/eject.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/cli/commands/eject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* loom generate system-settings <model|skill|user|login|process|notification>
|
|
3
3
|
*
|
|
4
|
-
* System management pages are
|
|
5
|
-
*
|
|
6
|
-
* Use
|
|
4
|
+
* System management pages are built into @loom-framework/frontend-antd.
|
|
5
|
+
* This command wires npm imports into App.tsx.
|
|
6
|
+
* Use `loom eject system-settings <type>` to create a local editable copy.
|
|
7
7
|
*/
|
|
8
8
|
import type { Command } from 'commander';
|
|
9
9
|
export declare function registerGenerateSystemSettingsCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-system-settings.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate-system-settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-system-settings.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate-system-settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgD5E"}
|