openxiangda-devkit-core 2.63.0 → 2.63.3
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/application-services.d.ts +36 -8
- package/dist/application-services.d.ts.map +1 -1
- package/dist/application-services.js +12 -6
- package/dist/application-services.js.map +1 -1
- package/dist/backend-image-candidate.d.ts.map +1 -1
- package/dist/backend-image-candidate.js +5 -19
- package/dist/backend-image-candidate.js.map +1 -1
- package/dist/backend-image-inputs.d.ts +7 -0
- package/dist/backend-image-inputs.d.ts.map +1 -1
- package/dist/backend-image-inputs.js +25 -2
- package/dist/backend-image-inputs.js.map +1 -1
- package/dist/compiler/bundle.d.ts.map +1 -1
- package/dist/compiler/bundle.js +4 -1
- package/dist/compiler/bundle.js.map +1 -1
- package/dist/compiler/config.d.ts +1 -1
- package/dist/compiler/config.d.ts.map +1 -1
- package/dist/compiler/config.js +20 -2
- package/dist/compiler/config.js.map +1 -1
- package/dist/compiler/permission-review.d.ts.map +1 -1
- package/dist/documentation.d.ts +7 -3
- package/dist/documentation.d.ts.map +1 -1
- package/dist/documentation.js +1 -0
- package/dist/documentation.js.map +1 -1
- package/dist/internal/workflow.d.ts.map +1 -1
- package/dist/internal/workflow.js +9 -1
- package/dist/internal/workflow.js.map +1 -1
- package/dist/target-readiness.d.ts.map +1 -1
- package/dist/target-readiness.js +2 -1
- package/dist/target-readiness.js.map +1 -1
- package/dist/toolchain-capsule.d.ts +4 -5
- package/dist/toolchain-capsule.d.ts.map +1 -1
- package/dist/toolchain-capsule.js +19 -68
- package/dist/toolchain-capsule.js.map +1 -1
- package/dist/toolchain-facts.d.ts +40 -0
- package/dist/toolchain-facts.d.ts.map +1 -0
- package/dist/toolchain-facts.js +82 -0
- package/dist/toolchain-facts.js.map +1 -0
- package/dist/workspace-inputs.d.ts +13 -0
- package/dist/workspace-inputs.d.ts.map +1 -0
- package/dist/workspace-inputs.js +135 -0
- package/dist/workspace-inputs.js.map +1 -0
- package/package.json +5 -3
package/dist/compiler/config.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { workflowAssignmentLeafBinding, workflowAssignmentLeaves, workflowBindingRoleCodes, validateWorkflowConditionalAssignmentShape } from 'openxiangda-contracts';
|
|
1
2
|
import { compileApplicationAgentsV2, NativeApplicationAgentContractError } from 'openxiangda-contracts/native-compiler';
|
|
2
3
|
import { normalizeDataMutationGrants } from 'openxiangda-contracts';
|
|
3
4
|
import { parseNativeParentReadPolicy, validateNativeParentReadPolicies, NativeParentReadPolicyError, NativeDataPolicyExpressionV2Error } from 'openxiangda-contracts/native-compiler';
|
|
@@ -2531,6 +2532,20 @@ export function validateAppConfig(value) {
|
|
|
2531
2532
|
if (bindingByKey.has(key)) {
|
|
2532
2533
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_BINDING_DUPLICATE', `Workflow binding 重复: ${key}`, path));
|
|
2533
2534
|
}
|
|
2535
|
+
const declaredRoles = new Set((Array.isArray(authz.roles) ? authz.roles : []).map(item => string(object(item).code)));
|
|
2536
|
+
for (const [code, entry] of Object.entries(binding.bindings || {})) {
|
|
2537
|
+
if (entry.provider !== 'conditional')
|
|
2538
|
+
continue;
|
|
2539
|
+
const shape = validateWorkflowConditionalAssignmentShape(entry);
|
|
2540
|
+
for (const error of shape)
|
|
2541
|
+
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_BINDING_INVALID', error, `${path}.binding.bindings.${code}`));
|
|
2542
|
+
if (shape.length)
|
|
2543
|
+
continue;
|
|
2544
|
+
for (const leaf of workflowAssignmentLeaves(entry))
|
|
2545
|
+
for (const role of [...workflowBindingRoleCodes(leaf), ...Object.values(leaf.routing?.sources || {}).map(source => source.roleCode)])
|
|
2546
|
+
if (!declaredRoles.has(role))
|
|
2547
|
+
diagnostics.push(diagnostic('WORKFLOW_CONDITIONAL_ROLE_UNDECLARED', '条件人员来源引用了未声明的角色', `${path}.binding.bindings.${code}`));
|
|
2548
|
+
}
|
|
2534
2549
|
bindingByKey.set(key, binding);
|
|
2535
2550
|
});
|
|
2536
2551
|
const activationWorkflowCodes = new Set();
|
|
@@ -2575,6 +2590,8 @@ export function validateAppConfig(value) {
|
|
|
2575
2590
|
for (const error of validateWorkflowBinding(definition, binding)) {
|
|
2576
2591
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_BINDING_INVALID', error, path));
|
|
2577
2592
|
}
|
|
2593
|
+
if (Object.values(binding.bindings || {}).some(entry => entry.provider === 'conditional' && validateWorkflowConditionalAssignmentShape(entry).length))
|
|
2594
|
+
return;
|
|
2578
2595
|
try {
|
|
2579
2596
|
const resource = (Array.isArray(data.resources) ? data.resources : []).map(object).find(item => item.code === definition.subject.resourceCode);
|
|
2580
2597
|
const fields = object(resource?.schema).fields;
|
|
@@ -2595,7 +2612,7 @@ export function validateAppConfig(value) {
|
|
|
2595
2612
|
}
|
|
2596
2613
|
}
|
|
2597
2614
|
});
|
|
2598
|
-
for (const error of validateWorkflowAssignmentRoutingBindings(activeRoutingBindings))
|
|
2615
|
+
for (const error of validateWorkflowAssignmentRoutingBindings(activeRoutingBindings.map(workflowAssignmentLeafBinding)))
|
|
2599
2616
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_ROUTING_INVALID', error, 'workflows.activations'));
|
|
2600
2617
|
editableParameters.forEach((item, index) => {
|
|
2601
2618
|
const parameter = object(item);
|
|
@@ -5261,7 +5278,8 @@ export function defineOpenXiangdaApp(declaration) {
|
|
|
5261
5278
|
surfaces.mobile.defaultRouteCode = `user.${homeResourceCode}.records`;
|
|
5262
5279
|
}
|
|
5263
5280
|
}
|
|
5264
|
-
const declarationDiagnostics = validateAppDeclaration(normalizedDeclaration)
|
|
5281
|
+
const declarationDiagnostics = validateAppDeclaration(normalizedDeclaration)
|
|
5282
|
+
.filter(item => item.severity === 'error');
|
|
5265
5283
|
if (declarationDiagnostics.length > 0) {
|
|
5266
5284
|
throw new AppConfigValidationError(declarationDiagnostics);
|
|
5267
5285
|
}
|