weaver-e10-builder 1.5.12 → 1.5.13
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/dist/commands/designer-common.d.ts.map +1 -1
- package/dist/commands/designer-common.js +91 -0
- package/dist/commands/designer-common.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +97 -1
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +21 -4
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +333 -25
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +18 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +5 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +88 -34
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
- package/dist/services/actionflow/filter_rules.js +9 -8
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +2 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +34 -15
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +3 -3
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +25 -13
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-linkage-condition.d.ts +15 -0
- package/dist/services/form-linkage-condition.d.ts.map +1 -1
- package/dist/services/form-linkage-condition.js +19 -10
- package/dist/services/form-linkage-condition.js.map +1 -1
- package/dist/services/form-sub-detail.d.ts +25 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +64 -0
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/workflow-operator.d.ts +12 -5
- package/dist/services/workflow-operator.d.ts.map +1 -1
- package/dist/services/workflow-operator.js +41 -16
- package/dist/services/workflow-operator.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +37 -173
- package/skill-docs/_catalog.md +3 -1
- package/skill-docs/references/coding/guide-page-code.md +2 -0
- package/skill-docs/references/coding/ref-compile-rules.md +2 -0
- package/skill-docs/references/common/capability-boundaries.md +15 -0
- package/skill-docs/references/common/guide-install.md +44 -0
- package/skill-docs/references/common/guide-plan-template.md +167 -167
- package/skill-docs/references/common/map.md +9 -0
- package/skill-docs/references/common/ref-cli-commands.md +650 -648
- package/skill-docs/references/form/guide-field-linkage.md +56 -14
- package/skill-docs/references/form/guide-form-formula-functions.md +354 -343
- package/skill-docs/references/form/guide-form-linkage.md +56 -66
- package/skill-docs/references/workflow/guide-workflow.md +1 -1
|
@@ -65,6 +65,14 @@ export function contextTableNameForRoot(root) {
|
|
|
65
65
|
: root && isComponentContextRoot(root) ? root
|
|
66
66
|
: '表单数据';
|
|
67
67
|
}
|
|
68
|
+
function requireResolvedContextRoot(meta, componentType, paramKey) {
|
|
69
|
+
const root = String(meta?._context_table_primary_key || '').trim();
|
|
70
|
+
if (root)
|
|
71
|
+
return root;
|
|
72
|
+
if (componentType === 'CustomTrigger')
|
|
73
|
+
return 'SelectParams';
|
|
74
|
+
throw new Error(`[context] 字段 '${paramKey}' 缺少 getComponentContext 返回的 tablePrimaryKey,拒绝猜测上下文根`);
|
|
75
|
+
}
|
|
68
76
|
/**
|
|
69
77
|
* 自定义触发的来源 key 只保存业务路径,不能把公式根节点混进 paramKey。
|
|
70
78
|
* 主表与明细表必须共用同一个主表路径,例如:
|
|
@@ -227,7 +235,7 @@ function resolveFormSettingSubKey(paramKey, meta) {
|
|
|
227
235
|
*/
|
|
228
236
|
function resolveBasisSubKey(paramKey, basisParamKey, basisType, meta, resolved) {
|
|
229
237
|
const kind = String(basisType || '').toLowerCase();
|
|
230
|
-
const root = resolvedContextRoot(resolved, String(resolved.componentType || meta?._context_component_type || '')
|
|
238
|
+
const root = resolvedContextRoot(resolved, String(resolved.componentType || meta?._context_component_type || ''));
|
|
231
239
|
const selected = protocolParamKey(String(paramKey || ''), root, String(resolved.componentType || meta?._context_component_type || ''));
|
|
232
240
|
const basis = protocolParamKey(String(basisParamKey || ''), root, String(resolved.componentType || meta?._context_component_type || ''));
|
|
233
241
|
if (!basis || selected === basis)
|
|
@@ -287,7 +295,7 @@ export function contextMetaForReference(meta, reference, componentType = '') {
|
|
|
287
295
|
: normalizeContextParamKey(selectedRaw, type);
|
|
288
296
|
return projected;
|
|
289
297
|
}
|
|
290
|
-
export function resolvedContextRoot(resolved, componentType
|
|
298
|
+
export function resolvedContextRoot(resolved, componentType) {
|
|
291
299
|
const supplied = String(resolved.tablePrimaryKey || '').trim();
|
|
292
300
|
if (supplied)
|
|
293
301
|
return supplied;
|
|
@@ -301,7 +309,9 @@ export function resolvedContextRoot(resolved, componentType, fallback = '') {
|
|
|
301
309
|
if (SERVERLESS_CONTEXT_TABLES.has(key))
|
|
302
310
|
return key;
|
|
303
311
|
}
|
|
304
|
-
|
|
312
|
+
if (componentType === 'CustomTrigger')
|
|
313
|
+
return 'SelectParams';
|
|
314
|
+
throw new Error(`[context] ${String(resolved.paramKey || resolved.key || '上下文字段')} 缺少 getComponentContext 返回的 tablePrimaryKey,拒绝按 ${componentType || '未知组件'} 猜测上下文根`);
|
|
305
315
|
}
|
|
306
316
|
export function protocolParamKey(paramKey, root, componentType) {
|
|
307
317
|
const raw = String(paramKey || '');
|
|
@@ -572,7 +582,11 @@ export function formulaContext(sourceComponentId, fieldKey, opts = {}) {
|
|
|
572
582
|
const fieldName = String(opts.name || fieldKey);
|
|
573
583
|
const componentType = opts.componentType || 'ApproveTrigger';
|
|
574
584
|
const fieldType = opts.fieldType || 'string';
|
|
575
|
-
const
|
|
585
|
+
const resolvedRoot = String(opts.meta?._context_table_primary_key || '').trim();
|
|
586
|
+
if (opts.requireResolvedRoot && !resolvedRoot && componentType !== 'CustomTrigger') {
|
|
587
|
+
throw new Error(`[context] 字段 '${fieldKey}' 缺少 getComponentContext 返回的 tablePrimaryKey,拒绝猜测上下文根`);
|
|
588
|
+
}
|
|
589
|
+
const contextRoot = resolvedRoot || (componentType === 'CustomTrigger' ? 'SelectParams' : contextRootForComponent(componentType));
|
|
576
590
|
const tableName = contextTableNameForRoot(contextRoot);
|
|
577
591
|
const parentName = alignContextParentName(fieldKey, opts.parentName || fieldName, fieldName, opts.meta || null, { componentType });
|
|
578
592
|
return {
|
|
@@ -873,11 +887,20 @@ export function buildPersonFormula(personRef, meta, appId = '', forSendMessage =
|
|
|
873
887
|
return formulaFixed(pid || personRef.name || '');
|
|
874
888
|
}
|
|
875
889
|
if (directPerson) {
|
|
876
|
-
if (ptype === 'context')
|
|
890
|
+
if (ptype === 'context') {
|
|
891
|
+
const componentType = String(personRef._resolvedContext?.componentType || personRef.componentType || meta?._context_component_type || 'ApproveTrigger');
|
|
892
|
+
const contextRoot = String(personRef._resolvedContext?.tablePrimaryKey || meta?._context_table_primary_key || '').trim();
|
|
893
|
+
if (!contextRoot && componentType !== 'CustomTrigger') {
|
|
894
|
+
throw new Error(`[context] 人员字段 '${pid}' 缺少 getComponentContext 返回的 tablePrimaryKey,拒绝猜测上下文根`);
|
|
895
|
+
}
|
|
877
896
|
return formulaContext('', pid, {
|
|
878
897
|
name: String(personRef.name || personRef.label || pid),
|
|
879
898
|
frontId: personRef.frontId || personRef.fieldId || personRef._resolvedContext?.fieldId,
|
|
899
|
+
componentType,
|
|
900
|
+
meta: contextRoot ? { ...meta, _context_table_primary_key: contextRoot } : meta,
|
|
901
|
+
requireResolvedRoot: true,
|
|
880
902
|
});
|
|
903
|
+
}
|
|
881
904
|
const pname = String(personRef.name || personRef.label || '');
|
|
882
905
|
if (pid && pname && pid !== '{userid}' && pid !== 'currentUser') {
|
|
883
906
|
const personObj = buildPersonObject(pid, pname);
|
|
@@ -1525,7 +1548,7 @@ export function assignFlatContext(paramKey, fieldLabel, sourceId, appId, fieldTy
|
|
|
1525
1548
|
const fid = genSfId();
|
|
1526
1549
|
const src = String(sourceId) || '0';
|
|
1527
1550
|
const componentType = String(meta?._context_component_type || meta?._upstream_component_type || '');
|
|
1528
|
-
const contextRoot =
|
|
1551
|
+
const contextRoot = requireResolvedContextRoot(meta, componentType, paramKey);
|
|
1529
1552
|
const tableName = contextTableNameForRoot(contextRoot);
|
|
1530
1553
|
const val = valueFull
|
|
1531
1554
|
? String(valueFull).replace(/^(?:FormData|ApprovalData|SelectParams)\./, `${contextRoot}.`)
|
|
@@ -1604,7 +1627,7 @@ export function assignFlatContextDirect(paramKey, fieldLabel, sourceId, appId, f
|
|
|
1604
1627
|
}
|
|
1605
1628
|
const componentType = String(meta?._context_component_type || meta?._upstream_component_type || '');
|
|
1606
1629
|
const explicitContextRoot = String(meta?._context_table_primary_key || '').trim();
|
|
1607
|
-
const contextRoot = explicitContextRoot ||
|
|
1630
|
+
const contextRoot = explicitContextRoot || requireResolvedContextRoot(meta, componentType, requestedPkey);
|
|
1608
1631
|
const parameterContext = isParameterContext(componentType, requestedPkey, contextRoot);
|
|
1609
1632
|
const parameterTable = parameterContext
|
|
1610
1633
|
? contextRoot
|
|
@@ -1728,9 +1751,7 @@ function assignFlatEsbChild(paramKey, fieldLabel, sourceId, appId, fieldType = '
|
|
|
1728
1751
|
const sourceComponent = String(resolved.componentType || componentType || 'ApproveTrigger');
|
|
1729
1752
|
// EsbFormDataDto/CustSetFormDto 的依据值下级协议使用表单设置根;
|
|
1730
1753
|
// 只有 API 已回填 tablePrimaryKey 时才采用来源组件的实际参数根。
|
|
1731
|
-
const contextRoot = resolvedContextRoot(resolved, sourceComponent
|
|
1732
|
-
? 'SelectParams'
|
|
1733
|
-
: parameterContextRoot(paramKey, sourceComponent) || 'FormData');
|
|
1754
|
+
const contextRoot = resolvedContextRoot(resolved, sourceComponent);
|
|
1734
1755
|
const sourceMeta = contextMetaForReference(meta, { paramKey, _resolvedContext: resolved }, sourceComponent);
|
|
1735
1756
|
const rawField = resolved.rawField && typeof resolved.rawField === 'object' ? resolved.rawField : {};
|
|
1736
1757
|
const rawDetailPk = detailParamKey || basisParamKey || (paramKey.includes('[]') ? paramKey.slice(0, paramKey.indexOf('[]')) + '[]' : '');
|
|
@@ -1790,9 +1811,7 @@ function assignFlatEsbChild(paramKey, fieldLabel, sourceId, appId, fieldType = '
|
|
|
1790
1811
|
function assignBasisFormulaArgument(paramKey, fieldLabel, sourceId, appId, fieldType, basisParamKey, basisType, meta, resolvedContext = {}) {
|
|
1791
1812
|
const fid = genSfId();
|
|
1792
1813
|
const sourceComponent = String(resolvedContext.componentType || meta?._context_component_type || meta?._upstream_component_type || 'ApproveTrigger');
|
|
1793
|
-
const contextRoot = resolvedContextRoot(resolvedContext, sourceComponent
|
|
1794
|
-
? 'SelectParams'
|
|
1795
|
-
: parameterContextRoot(paramKey, sourceComponent) || 'FormData');
|
|
1814
|
+
const contextRoot = resolvedContextRoot(resolvedContext, sourceComponent);
|
|
1796
1815
|
const selectedParamKey = protocolParamKey(String(paramKey), contextRoot, sourceComponent);
|
|
1797
1816
|
const selectedBasisKey = protocolParamKey(String(basisParamKey), contextRoot, sourceComponent);
|
|
1798
1817
|
const relative = selectedParamKey.startsWith(`${selectedBasisKey}.`)
|
|
@@ -1855,8 +1874,9 @@ function assignBasisFormulaArgument(paramKey, fieldLabel, sourceId, appId, field
|
|
|
1855
1874
|
function formulaIndexedWorkflowDetailArgument(paramKey, fieldLabel, sourceId, appId, fieldType = 'string', detailLabel = '', meta = {}, resolvedFrontId = '', resolvedContext = {}) {
|
|
1856
1875
|
const fid = genSfId();
|
|
1857
1876
|
const sourceComponent = String(resolvedContext.componentType || meta?._context_component_type || meta?._upstream_component_type || 'ApproveTrigger');
|
|
1877
|
+
const contextRoot = resolvedContextRoot(resolvedContext, sourceComponent);
|
|
1858
1878
|
const parameterRoot = (sourceComponent === 'WebHookTrigger' || sourceComponent === 'ServerlessAction')
|
|
1859
|
-
?
|
|
1879
|
+
? contextRoot
|
|
1860
1880
|
: '';
|
|
1861
1881
|
const normalizedParamKey = parameterRoot
|
|
1862
1882
|
? protocolParamKey(String(paramKey), parameterRoot, sourceComponent)
|
|
@@ -1879,7 +1899,6 @@ function formulaIndexedWorkflowDetailArgument(paramKey, fieldLabel, sourceId, ap
|
|
|
1879
1899
|
index.name = '0';
|
|
1880
1900
|
index.position = genSfId();
|
|
1881
1901
|
index.parentId = fid;
|
|
1882
|
-
const contextRoot = parameterRoot || contextRootForComponent(sourceComponent);
|
|
1883
1902
|
const tableName = parameterRoot
|
|
1884
1903
|
? String(resolvedContext.tableName || meta?._context_table_name || contextRoot)
|
|
1885
1904
|
: contextTableNameForRoot(contextRoot);
|