openxiangda-contracts 2.83.0 → 2.85.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.
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +37 -10
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/index.cjs +4 -4
- package/dist/native-compiler/index.js +4 -4
- package/dist/native-compiler/user-candidates.d.ts.map +1 -1
- package/dist/native-compiler/user-candidates.js +2 -1
- package/dist/native-compiler/user-candidates.js.map +1 -1
- package/dist/native-compiler/workflow-authoring.d.ts.map +1 -1
- package/dist/native-compiler/workflow-authoring.js +2 -0
- package/dist/native-compiler/workflow-authoring.js.map +1 -1
- package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts +662 -0
- package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts.map +1 -0
- package/dist/native-compiler/workflow-conditional-assignment-schema.js +21 -0
- package/dist/native-compiler/workflow-conditional-assignment-schema.js.map +1 -0
- package/dist/native-compiler/workflow-conditional-assignment.d.ts +14 -667
- package/dist/native-compiler/workflow-conditional-assignment.d.ts.map +1 -1
- package/dist/native-compiler/workflow-conditional-assignment.js +31 -19
- package/dist/native-compiler/workflow-conditional-assignment.js.map +1 -1
- package/dist/native-compiler/workflow-expression-schema.d.ts +29 -0
- package/dist/native-compiler/workflow-expression-schema.d.ts.map +1 -0
- package/dist/native-compiler/workflow-expression-schema.js +31 -0
- package/dist/native-compiler/workflow-expression-schema.js.map +1 -0
- package/dist/native-compiler/workflow-launch-preflight.d.ts.map +1 -1
- package/dist/native-compiler/workflow-launch-preflight.js +6 -1
- package/dist/native-compiler/workflow-launch-preflight.js.map +1 -1
- package/dist/native-compiler/workflow-node-administration.d.ts +4 -1
- package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -1
- package/dist/native-compiler/workflow-node-administration.js +45 -14
- package/dist/native-compiler/workflow-node-administration.js.map +1 -1
- package/dist/native-compiler/workflow-schema.d.ts +909 -276
- package/dist/native-compiler/workflow-schema.d.ts.map +1 -1
- package/dist/native-compiler/workflow-schema.js +5 -98
- package/dist/native-compiler/workflow-schema.js.map +1 -1
- package/dist/native-compiler/workflow-source-sync.d.ts.map +1 -1
- package/dist/native-compiler/workflow-source-sync.js +5 -1
- package/dist/native-compiler/workflow-source-sync.js.map +1 -1
- package/dist/native-compiler/workflow-standard-binding-schema.d.ts +304 -0
- package/dist/native-compiler/workflow-standard-binding-schema.d.ts.map +1 -0
- package/dist/native-compiler/workflow-standard-binding-schema.js +75 -0
- package/dist/native-compiler/workflow-standard-binding-schema.js.map +1 -0
- package/dist/native-version.d.ts +1 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +1 -0
- package/dist/native-version.js.map +1 -1
- package/dist/schemas.d.ts +897 -230
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -0
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +7 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"AA+CA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AA2BrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAiF3E,OAAO,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAE9K,OAAO,EAAE,2BAA2B,EAAE,wCAAwC,EAAE,mCAAmC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE1N,eAAO,MAAM,mBAAmB,6HAItB,CAAC;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,UAAU;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,uBAAuB,EAAE,OAAO,yBAAyB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,6BAA6B,CAAC;QACrC,IAAI,EAAE,6BAA6B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;QACtC,SAAS,EAAE,6BAA6B,CAAC;QACzC,OAAO,EAAE,6BAA6B,CAAC;QACvC,SAAS,EAAE,6BAA6B,CAAC;KAC1C,CAAC;IACF,4BAA4B,EAAE,uCAAuC,EAAE,CAAC;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAY5C;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,gCAAgC,GACtC,iCAAiC,CA2JnC;AAaD,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,GACjB,uCAAuC,EAAE,CAqhB3C;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;CAChC,GAAG,wBAAwB,EAAE,CAgK7B"}
|
|
@@ -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 {
|
|
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
|
-
...(
|
|
568
|
-
? [{ code: 'workflow.role-input-selection', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).
|
|
569
|
-
...(
|
|
570
|
-
? [{ code: 'workflow.role-union', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).
|
|
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 === '
|
|
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).
|
|
681
|
-
? [{ code: 'workflow.assignment-routing', declaration: config.workflows.bindings.filter((item) => Object.values(item.binding.bindings).
|
|
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
|
? [
|
|
@@ -1117,7 +1121,7 @@ function compileExpectedContract(config, configDigest, generatorVersion) {
|
|
|
1117
1121
|
fail('NATIVE_EVENT_TYPE_NOT_REGISTERED', `${pointer}/eventTypes/${eventIndex}`, { eventType });
|
|
1118
1122
|
}
|
|
1119
1123
|
});
|
|
1120
|
-
const nativeAction = compileNativeEventAction(subscription, config.data.resources, pointer, { emitEventTypes: eventSchemas.map((schema) => String(schema.eventType)), workflowResources: config.workflows.
|
|
1124
|
+
const nativeAction = compileNativeEventAction(subscription, config.data.resources, pointer, { emitEventTypes: eventSchemas.map((schema) => String(schema.eventType)), workflowResources: config.workflows.definitions.map((entry) => String(entry.definition?.subject?.resourceCode || '')) });
|
|
1121
1125
|
const delivery = validateEventDeliveryPolicy(subscription.delivery, eventTypes, `${pointer}/delivery`);
|
|
1122
1126
|
const platformAccess = validateEventSubscriptionPlatformAccess(subscription.platformAccess, `${pointer}/platformAccess`, eventResourceFields, config, subscription);
|
|
1123
1127
|
return {
|
|
@@ -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);
|