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.
Files changed (58) hide show
  1. package/dist/commands/designer-common.d.ts.map +1 -1
  2. package/dist/commands/designer-common.js +91 -0
  3. package/dist/commands/designer-common.js.map +1 -1
  4. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  5. package/dist/commands/form-add-detail-table.js +97 -1
  6. package/dist/commands/form-add-detail-table.js.map +1 -1
  7. package/dist/commands/form-formula.d.ts.map +1 -1
  8. package/dist/commands/form-formula.js +21 -4
  9. package/dist/commands/form-formula.js.map +1 -1
  10. package/dist/commands/form.d.ts.map +1 -1
  11. package/dist/commands/form.js +333 -25
  12. package/dist/commands/form.js.map +1 -1
  13. package/dist/commands/workflow.d.ts.map +1 -1
  14. package/dist/commands/workflow.js +18 -4
  15. package/dist/commands/workflow.js.map +1 -1
  16. package/dist/services/actionflow/context_preflight.d.ts +5 -0
  17. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  18. package/dist/services/actionflow/context_preflight.js +88 -34
  19. package/dist/services/actionflow/context_preflight.js.map +1 -1
  20. package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
  21. package/dist/services/actionflow/filter_rules.js +9 -8
  22. package/dist/services/actionflow/filter_rules.js.map +1 -1
  23. package/dist/services/actionflow/formula_service.d.ts +2 -1
  24. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  25. package/dist/services/actionflow/formula_service.js +34 -15
  26. package/dist/services/actionflow/formula_service.js.map +1 -1
  27. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  28. package/dist/services/actionflow/preflight_service.js +3 -3
  29. package/dist/services/actionflow/preflight_service.js.map +1 -1
  30. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  31. package/dist/services/actionflow/workflow_compiler.js +25 -13
  32. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  33. package/dist/services/form-linkage-condition.d.ts +15 -0
  34. package/dist/services/form-linkage-condition.d.ts.map +1 -1
  35. package/dist/services/form-linkage-condition.js +19 -10
  36. package/dist/services/form-linkage-condition.js.map +1 -1
  37. package/dist/services/form-sub-detail.d.ts +25 -0
  38. package/dist/services/form-sub-detail.d.ts.map +1 -1
  39. package/dist/services/form-sub-detail.js +64 -0
  40. package/dist/services/form-sub-detail.js.map +1 -1
  41. package/dist/services/workflow-operator.d.ts +12 -5
  42. package/dist/services/workflow-operator.d.ts.map +1 -1
  43. package/dist/services/workflow-operator.js +41 -16
  44. package/dist/services/workflow-operator.js.map +1 -1
  45. package/package.json +1 -1
  46. package/skill-docs/SKILL.md +37 -173
  47. package/skill-docs/_catalog.md +3 -1
  48. package/skill-docs/references/coding/guide-page-code.md +2 -0
  49. package/skill-docs/references/coding/ref-compile-rules.md +2 -0
  50. package/skill-docs/references/common/capability-boundaries.md +15 -0
  51. package/skill-docs/references/common/guide-install.md +44 -0
  52. package/skill-docs/references/common/guide-plan-template.md +167 -167
  53. package/skill-docs/references/common/map.md +9 -0
  54. package/skill-docs/references/common/ref-cli-commands.md +650 -648
  55. package/skill-docs/references/form/guide-field-linkage.md +56 -14
  56. package/skill-docs/references/form/guide-form-formula-functions.md +354 -343
  57. package/skill-docs/references/form/guide-form-linkage.md +56 -66
  58. package/skill-docs/references/workflow/guide-workflow.md +1 -1
@@ -8,7 +8,7 @@ import fs from 'node:fs';
8
8
  import { get, getCompiler, getNodePost } from './components/index.js';
9
9
  import { buildEsbFormDataDto, buildEsbFormField } from './components/form_data_builder.js';
10
10
  import { findInMetadata, getTargetFormFields, getWorkflowDetailNames, getTargetDetailFields, getWorkflowDetailFields, getWorkflowFieldIds, workflowFieldId, getWorkflowContextFields, getWorkflowContextFieldsByKey } from './runtime_metadata.js';
11
- import { buildPersonFormula, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextRootForComponent, contextTableNameForRoot, normalizeContextParamKey, resolveFormSettingBasisParentName, contextMetaForReference, resolvedContextRoot, protocolParamKey, } from './formula_service.js';
11
+ import { buildPersonFormula, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextTableNameForRoot, normalizeContextParamKey, resolveFormSettingBasisParentName, contextMetaForReference, resolvedContextRoot, protocolParamKey, } from './formula_service.js';
12
12
  import { buildFormulaReference, buildUpdateFieldCondition } from './components/action_eb_update_compiler.js';
13
13
  import { resolveCustomTriggerDtoId } from './custom_trigger_context.js';
14
14
  import { resolveSystemParameter, isDateSystemParameter } from './system_params.js';
@@ -318,11 +318,16 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
318
318
  result.requestName = buildFormulaReference(val, { meta, appId, eventId, componentType });
319
319
  }
320
320
  else {
321
+ const contextRoot = String(val._resolvedContext?.tablePrimaryKey || meta?._context_table_primary_key || '').trim();
322
+ if (!contextRoot) {
323
+ throw new Error(`ApproveCreate.requestName 上下文 '${String(val.key ?? val.value ?? '')}' 缺少实时上下文 tablePrimaryKey,拒绝猜测上下文根`);
324
+ }
321
325
  const wfId = String(meta?._workflow_id || '');
322
326
  const rqKey = resolveParamKey(wfId, String(val.key ?? val.value ?? ''));
323
327
  result.requestName = formulaContext('', rqKey, {
324
328
  name: String(val.label || ''),
325
329
  frontId: val._resolvedContext?.fieldId || val.frontId || val.fieldId,
330
+ meta: { ...meta, _context_table_primary_key: contextRoot },
326
331
  });
327
332
  attachEsbAssign(result.requestName, meta, String(eventId || ''));
328
333
  }
@@ -364,7 +369,7 @@ function handleBasisValue(val, result, meta, appId, eventId) {
364
369
  if (keyIndex[arrKey] && !keyIndex[bvKey])
365
370
  bvKey = arrKey;
366
371
  }
367
- const basisRoot = resolvedContextRoot(resolved, sourceComponent, sourceComponent === 'CustomTrigger' ? contextRootForComponent('CustomTrigger') : 'FormData');
372
+ const basisRoot = resolvedContextRoot(resolved, sourceComponent);
368
373
  bvKey = protocolParamKey(sourceComponent === 'CustomTrigger' ? normalizeContextParamKey(bvKey, sourceComponent) : bvKey, basisRoot, sourceComponent);
369
374
  if (bvKey) {
370
375
  const idx = bvKey.lastIndexOf('.');
@@ -1110,11 +1115,18 @@ function conditionFormulaType(right, shape, sourceId) {
1110
1115
  const key = String(raw || '').replace(/^(FormData|ApprovalData)\./, '');
1111
1116
  if (!key)
1112
1117
  throw new Error('Condition 动态右值必须提供 paramKey/key/value 或完整 formula');
1118
+ const componentType = String(right?.componentType || right?.comType || right?._resolvedContext?.componentType || 'ApproveTrigger');
1119
+ const contextRoot = String(right?._resolvedContext?.tablePrimaryKey || right?.tablePrimaryKey || '').trim();
1120
+ if (!contextRoot && componentType !== 'CustomTrigger') {
1121
+ throw new Error(`Condition 右值 '${key}' 缺少 getComponentContext 返回的 tablePrimaryKey,拒绝猜测上下文根`);
1122
+ }
1113
1123
  const bean = formulaContext(String(right?.source || right?.comId || sourceId), key, {
1114
1124
  name: String(right?.label || right?.name || key),
1115
1125
  fieldType: shape.formulaType,
1116
- componentType: String(right?.componentType || right?.comType || 'ApproveTrigger'),
1126
+ componentType,
1117
1127
  frontId: right?._resolvedContext?.fieldId || right?._resolvedContext?.rawField?.id || right?.frontId || right?.fieldId,
1128
+ meta: contextRoot ? { _context_table_primary_key: contextRoot } : undefined,
1129
+ requireResolvedRoot: true,
1118
1130
  });
1119
1131
  bean.businessId = String(right?.businessId || bean.businessId || '0');
1120
1132
  return bean;
@@ -1176,19 +1188,19 @@ function buildSingleConditionDetail(condition, sourceId, meta = null) {
1176
1188
  comType = 'EnquiryForm';
1177
1189
  }
1178
1190
  else if (rawField) {
1191
+ const contextRoot = String(rawField.tablePrimaryKey || rawField.contextGroup || '').trim();
1192
+ if (!contextRoot) {
1193
+ throw new Error(`Condition.left.key='${requestedFieldKey}' 的实时上下文缺少 tablePrimaryKey,拒绝猜测 ApprovalData/FormData`);
1194
+ }
1179
1195
  paramKeyId = String(rawField.paramKey);
1180
- valueId = `ApprovalData.${paramKeyId}`;
1196
+ valueId = `${contextRoot}.${paramKeyId}`;
1181
1197
  comType = 'ApproveTrigger';
1182
1198
  }
1183
1199
  else if (fieldId && workflowId && fieldId !== fieldKey) {
1184
- paramKeyId = `${workflowId}.${fieldId}`;
1185
- valueId = `FormData.${workflowId}.${fieldId}`;
1186
- comType = 'ApproveTrigger';
1200
+ throw new Error(`Condition.left.key='${requestedFieldKey}' 未返回实时上下文分组,拒绝猜测 FormData`);
1187
1201
  }
1188
1202
  else {
1189
- paramKeyId = fieldKey;
1190
- valueId = fieldKey ? `FormData.${fieldKey}` : '';
1191
- comType = 'EbGetDataById';
1203
+ throw new Error(`Condition.left.key='${requestedFieldKey}' 未返回实时上下文分组,拒绝猜测 FormData`);
1192
1204
  }
1193
1205
  const upstreamWId = meta && typeof meta === 'object' ? String(meta._upstream_w_id || '') : '';
1194
1206
  const contextWId = isEnquiryCount ? String(sourceId) : (upstreamWId || String(sourceId));
@@ -1208,8 +1220,8 @@ function buildSingleConditionDetail(condition, sourceId, meta = null) {
1208
1220
  selectType: '-1', id: customFieldId, source: contextWId, type: '3', value: valueId,
1209
1221
  config: {
1210
1222
  paramKey: paramKeyId, isMultCom: false, comType, parentComId: '0',
1211
- fieldInfo: { paramKey: paramKeyId, tablePrimaryKey: rawField ? 'ApprovalData' : 'FormData' },
1212
- tableName: rawField ? '流程数据' : '表单数据', paramType: shape.formulaType, parentName: contextDisplayName, multName: '', multKey: '',
1223
+ fieldInfo: { paramKey: paramKeyId, tablePrimaryKey: rawField ? String(rawField.tablePrimaryKey || rawField.contextGroup) : '' },
1224
+ tableName: rawField ? String(rawField.tableName || (String(rawField.tablePrimaryKey || rawField.contextGroup) === 'ApprovalData' ? '流程数据' : '表单数据')) : '', paramType: shape.formulaType, parentName: contextDisplayName, multName: '', multKey: '',
1213
1225
  multTypeObj: { allName: contextDisplayName, currentName: contextDisplayName, currentParamKey: valueId, allParamKey: valueId },
1214
1226
  comId: contextWId, newParentName: contextDisplayName,
1215
1227
  },
@@ -1341,7 +1353,7 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1341
1353
  const sourceMeta = contextMetaForReference(meta, bvVal, sourceComponent);
1342
1354
  let bvKey = String(bvVal.paramKey || bvVal.key || resolved.paramKey || '').trim();
1343
1355
  const isCustomTriggerSource = sourceComponent === 'CustomTrigger';
1344
- const basisContextRoot = resolvedContextRoot(resolved, sourceComponent, isCustomTriggerSource ? contextRootForComponent('CustomTrigger') : 'FormData');
1356
+ const basisContextRoot = resolvedContextRoot(resolved, sourceComponent);
1345
1357
  const basisTableName = String(resolved.tableName || contextTableNameForRoot(basisContextRoot));
1346
1358
  bvKey = protocolParamKey(isCustomTriggerSource ? normalizeContextParamKey(bvKey, 'CustomTrigger') : bvKey, basisContextRoot, sourceComponent);
1347
1359
  if (bvKey && !bvKey.includes('[]')) {