openxiangda-contracts 2.83.0 → 2.84.0

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 (49) hide show
  1. package/dist/native-compiler/compiler.d.ts.map +1 -1
  2. package/dist/native-compiler/compiler.js +36 -9
  3. package/dist/native-compiler/compiler.js.map +1 -1
  4. package/dist/native-compiler/index.cjs +4 -4
  5. package/dist/native-compiler/index.js +4 -4
  6. package/dist/native-compiler/user-candidates.d.ts.map +1 -1
  7. package/dist/native-compiler/user-candidates.js +2 -1
  8. package/dist/native-compiler/user-candidates.js.map +1 -1
  9. package/dist/native-compiler/workflow-authoring.d.ts.map +1 -1
  10. package/dist/native-compiler/workflow-authoring.js +2 -0
  11. package/dist/native-compiler/workflow-authoring.js.map +1 -1
  12. package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts +662 -0
  13. package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts.map +1 -0
  14. package/dist/native-compiler/workflow-conditional-assignment-schema.js +21 -0
  15. package/dist/native-compiler/workflow-conditional-assignment-schema.js.map +1 -0
  16. package/dist/native-compiler/workflow-conditional-assignment.d.ts +14 -667
  17. package/dist/native-compiler/workflow-conditional-assignment.d.ts.map +1 -1
  18. package/dist/native-compiler/workflow-conditional-assignment.js +31 -19
  19. package/dist/native-compiler/workflow-conditional-assignment.js.map +1 -1
  20. package/dist/native-compiler/workflow-expression-schema.d.ts +29 -0
  21. package/dist/native-compiler/workflow-expression-schema.d.ts.map +1 -0
  22. package/dist/native-compiler/workflow-expression-schema.js +31 -0
  23. package/dist/native-compiler/workflow-expression-schema.js.map +1 -0
  24. package/dist/native-compiler/workflow-launch-preflight.d.ts.map +1 -1
  25. package/dist/native-compiler/workflow-launch-preflight.js +6 -1
  26. package/dist/native-compiler/workflow-launch-preflight.js.map +1 -1
  27. package/dist/native-compiler/workflow-schema.d.ts +909 -276
  28. package/dist/native-compiler/workflow-schema.d.ts.map +1 -1
  29. package/dist/native-compiler/workflow-schema.js +5 -98
  30. package/dist/native-compiler/workflow-schema.js.map +1 -1
  31. package/dist/native-compiler/workflow-source-sync.d.ts.map +1 -1
  32. package/dist/native-compiler/workflow-source-sync.js +5 -1
  33. package/dist/native-compiler/workflow-source-sync.js.map +1 -1
  34. package/dist/native-compiler/workflow-standard-binding-schema.d.ts +304 -0
  35. package/dist/native-compiler/workflow-standard-binding-schema.d.ts.map +1 -0
  36. package/dist/native-compiler/workflow-standard-binding-schema.js +75 -0
  37. package/dist/native-compiler/workflow-standard-binding-schema.js.map +1 -0
  38. package/dist/native-version.d.ts +1 -0
  39. package/dist/native-version.d.ts.map +1 -1
  40. package/dist/native-version.js +1 -0
  41. package/dist/native-version.js.map +1 -1
  42. package/dist/schemas.d.ts +897 -230
  43. package/dist/schemas.d.ts.map +1 -1
  44. package/dist/schemas.js +1 -0
  45. package/dist/schemas.js.map +1 -1
  46. package/dist/types.d.ts +6 -3
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js.map +1 -1
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { workflowAssignmentLeaves, workflowAssignmentLeafBinding, validateWorkflowConditionalAssignmentShape, validateWorkflowConditionalBindingDefinition } from './workflow-conditional-assignment.js';
2
+ import { workflowBindingRoleCodes } from './workflow-role-union.js';
1
3
  import { compileApplicationAgentsV2 } from './application-agent.js';
2
4
  import { validateWorkflowSupervisorChains, validateWorkflowSupervisorChainBinding } from './workflow-supervisor-chain.js';
3
5
  import { validateWorkflowReminders } from './workflow-reminders.js';
@@ -35,7 +37,7 @@ import { validateWorkflowTaskPages } from './workflow-task-page.js';
35
37
  import { requiresExtendedOwnedSubtableCapacity, requiresAggregateOwnedSubtableCapacity, dataOwnedRowLimit, isDataOwnedRowLimit } from './data-capacity.js';
36
38
  import { validateWorkflowBusinessSteps, compileWorkflowBusinessStepHandlers, validateWorkflowBusinessStepSubscriptions } from './workflow-business-step.js';
37
39
  import { validateWorkflowAssignmentRoutingBindings, validateWorkflowAssignmentRoutingPolicy } from './workflow-assignment-routing.js';
38
- import { requiresWorkflowRoleUnion, validateWorkflowRoleUnion, requiresWorkflowRoleInputSelection, validateWorkflowRoleInputSelection } from './workflow-role-union.js';
40
+ import { validateWorkflowRoleUnion, validateWorkflowRoleInputSelection } from './workflow-role-union.js';
39
41
  import { assertWorkflowOwnedSubjectCreate, assertWorkflowOwnedSubjectCreateResources } from './workflow-owned-subject.js';
40
42
  import * as crypto from 'crypto';
41
43
  import { OPENXIANGDA_COMPILER_CONTRACT_VERSION as OPENXIANGDA_V2_COMPILER_CONTRACT_VERSION, PLATFORM_CAPABILITY_CONTRACT_VERSIONS as OPENXIANGDA_V2_PLATFORM_CAPABILITY_CONTRACT_VERSIONS, } from '../native-version.js';
@@ -564,10 +566,10 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
564
566
  ...(config.data.resources.some((resource) => resource.schema.fields.some((field) => field.userCandidates !== undefined))
565
567
  ? [{ code: 'data.user-candidates', declaration: config.data.resources.filter((resource) => resource.schema.fields.some((field) => field.userCandidates !== undefined)) }]
566
568
  : []),
567
- ...(requiresWorkflowRoleInputSelection(config.workflows.bindings)
568
- ? [{ code: 'workflow.role-input-selection', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).some((entry) => entry.selectedInputPath !== undefined)) }] : []),
569
- ...(requiresWorkflowRoleUnion(config.workflows.bindings)
570
- ? [{ code: 'workflow.role-union', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).some((entry) => entry.roleCodes !== undefined)) }] : []),
569
+ ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.selectedInputPath !== undefined))
570
+ ? [{ code: 'workflow.role-input-selection', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.selectedInputPath !== undefined)) }] : []),
571
+ ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.roleCodes !== undefined))
572
+ ? [{ code: 'workflow.role-union', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.roleCodes !== undefined)) }] : []),
571
573
  ...(config.backend.operations.some((item) => item.platformAccess?.ownedSubject)
572
574
  ? [{ code: 'workflow.named-owned-create', declaration: config.backend.operations.filter((item) => item.platformAccess?.ownedSubject) }] : []),
573
575
  ...(requiresUserCandidateLaunchScope(config.data.resources)
@@ -643,7 +645,9 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
643
645
  ...(config.workflows.definitions.some((item) => Object.values(item.definition.nodes).some((node) => node.kind === 'approval' && node.emptyPolicy !== undefined))
644
646
  ? [{ code: 'workflow.approval-empty-policy', declaration: config.workflows.definitions.filter((item) => Object.values(item.definition.nodes).some((node) => node.kind === 'approval' && node.emptyPolicy !== undefined)) }]
645
647
  : []),
646
- ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).some((entry) => entry.provider === 'supervisor_chain')) ? [{ code: 'workflow.supervisor-chain', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).some((entry) => entry.provider === 'supervisor_chain')) }] : []),
648
+ ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).some((entry) => entry.provider === 'conditional'))
649
+ ? [{ code: 'workflow.conditional-assignment', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).some((entry) => entry.provider === 'conditional')) }] : []),
650
+ ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.provider === 'supervisor_chain')) ? [{ code: 'workflow.supervisor-chain', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.provider === 'supervisor_chain')) }] : []),
647
651
  ...(config.workflows.definitions.some((item) => Object.values(item.definition.nodes).some((node) => node.reminders)) ? [{ code: 'workflow.reminders', declaration: config.workflows.definitions.filter((item) => Object.values(item.definition.nodes).some((node) => node.reminders)) }] : []),
648
652
  ...(config.workflows.definitions.some((item) => Object.values(item.definition.nodes).some((node) => isWorkflowPlatformNotify(node)))
649
653
  ? [{ code: 'workflow.platform-notify', declaration: config.workflows.definitions.filter((item) => Object.values(item.definition.nodes).some((node) => isWorkflowPlatformNotify(node))) }] : []),
@@ -677,8 +681,8 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
677
681
  ...(config.workflows.definitions.some((item) => [...Object.values(item.definition.nodes), ...item.definition.authoring?.businessSteps || []].some((node) => node.handler?.dataTransaction))
678
682
  ? [{ code: 'workflow.step-data-transaction', declaration: config.workflows.definitions.filter((item) => [...Object.values(item.definition.nodes), ...item.definition.authoring?.businessSteps || []].some((node) => node.handler?.dataTransaction)) }]
679
683
  : []),
680
- ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).some((entry) => entry.routing !== undefined))
681
- ? [{ code: 'workflow.assignment-routing', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).some((entry) => entry.routing !== undefined)) }]
684
+ ...(config.workflows.bindings.some((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.routing !== undefined))
685
+ ? [{ code: 'workflow.assignment-routing', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).flatMap((entry) => workflowAssignmentLeaves(entry)).some(entry => entry.routing !== undefined)) }]
682
686
  : []),
683
687
  ...(usesBusinessProcess
684
688
  ? [
@@ -4736,6 +4740,20 @@ function validateWorkflowReferences(config) {
4736
4740
  validateWorkflowBinding(binding, `/config/workflows/bindings/${index}/binding`);
4737
4741
  bindingValues.set(key, binding);
4738
4742
  }
4743
+ // Conditional defaults must never hide undeclared roles in an unselected leaf.
4744
+ const conditionalRoleCodes = new Set(config.authz.roles.map((role) => role.code));
4745
+ for (const [index, item] of config.workflows.bindings.entries()) {
4746
+ for (const [key, entry] of Object.entries(item.binding.bindings)) {
4747
+ if (entry.provider !== 'conditional')
4748
+ continue;
4749
+ for (const leaf of workflowAssignmentLeaves(entry)) {
4750
+ const roles = [...workflowBindingRoleCodes(leaf), ...Object.values(leaf.routing?.sources || {}).map(source => source.roleCode)];
4751
+ for (const role of roles)
4752
+ if (!conditionalRoleCodes.has(role))
4753
+ fail('WORKFLOW_CONDITIONAL_ROLE_UNDECLARED', `/config/workflows/bindings/${index}/binding/bindings/${key}`);
4754
+ }
4755
+ }
4756
+ }
4739
4757
  const activationCodes = new Set();
4740
4758
  const activeBindings = new Map();
4741
4759
  for (const [index, raw] of config.workflows.activations.entries()) {
@@ -4791,7 +4809,7 @@ function validateWorkflowReferences(config) {
4791
4809
  }
4792
4810
  activeBindings.set(code, binding);
4793
4811
  }
4794
- const routingErrors = validateWorkflowAssignmentRoutingBindings([...activeBindings.values()]);
4812
+ const routingErrors = validateWorkflowAssignmentRoutingBindings([...activeBindings.values()].map(binding => workflowAssignmentLeafBinding(binding)));
4795
4813
  if (routingErrors.length)
4796
4814
  fail(routingErrors[0], '/config/workflows/activations');
4797
4815
  const providerCodes = new Set();
@@ -5147,6 +5165,12 @@ function validateWorkflowBinding(binding, pointer) {
5147
5165
  for (const [code, raw] of Object.entries(entries)) {
5148
5166
  workflowBindingCode(code, `${pointer}/bindings/${code}`);
5149
5167
  const entry = object(raw, `${pointer}/bindings/${code}`);
5168
+ if (entry.provider === 'conditional') {
5169
+ const errors = validateWorkflowConditionalAssignmentShape(entry);
5170
+ if (errors.length)
5171
+ fail(errors[0], `${pointer}/bindings/${code}`);
5172
+ continue;
5173
+ }
5150
5174
  const chainErrors = validateWorkflowSupervisorChainBinding(entry);
5151
5175
  if (chainErrors.length)
5152
5176
  fail(chainErrors[0], `${pointer}/bindings/${code}`);
@@ -5198,6 +5222,9 @@ function validateWorkflowBinding(binding, pointer) {
5198
5222
  }
5199
5223
  }
5200
5224
  function validateWorkflowDefinitionBinding(definition, binding, pointer) {
5225
+ const conditionalErrors = validateWorkflowConditionalBindingDefinition(definition, binding);
5226
+ if (conditionalErrors.length)
5227
+ fail(conditionalErrors[0], pointer);
5201
5228
  const chainErrors = validateWorkflowSupervisorChains(definition, binding);
5202
5229
  if (chainErrors.length)
5203
5230
  fail(chainErrors[0], pointer);