weaver-e10-builder 1.7.1 → 1.7.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 (68) hide show
  1. package/assets/icon-names.txt +7438 -0
  2. package/dist/commands/form-association-manage.d.ts.map +1 -1
  3. package/dist/commands/form-association-manage.js +57 -4
  4. package/dist/commands/form-association-manage.js.map +1 -1
  5. package/dist/commands/form-association.d.ts.map +1 -1
  6. package/dist/commands/form-association.js +4 -2
  7. package/dist/commands/form-association.js.map +1 -1
  8. package/dist/commands/form-button-actions-cmd.d.ts.map +1 -1
  9. package/dist/commands/form-button-actions-cmd.js +180 -18
  10. package/dist/commands/form-button-actions-cmd.js.map +1 -1
  11. package/dist/commands/form-button-props-cmd.d.ts.map +1 -1
  12. package/dist/commands/form-button-props-cmd.js +4 -0
  13. package/dist/commands/form-button-props-cmd.js.map +1 -1
  14. package/dist/commands/form-button.d.ts.map +1 -1
  15. package/dist/commands/form-button.js +11 -0
  16. package/dist/commands/form-button.js.map +1 -1
  17. package/dist/commands/form-permission.d.ts.map +1 -1
  18. package/dist/commands/form-permission.js +306 -84
  19. package/dist/commands/form-permission.js.map +1 -1
  20. package/dist/commands/icon.d.ts.map +1 -1
  21. package/dist/commands/icon.js +63 -1
  22. package/dist/commands/icon.js.map +1 -1
  23. package/dist/services/actionflow/components/enquiry_form.js +4 -4
  24. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  25. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  26. package/dist/services/actionflow/context_preflight.js +0 -10
  27. package/dist/services/actionflow/context_preflight.js.map +1 -1
  28. package/dist/services/form-association.d.ts +28 -1
  29. package/dist/services/form-association.d.ts.map +1 -1
  30. package/dist/services/form-association.js +232 -2
  31. package/dist/services/form-association.js.map +1 -1
  32. package/dist/services/form-button-action.d.ts +48 -2
  33. package/dist/services/form-button-action.d.ts.map +1 -1
  34. package/dist/services/form-button-action.js +68 -2
  35. package/dist/services/form-button-action.js.map +1 -1
  36. package/dist/services/form-field-options.d.ts +45 -0
  37. package/dist/services/form-field-options.d.ts.map +1 -0
  38. package/dist/services/form-field-options.js +179 -0
  39. package/dist/services/form-field-options.js.map +1 -0
  40. package/dist/services/form-permission-archive.d.ts +1 -0
  41. package/dist/services/form-permission-archive.d.ts.map +1 -1
  42. package/dist/services/form-permission-archive.js +3 -3
  43. package/dist/services/form-permission-archive.js.map +1 -1
  44. package/dist/services/form-permission-edit.d.ts +25 -0
  45. package/dist/services/form-permission-edit.d.ts.map +1 -1
  46. package/dist/services/form-permission-edit.js +49 -1
  47. package/dist/services/form-permission-edit.js.map +1 -1
  48. package/dist/services/icon-catalog.d.ts +60 -0
  49. package/dist/services/icon-catalog.d.ts.map +1 -0
  50. package/dist/services/icon-catalog.js +175 -0
  51. package/dist/services/icon-catalog.js.map +1 -0
  52. package/dist/services/icon-path.d.ts +2 -0
  53. package/dist/services/icon-path.d.ts.map +1 -1
  54. package/dist/services/icon-path.js +4 -0
  55. package/dist/services/icon-path.js.map +1 -1
  56. package/package.json +1 -1
  57. package/skill-docs/SKILL.md +6 -5
  58. package/skill-docs/_catalog.md +1 -1
  59. package/skill-docs/actionflows/SKILL.md +195 -195
  60. package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +80 -80
  61. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +75 -75
  62. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +113 -111
  63. package/skill-docs/actionflows/references/condition_rules.md +100 -100
  64. package/skill-docs/references/common/guide-install.md +2 -0
  65. package/skill-docs/references/common/ref-cli-commands.md +11 -7
  66. package/skill-docs/references/form/guide-form-association.md +36 -0
  67. package/skill-docs/references/form/guide-form-button.md +22 -1
  68. package/skill-docs/references/form/guide-form-permission.md +14 -4
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 平台图标名目录 —— 写按钮/组件图标前的「名字是否存在」校验。
3
+ *
4
+ * 为什么需要它:平台对不存在的图标名**不报错**,只会在运行时按空图标处理
5
+ * (按钮上什么都没有)。真实踩过:AI 建按钮时写了 `Icon-N-Delete` / `Icon-N-Success`,
6
+ * 平台照单全收,界面上按钮图标全是空白,和手工新建的按钮看起来完全不一样。
7
+ *
8
+ * 目录来自平台前端 `@weapp/iconfont` 的 icon-index(7438 个),生成 `assets/icon-names.txt`,
9
+ * 每行 `图标名<TAB>中文名`。校验只做「名字是否存在」,不做渲染验证。
10
+ *
11
+ * 找不到目录文件时**不阻断**(旧包/裁剪包仍可建按钮),调用方按 `checked:false` 处理。
12
+ */
13
+ export interface IconCatalogEntry {
14
+ /** 带 `Icon-` 前缀的规范名 */
15
+ name: string;
16
+ /** 平台中文名(可能为空) */
17
+ chineseName: string;
18
+ }
19
+ interface IconCatalog {
20
+ entries: IconCatalogEntry[];
21
+ byName: Map<string, IconCatalogEntry>;
22
+ /** 小写名 → 规范名(用于纠正大小写/前后空格) */
23
+ byLower: Map<string, string>;
24
+ }
25
+ export declare function findIconCatalogFile(): string;
26
+ /**
27
+ * 读取图标目录(进程内缓存)。文件不存在或读坏时返回 `null`,调用方跳过校验。
28
+ * 目录行格式:`Icon-Xxx<TAB>中文名`;只有名字的行也接受。
29
+ */
30
+ export declare function loadIconCatalog(): IconCatalog | null;
31
+ /** 去掉 `#` 前缀并 trim。图标目录里存的是不带 `#` 的名字。 */
32
+ export declare function bareIconName(raw: string): string;
33
+ /**
34
+ * 找近似图标名。
35
+ *
36
+ * 排序:编辑距离小的优先;距离相同再看中文名/名字长度的接近程度。
37
+ * 大小写不同但拼写完全一致的,直接排第一(`icon-n-deleted` → `Icon-N-Deleted`)。
38
+ */
39
+ export declare function suggestIcons(raw: string, limit?: number): IconCatalogEntry[];
40
+ export interface IconCheckResult {
41
+ /** 用户给的原始值 */
42
+ raw: string;
43
+ /** 去 # 后的名字 */
44
+ name: string;
45
+ /** 是否做了实际校验(目录文件缺失时为 false) */
46
+ checked: boolean;
47
+ valid: boolean;
48
+ /** 图片路径(以 /、http、data: 开头)不参与图标名校验 */
49
+ image: boolean;
50
+ entry?: IconCatalogEntry;
51
+ suggestions: IconCatalogEntry[];
52
+ }
53
+ /** 只读检查,不抛错。 */
54
+ export declare function checkIconName(raw: string, limit?: number): IconCheckResult;
55
+ /** 给保存类命令用的硬校验:不存在就停下来,并给出近似名。 */
56
+ export declare function assertIconName(raw: string, options?: {
57
+ force?: boolean;
58
+ }): void;
59
+ export {};
60
+ //# sourceMappingURL=icon-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-catalog.d.ts","sourceRoot":"","sources":["../../src/services/icon-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtC,8BAA8B;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAqBD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAuBpD;AAED,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,gBAAgB,EAAE,CA0BvE;AASD,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,eAAe,CAYrE;AAED,kCAAkC;AAClC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAWnF"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * 平台图标名目录 —— 写按钮/组件图标前的「名字是否存在」校验。
3
+ *
4
+ * 为什么需要它:平台对不存在的图标名**不报错**,只会在运行时按空图标处理
5
+ * (按钮上什么都没有)。真实踩过:AI 建按钮时写了 `Icon-N-Delete` / `Icon-N-Success`,
6
+ * 平台照单全收,界面上按钮图标全是空白,和手工新建的按钮看起来完全不一样。
7
+ *
8
+ * 目录来自平台前端 `@weapp/iconfont` 的 icon-index(7438 个),生成 `assets/icon-names.txt`,
9
+ * 每行 `图标名<TAB>中文名`。校验只做「名字是否存在」,不做渲染验证。
10
+ *
11
+ * 找不到目录文件时**不阻断**(旧包/裁剪包仍可建按钮),调用方按 `checked:false` 处理。
12
+ */
13
+ import { existsSync, readFileSync } from 'node:fs';
14
+ import { dirname, resolve } from 'node:path';
15
+ import { fileURLToPath } from 'node:url';
16
+ import { homedir } from 'node:os';
17
+ import { isImageIconPath } from './icon-path.js';
18
+ const __dirname = dirname(fileURLToPath(import.meta.url));
19
+ let cache;
20
+ /** 与 icon 命令一致的查找顺序:本包 assets → skill 文档树 → 已安装 skill。 */
21
+ function candidatePaths() {
22
+ const home = homedir();
23
+ const fromSkillDir = process.env.E10_SKILL_DIR
24
+ ? [resolve(process.env.E10_SKILL_DIR, 'assets', 'icon-names.txt')]
25
+ : [];
26
+ return [
27
+ // src/services 或 dist/services → packages/cli/assets/icon-names.txt
28
+ resolve(__dirname, '..', '..', 'assets', 'icon-names.txt'),
29
+ // 仓库源码布局:<repo>/skills/weaver-e10-builder/assets/icon-names.txt
30
+ resolve(__dirname, '..', '..', '..', '..', 'skills', 'weaver-e10-builder', 'assets', 'icon-names.txt'),
31
+ ...fromSkillDir,
32
+ resolve(home, '.workbuddy', 'skills', 'weaver-e10-builder', 'assets', 'icon-names.txt'),
33
+ resolve(home, '.claude', 'skills', 'weaver-e10-builder', 'assets', 'icon-names.txt'),
34
+ ];
35
+ }
36
+ export function findIconCatalogFile() {
37
+ return candidatePaths().find((path) => existsSync(path)) || '';
38
+ }
39
+ /**
40
+ * 读取图标目录(进程内缓存)。文件不存在或读坏时返回 `null`,调用方跳过校验。
41
+ * 目录行格式:`Icon-Xxx<TAB>中文名`;只有名字的行也接受。
42
+ */
43
+ export function loadIconCatalog() {
44
+ if (cache !== undefined)
45
+ return cache;
46
+ const file = findIconCatalogFile();
47
+ if (!file)
48
+ return (cache = null);
49
+ try {
50
+ const entries = [];
51
+ const byName = new Map();
52
+ const byLower = new Map();
53
+ for (const line of readFileSync(file, 'utf8').split(/\r?\n/)) {
54
+ const text = line.trim();
55
+ if (!text || text.startsWith('#'))
56
+ continue;
57
+ const [namePart, ...rest] = text.split('\t');
58
+ const name = String(namePart || '').trim();
59
+ if (!name)
60
+ continue;
61
+ const entry = { name, chineseName: rest.join('\t').trim() };
62
+ entries.push(entry);
63
+ byName.set(name, entry);
64
+ if (!byLower.has(name.toLowerCase()))
65
+ byLower.set(name.toLowerCase(), name);
66
+ }
67
+ return (cache = { entries, byName, byLower });
68
+ }
69
+ catch {
70
+ return (cache = null);
71
+ }
72
+ }
73
+ /** 去掉 `#` 前缀并 trim。图标目录里存的是不带 `#` 的名字。 */
74
+ export function bareIconName(raw) {
75
+ return String(raw ?? '').trim().replace(/^#/, '');
76
+ }
77
+ /** 计算两个名字的编辑距离(带上限,超过上限直接返回上限+1,避免无谓计算)。 */
78
+ function editDistance(a, b, cutoff) {
79
+ if (Math.abs(a.length - b.length) > cutoff)
80
+ return cutoff + 1;
81
+ const prev = new Array(b.length + 1);
82
+ const cur = new Array(b.length + 1);
83
+ for (let j = 0; j <= b.length; j += 1)
84
+ prev[j] = j;
85
+ for (let i = 1; i <= a.length; i += 1) {
86
+ cur[0] = i;
87
+ let rowMin = cur[0];
88
+ for (let j = 1; j <= b.length; j += 1) {
89
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
90
+ cur[j] = Math.min(prev[j] + 1, cur[j - 1] + 1, prev[j - 1] + cost);
91
+ if (cur[j] < rowMin)
92
+ rowMin = cur[j];
93
+ }
94
+ if (rowMin > cutoff)
95
+ return cutoff + 1;
96
+ for (let j = 0; j <= b.length; j += 1)
97
+ prev[j] = cur[j];
98
+ }
99
+ return prev[b.length];
100
+ }
101
+ /**
102
+ * 找近似图标名。
103
+ *
104
+ * 排序:编辑距离小的优先;距离相同再看中文名/名字长度的接近程度。
105
+ * 大小写不同但拼写完全一致的,直接排第一(`icon-n-deleted` → `Icon-N-Deleted`)。
106
+ */
107
+ export function suggestIcons(raw, limit = 5) {
108
+ const catalog = loadIconCatalog();
109
+ if (!catalog)
110
+ return [];
111
+ const name = bareIconName(raw);
112
+ if (!name)
113
+ return [];
114
+ const lower = name.toLowerCase();
115
+ if (catalog.byLower.has(lower)) {
116
+ const exact = catalog.byName.get(catalog.byLower.get(lower));
117
+ if (exact)
118
+ return [exact];
119
+ }
120
+ // 名字很长时放宽上限,短名保持严格,避免给出一堆毫不相关的候选。
121
+ const cutoff = Math.min(12, Math.max(3, Math.floor(name.length / 3)));
122
+ const scored = [];
123
+ for (const entry of catalog.entries) {
124
+ const entryLower = entry.name.toLowerCase();
125
+ // 共同前缀太短且距离上限也不够的,先粗筛掉,减少编辑距离计算。
126
+ const prefix = commonPrefixLength(lower, entryLower);
127
+ if (prefix < 4 && Math.abs(entryLower.length - lower.length) > cutoff)
128
+ continue;
129
+ const distance = editDistance(lower, entryLower, cutoff);
130
+ if (distance <= cutoff)
131
+ scored.push({ entry, distance });
132
+ if (scored.length > 400)
133
+ break; // 候选足够多,不必扫完全表
134
+ }
135
+ scored.sort((a, b) => a.distance - b.distance
136
+ || a.entry.name.length - b.entry.name.length
137
+ || a.entry.name.localeCompare(b.entry.name));
138
+ return scored.slice(0, limit).map((item) => item.entry);
139
+ }
140
+ function commonPrefixLength(a, b) {
141
+ const max = Math.min(a.length, b.length);
142
+ let i = 0;
143
+ while (i < max && a[i] === b[i])
144
+ i += 1;
145
+ return i;
146
+ }
147
+ /** 只读检查,不抛错。 */
148
+ export function checkIconName(raw, limit = 5) {
149
+ const name = bareIconName(raw);
150
+ const image = isImageIconPath(raw);
151
+ const catalog = loadIconCatalog();
152
+ if (image)
153
+ return { raw: String(raw ?? ''), name, checked: true, valid: true, image, suggestions: [] };
154
+ if (!catalog)
155
+ return { raw: String(raw ?? ''), name, checked: false, valid: true, image, suggestions: [] };
156
+ const entry = catalog.byName.get(name);
157
+ return {
158
+ raw: String(raw ?? ''), name, checked: true, valid: Boolean(entry), image,
159
+ ...(entry ? { entry } : {}),
160
+ suggestions: entry ? [] : suggestIcons(name, limit),
161
+ };
162
+ }
163
+ /** 给保存类命令用的硬校验:不存在就停下来,并给出近似名。 */
164
+ export function assertIconName(raw, options = {}) {
165
+ const result = checkIconName(raw);
166
+ if (!result.checked || result.valid || result.image || options.force)
167
+ return;
168
+ const similar = result.suggestions.length
169
+ ? `\n近似图标:${result.suggestions.map((item) => `${item.name}${item.chineseName ? `(${item.chineseName})` : ''}`).join('、')}`
170
+ : '';
171
+ throw new Error(`图标「${result.name}」不在平台图标库中,按钮上会显示空白。${similar}`
172
+ + `\n如果确认该名字在目标环境存在,请追加 --force-icon。`
173
+ + `\n可用 e10-cli icon search <关键词> 查图标。`);
174
+ }
175
+ //# sourceMappingURL=icon-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-catalog.js","sourceRoot":"","sources":["../../src/services/icon-catalog.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@
17
17
  * 真要发**图片**的:以 `/`(应用内路径)、`http(s)://`、`data:` 开头的一律原样发 ——
18
18
  * 这些本来就该走 AssetsImg 分支。其余一律当图标名补上 `#`。
19
19
  */
20
+ /** 是否是图片地址(这种 path 不参与图标名校验,平台会走 AssetsImg 分支)。 */
21
+ export declare function isImageIconPath(raw: string): boolean;
20
22
  /**
21
23
  * 归一化图标 path:不是图片地址就补 `#` 前缀。已经带 `#` 的原样返回。
22
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"icon-path.d.ts","sourceRoot":"","sources":["../../src/services/icon-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAU/E;AAED,uBAAuB;AACvB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAarF"}
1
+ {"version":3,"file":"icon-path.d.ts","sourceRoot":"","sources":["../../src/services/icon-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAU/E;AAED,uBAAuB;AACvB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAarF"}
@@ -19,6 +19,10 @@
19
19
  */
20
20
  /** 看起来是图片地址(应用内路径 / 外链 / data URI)而不是图标名的。 */
21
21
  const IMAGE_LIKE = /^(\/|https?:\/\/|data:|\.\/|\.\.\/)/i;
22
+ /** 是否是图片地址(这种 path 不参与图标名校验,平台会走 AssetsImg 分支)。 */
23
+ export function isImageIconPath(raw) {
24
+ return IMAGE_LIKE.test(String(raw ?? '').trim());
25
+ }
22
26
  /**
23
27
  * 归一化图标 path:不是图片地址就补 `#` 前缀。已经带 `#` 的原样返回。
24
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"icon-path.js","sourceRoot":"","sources":["../../src/services/icon-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,8CAA8C;AAC9C,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAuB;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAwB;QAChC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE;KAC9D,CAAC;IACF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAiBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA0B;IAC9D,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;YACnC,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACpC;QACD,eAAe,EAAE,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"icon-path.js","sourceRoot":"","sources":["../../src/services/icon-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,8CAA8C;AAC9C,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAE1D,mDAAmD;AACnD,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAuB;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAwB;QAChC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE;KAC9D,CAAC;IACF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAiBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA0B;IAC9D,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;YACnC,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACpC;QACD,eAAe,EAAE,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;KAC3D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weaver-e10-builder",
3
- "version": "1.7.1",
3
+ "version": "1.7.2",
4
4
  "description": "Eteams/Ebuilder CLI — 泛微 OA 命令行工具",
5
5
  "type": "module",
6
6
  "files": [
@@ -2,11 +2,11 @@
2
2
  name: weaver-e10-builder
3
3
  display_name: 泛微E10智能搭建Skill
4
4
  display_name_en: E10 Builder
5
- description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.7.1
6
- description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.7.1。
7
- description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.7.1.
5
+ description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.7.2
6
+ description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.7.2。
7
+ description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.7.2.
8
8
  category: coding
9
- version: 1.7.1
9
+ version: 1.7.2
10
10
  author: 泛微网络科技股份有限公司
11
11
  auto: true
12
12
  ---
@@ -18,7 +18,8 @@ auto: true
18
18
  - **版本必须匹配**:`e10-cli --version` 应与 frontmatter 的 `version` 一致;不一致时命令/选项/文档可能对不上。
19
19
  - **鉴权**:仅在即将远程查询或写入前运行 `e10-cli auth status`;同一连续阶段不重复检查,切换系统地址、profile 或凭证后必须重新确认。
20
20
  - **文档随 CLI 分发**:读 `references/...` 提示文件不存在时,跑 `e10-cli skill sync` 或重跑 `e10-cli auth status`。
21
- - 安装/升级、skill 重装、WorkBuddy 注意事项 → `references/common/guide-install.md`。
21
+ - **首次安装**:先装 CLI —— 在线 `npm install -g weaver-e10-builder`,离线用 `npm install -g ./weaver-e10-builder-<版本>.tgz`;薄层 skill 根目录的 `INSTALL.md` 有完整步骤。装好 CLI 后运行 `e10-cli auth status`,完整文档(含 `references/common/guide-install.md`)会自动同步进本目录。
22
+ - 安装/升级、skill 重装、WorkBuddy 注意事项 → `references/common/guide-install.md`(CLI 安装后才会同步;还没装 CLI 时先看根目录 `INSTALL.md`)。
22
23
 
23
24
  ## 核心理念
24
25
 
@@ -85,7 +85,7 @@
85
85
  | 应用设置、菜单设置、电脑端显示/隐藏/不显示、多级菜单全部收起/展开、移动端显示、默认首页、字段权限启用/禁用、app setting get/set | `references/app/guide-app-settings.md`(publishInfo 层;与前台发布配置 / app range 区分) |
86
86
  | 应用管理权限、管理对象、应用管理员、添加/移除管理权限、内联权限分组、权限分组、分组成员、app manager、app manager group | `references/app/guide-app-manager.md`(管理对象 + publishInfo.rightGroupList;区别于独立「权限组」页) |
87
87
  | 完整实施方案、规划能力地图、资源依赖、需求映射、plan 前预检、**方案澄清、可行性预检、哪些做不到**、平台架构、Ecode、默认台账与菜单 | `references/common/map.md`,随后使用 `references/common/guide-plan-template.md`(0.1 节)与 `references/common/capability-boundaries.md` |
88
- | 安装、升级、装不上、skill 重装、skill remove、skill sync、references 文档缺失、WorkBuddy | `references/common/guide-install.md` |
88
+ | 首次安装(还没装 CLI)、升级、装不上、skill 重装、skill remove、skill sync、references 文档缺失、WorkBuddy | 首次安装看 skill 根目录 `INSTALL.md`;CLI 安装后看 `references/common/guide-install.md` |
89
89
  | 能力边界、支不支持、能不能做、不支持的能力、**证据等级、CLI 没暴露** | `references/common/capability-boundaries.md`(命令表只能证明 CLI 没暴露,不能当平台不支持) |
90
90
  | 接口文档导入、Postman、系统接口、连接器接口、createSystemInterfaceByAi、接口批量创建 | `references/esb-interface/guide-import.md` |
91
91
  | 系统菜单、内置菜单、挂系统页面到菜单、menuUrl、pageType、工作流菜单、独立页面菜单、菜单改名、menu rename、重命名菜单、找不到菜单、二级菜单、子菜单、父菜单、菜单层级、menu add-table --parent、menu add-start --parent、菜单排序、菜单顺序、放第一个、menu order、showOrder、--first、菜单打开方式、新窗口、openMode、menu open-mode、移动端菜单、H5 菜单、--terminal、PC 菜单同步到移动端、菜单同步、同步 PC 菜单、menu sync、菜单可见范围、可见范围内禁用、--scope disabled、menu permission | `references/menu/system-menus.md` + `references/common/ref-cli-commands.md` |