openxiangda-contracts 2.34.0 → 2.43.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/browser.d.ts +8 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +8 -0
- package/dist/browser.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/native-compiler/compiler.d.ts +1 -1
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +99 -5
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/index.cjs +6 -5
- package/dist/native-compiler/index.d.ts +10 -0
- package/dist/native-compiler/index.d.ts.map +1 -1
- package/dist/native-compiler/index.js +6 -5
- package/dist/native-compiler/role-membership-batch.d.ts +73 -0
- package/dist/native-compiler/role-membership-batch.d.ts.map +1 -0
- package/dist/native-compiler/role-membership-batch.js +91 -0
- package/dist/native-compiler/role-membership-batch.js.map +1 -0
- package/dist/native-compiler/workflow-assignment-routing.d.ts +121 -0
- package/dist/native-compiler/workflow-assignment-routing.d.ts.map +1 -0
- package/dist/native-compiler/workflow-assignment-routing.js +113 -0
- package/dist/native-compiler/workflow-assignment-routing.js.map +1 -0
- package/dist/native-compiler/workflow-automatic-cc.d.ts +20 -0
- package/dist/native-compiler/workflow-automatic-cc.d.ts.map +1 -0
- package/dist/native-compiler/workflow-automatic-cc.js +36 -0
- package/dist/native-compiler/workflow-automatic-cc.js.map +1 -0
- package/dist/native-compiler/workflow-business-step-identity.d.ts +12 -0
- package/dist/native-compiler/workflow-business-step-identity.d.ts.map +1 -0
- package/dist/native-compiler/workflow-business-step-identity.js +11 -0
- package/dist/native-compiler/workflow-business-step-identity.js.map +1 -0
- package/dist/native-compiler/workflow-business-step.d.ts +119 -0
- package/dist/native-compiler/workflow-business-step.d.ts.map +1 -0
- package/dist/native-compiler/workflow-business-step.js +357 -0
- package/dist/native-compiler/workflow-business-step.js.map +1 -0
- package/dist/native-compiler/workflow-delegation-administration.d.ts +1084 -0
- package/dist/native-compiler/workflow-delegation-administration.d.ts.map +1 -0
- package/dist/native-compiler/workflow-delegation-administration.js +68 -0
- package/dist/native-compiler/workflow-delegation-administration.js.map +1 -0
- package/dist/native-compiler/workflow-graph.d.ts +182 -0
- package/dist/native-compiler/workflow-graph.d.ts.map +1 -0
- package/dist/native-compiler/workflow-graph.js +201 -0
- package/dist/native-compiler/workflow-graph.js.map +1 -0
- package/dist/native-compiler/workflow-node-administration.d.ts +46 -0
- package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -0
- package/dist/native-compiler/workflow-node-administration.js +105 -0
- package/dist/native-compiler/workflow-node-administration.js.map +1 -0
- package/dist/native-compiler/workflow-task-page.d.ts +119 -0
- package/dist/native-compiler/workflow-task-page.d.ts.map +1 -0
- package/dist/native-compiler/workflow-task-page.js +225 -0
- package/dist/native-compiler/workflow-task-page.js.map +1 -0
- package/dist/native-version.d.ts +10 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +10 -0
- package/dist/native-version.js.map +1 -1
- package/dist/native.d.ts +2 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/schemas.d.ts +4745 -1006
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +217 -0
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +218 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-delegation-administration.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-delegation-administration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export const WORKFLOW_DELEGATION_ADMINISTRATION_SCHEMA = 'openxiangda.workflow-delegation-administration/v2';
|
|
2
|
+
export const WORKFLOW_DELEGATION_MUTATION_SCHEMA = 'openxiangda.workflow-delegation-mutation/v2';
|
|
3
|
+
export const WORKFLOW_DELEGATION_PREVIEW_SCHEMA = 'openxiangda.workflow-delegation-preview/v2';
|
|
4
|
+
export const WORKFLOW_DELEGATION_RECEIPT_SCHEMA = 'openxiangda.workflow-delegation-receipt/v2';
|
|
5
|
+
const uuid = { type: 'string', format: 'uuid', pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$' };
|
|
6
|
+
const text = { type: 'string', minLength: 1, maxLength: 255 };
|
|
7
|
+
const date = { type: 'string', format: 'date-time' };
|
|
8
|
+
const positive = { type: 'integer', minimum: 1 };
|
|
9
|
+
const nullableDate = { anyOf: [date, { type: 'null' }] };
|
|
10
|
+
const nullableText = { anyOf: [text, { type: 'null' }] };
|
|
11
|
+
const subject = { type: 'string', pattern: '^membership:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$' };
|
|
12
|
+
const taskPolicy = { const: 'future-assignments-only' };
|
|
13
|
+
export const workflowDelegationAdministrationProperties = {
|
|
14
|
+
schemaVersion: { const: WORKFLOW_DELEGATION_ADMINISTRATION_SCHEMA }, id: uuid, appCode: text, environmentKey: text,
|
|
15
|
+
workflowCode: nullableText, delegatorUserId: text, delegateUserId: text,
|
|
16
|
+
delegatorRoleSubjectKey: subject, delegateRoleSubjectKey: subject, validFrom: date, validTo: date,
|
|
17
|
+
status: { enum: ['active', 'revoked', 'expired'] }, reason: { type: 'string', minLength: 1, maxLength: 4000 },
|
|
18
|
+
createdBy: text, createdAt: date, revokedAt: nullableDate, revision: positive, roleCode: text, roleName: text,
|
|
19
|
+
delegatorDisplayName: text, delegateDisplayName: text, delegatorRoleSubjectRevision: positive, delegateRoleSubjectRevision: positive,
|
|
20
|
+
effectiveState: { enum: ['active', 'scheduled', 'expired', 'revoked', 'ineligible'] }, evaluatedAt: date,
|
|
21
|
+
issues: { type: 'array', maxItems: 20, uniqueItems: true, items: text }, canRevoke: { type: 'boolean' },
|
|
22
|
+
revokedBy: nullableText, revokeReason: { type: ['string', 'null'], maxLength: 4000 }, taskPolicy,
|
|
23
|
+
};
|
|
24
|
+
const administrationShape = {
|
|
25
|
+
type: 'object', additionalProperties: false,
|
|
26
|
+
required: Object.keys(workflowDelegationAdministrationProperties), properties: workflowDelegationAdministrationProperties,
|
|
27
|
+
};
|
|
28
|
+
export const workflowDelegationAdministrationSchema = { $id: WORKFLOW_DELEGATION_ADMINISTRATION_SCHEMA, ...administrationShape };
|
|
29
|
+
const mutationBase = {
|
|
30
|
+
schemaVersion: { const: WORKFLOW_DELEGATION_MUTATION_SCHEMA }, operationId: uuid,
|
|
31
|
+
environmentKey: { enum: ['preproduction', 'production'] }, reason: { type: 'string', minLength: 1, maxLength: 2000, pattern: '\\S' },
|
|
32
|
+
};
|
|
33
|
+
const createProperties = {
|
|
34
|
+
...mutationBase, operation: { const: 'create' }, workflowCode: nullableText,
|
|
35
|
+
delegatorRoleSubjectKey: subject, expectedDelegatorRevision: positive,
|
|
36
|
+
delegateUserId: text, delegateRoleSubjectKey: subject, expectedDelegateRevision: positive, validFrom: date, validTo: date,
|
|
37
|
+
};
|
|
38
|
+
const revokeProperties = {
|
|
39
|
+
...mutationBase, operation: { const: 'revoke' }, delegationId: uuid, expectedRevision: positive,
|
|
40
|
+
};
|
|
41
|
+
export const workflowDelegationMutationRequestSchema = {
|
|
42
|
+
$id: WORKFLOW_DELEGATION_MUTATION_SCHEMA,
|
|
43
|
+
type: 'object',
|
|
44
|
+
oneOf: [
|
|
45
|
+
{ type: 'object', additionalProperties: false, required: Object.keys(createProperties), properties: createProperties },
|
|
46
|
+
{ type: 'object', additionalProperties: false, required: Object.keys(revokeProperties), properties: revokeProperties },
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
const digest = { type: 'string', pattern: '^[0-9a-f]{64}$' };
|
|
50
|
+
export const workflowDelegationMutationPreviewSchema = {
|
|
51
|
+
$id: WORKFLOW_DELEGATION_PREVIEW_SCHEMA, type: 'object', additionalProperties: false,
|
|
52
|
+
required: ['schemaVersion', 'operationId', 'operation', 'requestDigest', 'before', 'after', 'taskPolicy'],
|
|
53
|
+
properties: {
|
|
54
|
+
schemaVersion: { const: WORKFLOW_DELEGATION_PREVIEW_SCHEMA }, operationId: uuid, operation: { enum: ['create', 'revoke'] }, requestDigest: digest,
|
|
55
|
+
before: { anyOf: [administrationShape, { type: 'null' }] },
|
|
56
|
+
after: { ...administrationShape, properties: { ...workflowDelegationAdministrationProperties, id: { anyOf: [uuid, { type: 'null' }] } } }, taskPolicy,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export const workflowDelegationMutationReceiptSchema = {
|
|
60
|
+
$id: WORKFLOW_DELEGATION_RECEIPT_SCHEMA, type: 'object', additionalProperties: false,
|
|
61
|
+
required: ['schemaVersion', 'operationId', 'operation', 'requestDigest', 'actorUserId', 'appCode', 'environmentKey', 'committedAt', 'delegation', 'taskPolicy'],
|
|
62
|
+
properties: {
|
|
63
|
+
schemaVersion: { const: WORKFLOW_DELEGATION_RECEIPT_SCHEMA }, operationId: uuid, operation: { enum: ['create', 'revoke'] }, requestDigest: digest,
|
|
64
|
+
actorUserId: text, appCode: text, environmentKey: text, committedAt: date,
|
|
65
|
+
delegation: administrationShape, taskPolicy,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=workflow-delegation-administration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-delegation-administration.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-delegation-administration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/** Pure read projection. It never evaluates expressions, executes code or edits topology. */
|
|
2
|
+
import { type WorkflowBusinessStepInput } from './workflow-business-step.js';
|
|
3
|
+
export interface WorkflowReadability {
|
|
4
|
+
variables?: Record<string, {
|
|
5
|
+
label: string;
|
|
6
|
+
unit?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
}>;
|
|
9
|
+
logic?: Array<{
|
|
10
|
+
code: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
phase: 'submission' | 'node_input' | 'completion';
|
|
14
|
+
nodeId?: string;
|
|
15
|
+
inputPaths: string[];
|
|
16
|
+
outputPaths?: string[];
|
|
17
|
+
source?: {
|
|
18
|
+
path: string;
|
|
19
|
+
symbol?: string;
|
|
20
|
+
digest: string;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export type WorkflowGraphExpression = {
|
|
25
|
+
op: 'literal';
|
|
26
|
+
value: unknown;
|
|
27
|
+
} | {
|
|
28
|
+
op: 'path';
|
|
29
|
+
path: string;
|
|
30
|
+
} | {
|
|
31
|
+
op: 'and' | 'or';
|
|
32
|
+
values: WorkflowGraphExpression[];
|
|
33
|
+
} | {
|
|
34
|
+
op: 'not' | 'exists';
|
|
35
|
+
value: WorkflowGraphExpression;
|
|
36
|
+
} | {
|
|
37
|
+
op: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'contains';
|
|
38
|
+
left: WorkflowGraphExpression;
|
|
39
|
+
right: WorkflowGraphExpression;
|
|
40
|
+
};
|
|
41
|
+
export interface WorkflowGraphDefinitionSource {
|
|
42
|
+
code: string;
|
|
43
|
+
title: string;
|
|
44
|
+
startAt: string;
|
|
45
|
+
inputSchema: Record<string, unknown>;
|
|
46
|
+
subject?: {
|
|
47
|
+
resourceCode: string;
|
|
48
|
+
factProjection: Record<string, string>;
|
|
49
|
+
};
|
|
50
|
+
readability?: WorkflowReadability;
|
|
51
|
+
nodes: Record<string, {
|
|
52
|
+
id: string;
|
|
53
|
+
kind: string;
|
|
54
|
+
title?: string;
|
|
55
|
+
binding?: string;
|
|
56
|
+
mode?: string;
|
|
57
|
+
onApprove?: string;
|
|
58
|
+
onReject?: string;
|
|
59
|
+
branches?: Array<{
|
|
60
|
+
when: WorkflowGraphExpression;
|
|
61
|
+
target: string;
|
|
62
|
+
label?: string;
|
|
63
|
+
}>;
|
|
64
|
+
otherwise?: string;
|
|
65
|
+
next?: string;
|
|
66
|
+
emptyPolicy?: 'block' | 'skip';
|
|
67
|
+
notify?: boolean;
|
|
68
|
+
outcome?: string;
|
|
69
|
+
handler?: {
|
|
70
|
+
code: string;
|
|
71
|
+
version: number;
|
|
72
|
+
mode: 'pure' | 'reconciled-effect';
|
|
73
|
+
};
|
|
74
|
+
inputs?: Record<string, WorkflowBusinessStepInput>;
|
|
75
|
+
outputSchema?: Record<string, unknown>;
|
|
76
|
+
}>;
|
|
77
|
+
}
|
|
78
|
+
export interface WorkflowGraphVariable {
|
|
79
|
+
path: string;
|
|
80
|
+
label: string;
|
|
81
|
+
type: string;
|
|
82
|
+
unit?: string;
|
|
83
|
+
description?: string;
|
|
84
|
+
required: boolean;
|
|
85
|
+
source: {
|
|
86
|
+
kind: 'subject_field';
|
|
87
|
+
resourceCode: string;
|
|
88
|
+
fieldPath: string;
|
|
89
|
+
} | {
|
|
90
|
+
kind: 'step_output';
|
|
91
|
+
nodeId: string;
|
|
92
|
+
handlerCode: string;
|
|
93
|
+
handlerVersion: number;
|
|
94
|
+
} | {
|
|
95
|
+
kind: 'input' | 'unknown';
|
|
96
|
+
};
|
|
97
|
+
usedBy: string[];
|
|
98
|
+
}
|
|
99
|
+
export interface WorkflowGraphEdge {
|
|
100
|
+
id: string;
|
|
101
|
+
from: string;
|
|
102
|
+
to: string;
|
|
103
|
+
kind: 'approve' | 'reject' | 'branch' | 'default' | 'next';
|
|
104
|
+
label: string;
|
|
105
|
+
priority?: number;
|
|
106
|
+
expression?: WorkflowGraphExpression;
|
|
107
|
+
variablePaths: string[];
|
|
108
|
+
}
|
|
109
|
+
export interface WorkflowGraphProjection {
|
|
110
|
+
schemaVersion: 'openxiangda.workflow-graph/v2';
|
|
111
|
+
workflowCode: string;
|
|
112
|
+
definitionDigest: string;
|
|
113
|
+
startAt: string;
|
|
114
|
+
fixedTopology: true;
|
|
115
|
+
branchStrategy: 'first_match';
|
|
116
|
+
nodes: Array<{
|
|
117
|
+
id: string;
|
|
118
|
+
kind: string;
|
|
119
|
+
title: string;
|
|
120
|
+
binding?: string;
|
|
121
|
+
mode?: string;
|
|
122
|
+
outcome?: string;
|
|
123
|
+
emptyPolicy?: 'block' | 'skip';
|
|
124
|
+
notify?: boolean;
|
|
125
|
+
businessStep?: {
|
|
126
|
+
handler: NonNullable<WorkflowGraphDefinitionSource['nodes'][string]['handler']>;
|
|
127
|
+
inputs: Record<string, WorkflowBusinessStepInput>;
|
|
128
|
+
outputPaths: string[];
|
|
129
|
+
};
|
|
130
|
+
}>;
|
|
131
|
+
edges: WorkflowGraphEdge[];
|
|
132
|
+
variables: WorkflowGraphVariable[];
|
|
133
|
+
logic: NonNullable<WorkflowReadability['logic']>;
|
|
134
|
+
diagnostics: Array<{
|
|
135
|
+
code: string;
|
|
136
|
+
path: string;
|
|
137
|
+
}>;
|
|
138
|
+
}
|
|
139
|
+
export interface WorkflowGraphVisit {
|
|
140
|
+
id: string;
|
|
141
|
+
nodeId: string;
|
|
142
|
+
status: string;
|
|
143
|
+
enteredAt: string | null;
|
|
144
|
+
leftAt: string | null;
|
|
145
|
+
matchedBranch?: number;
|
|
146
|
+
target?: string;
|
|
147
|
+
/** Recorded terminal decision; chronological adjacency alone is not execution evidence. */
|
|
148
|
+
transition?: 'approve' | 'reject' | 'next';
|
|
149
|
+
skipped?: boolean;
|
|
150
|
+
notificationRequested?: boolean;
|
|
151
|
+
configuration?: Record<string, unknown>;
|
|
152
|
+
businessStep?: import('./workflow-business-step.js').WorkflowBusinessStepSummary;
|
|
153
|
+
people?: Array<{
|
|
154
|
+
userId: string | null;
|
|
155
|
+
displayName: string;
|
|
156
|
+
status?: string;
|
|
157
|
+
}>;
|
|
158
|
+
}
|
|
159
|
+
export interface WorkflowGraphReadResult {
|
|
160
|
+
schemaVersion: 'openxiangda.workflow-definition-projection/v2';
|
|
161
|
+
appCode: string;
|
|
162
|
+
workflowCode: string;
|
|
163
|
+
version: number;
|
|
164
|
+
definitionDigest: string;
|
|
165
|
+
graph: WorkflowGraphProjection;
|
|
166
|
+
}
|
|
167
|
+
export interface WorkflowInstanceGraphReadResult extends WorkflowGraphReadResult {
|
|
168
|
+
instanceId: string;
|
|
169
|
+
instanceSequence: number;
|
|
170
|
+
environmentKey: string;
|
|
171
|
+
status: string;
|
|
172
|
+
visits: WorkflowGraphVisit[];
|
|
173
|
+
}
|
|
174
|
+
/** Bounded traversal is also used by compiler diagnostics for untrusted declarations. */
|
|
175
|
+
export declare function workflowExpressionPaths(expression: unknown): {
|
|
176
|
+
paths: string[];
|
|
177
|
+
errors: string[];
|
|
178
|
+
};
|
|
179
|
+
export declare function validateWorkflowReadability(definition: WorkflowGraphDefinitionSource): string[];
|
|
180
|
+
export declare function projectWorkflowGraph(definition: WorkflowGraphDefinitionSource, definitionDigest: string): WorkflowGraphProjection;
|
|
181
|
+
export declare function formatWorkflowExpression(expression: WorkflowGraphExpression, variables?: readonly WorkflowGraphVariable[], depth?: number): string;
|
|
182
|
+
//# sourceMappingURL=workflow-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-graph.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/** Pure read projection. It never evaluates expressions, executes code or edits topology. */
|
|
2
|
+
import { workflowBusinessStepFactSchema } from './workflow-business-step.js';
|
|
3
|
+
const record = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
4
|
+
const text = (value, max) => typeof value === 'string' && Boolean(value.trim()) && value.length <= max;
|
|
5
|
+
const pathPattern = /^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*){0,15}$/;
|
|
6
|
+
const safePath = (path) => typeof path === 'string' && path.length <= 256 && pathPattern.test(path) &&
|
|
7
|
+
!path.split('.').some(part => ['__proto__', 'prototype', 'constructor'].includes(part));
|
|
8
|
+
function schemaPath(schema, path) {
|
|
9
|
+
let current = record(schema);
|
|
10
|
+
let required = true;
|
|
11
|
+
for (const segment of path.split('.')) {
|
|
12
|
+
required &&= Array.isArray(current.required) && current.required.includes(segment);
|
|
13
|
+
const next = record(current.properties)[segment];
|
|
14
|
+
if (!next || typeof next !== 'object')
|
|
15
|
+
return null;
|
|
16
|
+
current = record(next);
|
|
17
|
+
}
|
|
18
|
+
return { schema: current, required };
|
|
19
|
+
}
|
|
20
|
+
/** Bounded traversal is also used by compiler diagnostics for untrusted declarations. */
|
|
21
|
+
export function workflowExpressionPaths(expression) {
|
|
22
|
+
const paths = new Set();
|
|
23
|
+
const errors = [];
|
|
24
|
+
let budget = 2048;
|
|
25
|
+
const visit = (value, depth) => {
|
|
26
|
+
if (--budget < 0 || depth > 20) {
|
|
27
|
+
errors.push('WORKFLOW_EXPRESSION_BUDGET_EXCEEDED');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const item = record(value);
|
|
31
|
+
if (item.op === 'path') {
|
|
32
|
+
if (safePath(item.path))
|
|
33
|
+
paths.add(item.path);
|
|
34
|
+
else
|
|
35
|
+
errors.push('WORKFLOW_EXPRESSION_PATH_INVALID');
|
|
36
|
+
}
|
|
37
|
+
else if (item.op === 'literal')
|
|
38
|
+
return;
|
|
39
|
+
else if (item.op === 'and' || item.op === 'or') {
|
|
40
|
+
if (!Array.isArray(item.values) || !item.values.length || item.values.length > 128)
|
|
41
|
+
errors.push('WORKFLOW_EXPRESSION_GROUP_INVALID');
|
|
42
|
+
else
|
|
43
|
+
for (const part of item.values) {
|
|
44
|
+
if (budget < 0)
|
|
45
|
+
break;
|
|
46
|
+
visit(part, depth + 1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (item.op === 'not' || item.op === 'exists')
|
|
50
|
+
visit(item.value, depth + 1);
|
|
51
|
+
else if (['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'in', 'contains'].includes(String(item.op))) {
|
|
52
|
+
visit(item.left, depth + 1);
|
|
53
|
+
visit(item.right, depth + 1);
|
|
54
|
+
}
|
|
55
|
+
else
|
|
56
|
+
errors.push('WORKFLOW_EXPRESSION_OPERATOR_INVALID');
|
|
57
|
+
};
|
|
58
|
+
visit(expression, 0);
|
|
59
|
+
return { paths: [...paths], errors: [...new Set(errors)] };
|
|
60
|
+
}
|
|
61
|
+
export function validateWorkflowReadability(definition) {
|
|
62
|
+
if (definition?.readability === undefined)
|
|
63
|
+
return [];
|
|
64
|
+
const errors = [];
|
|
65
|
+
const factsSchema = workflowBusinessStepFactSchema(definition);
|
|
66
|
+
const info = record(definition.readability);
|
|
67
|
+
if (Object.keys(info).some(key => !['variables', 'logic'].includes(key)) || !Object.keys(info).length)
|
|
68
|
+
errors.push('WORKFLOW_READABILITY_INVALID');
|
|
69
|
+
const variables = record(info.variables);
|
|
70
|
+
if (info.variables !== undefined && (typeof info.variables !== 'object' || Array.isArray(info.variables) || info.variables === null))
|
|
71
|
+
errors.push('WORKFLOW_VARIABLES_INVALID');
|
|
72
|
+
if (Object.keys(variables).length > 128)
|
|
73
|
+
errors.push('WORKFLOW_VARIABLE_LIMIT_EXCEEDED');
|
|
74
|
+
for (const [path, value] of Object.entries(variables)) {
|
|
75
|
+
const variable = record(value);
|
|
76
|
+
if (!safePath(path) || !schemaPath(factsSchema, path))
|
|
77
|
+
errors.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${path}`);
|
|
78
|
+
if (!text(variable.label, 160) || Object.keys(variable).some(key => !['label', 'unit', 'description'].includes(key)) ||
|
|
79
|
+
variable.unit !== undefined && !text(variable.unit, 32) || variable.description !== undefined && !text(variable.description, 2000))
|
|
80
|
+
errors.push(`WORKFLOW_VARIABLE_METADATA_INVALID:${path}`);
|
|
81
|
+
}
|
|
82
|
+
const logic = info.logic === undefined ? [] : info.logic;
|
|
83
|
+
if (!Array.isArray(logic) || logic.length > 32)
|
|
84
|
+
errors.push('WORKFLOW_LOGIC_LIMIT_INVALID');
|
|
85
|
+
const codes = new Set();
|
|
86
|
+
for (const value of Array.isArray(logic) ? logic.slice(0, 32) : []) {
|
|
87
|
+
const item = record(value), code = String(item.code || '');
|
|
88
|
+
if (!/^[a-z][a-z0-9-]{2,63}$/.test(code) || codes.has(code) || !text(item.title, 160) || !text(item.description, 4000) ||
|
|
89
|
+
Object.keys(item).some(key => !['code', 'title', 'description', 'phase', 'nodeId', 'inputPaths', 'outputPaths', 'source'].includes(key)))
|
|
90
|
+
errors.push(`WORKFLOW_LOGIC_METADATA_INVALID:${code}`);
|
|
91
|
+
codes.add(code);
|
|
92
|
+
if (!['submission', 'node_input', 'completion'].includes(String(item.phase)) ||
|
|
93
|
+
item.phase === 'node_input' && !record(definition.nodes)[String(item.nodeId)] || item.phase !== 'node_input' && item.nodeId !== undefined)
|
|
94
|
+
errors.push(`WORKFLOW_LOGIC_ANCHOR_INVALID:${code}`);
|
|
95
|
+
for (const key of ['inputPaths', 'outputPaths']) {
|
|
96
|
+
const values = item[key];
|
|
97
|
+
if (key === 'outputPaths' && values === undefined)
|
|
98
|
+
continue;
|
|
99
|
+
if (!Array.isArray(values) || values.length > 32 || new Set(values).size !== values.length)
|
|
100
|
+
errors.push(`WORKFLOW_LOGIC_PATHS_INVALID:${code}:${key}`);
|
|
101
|
+
else
|
|
102
|
+
for (const path of values)
|
|
103
|
+
if (!safePath(path) || !schemaPath(factsSchema, path))
|
|
104
|
+
errors.push(`WORKFLOW_LOGIC_SOURCE_UNKNOWN:${code}:${String(path)}`);
|
|
105
|
+
}
|
|
106
|
+
if (item.source !== undefined) {
|
|
107
|
+
const source = record(item.source);
|
|
108
|
+
if (!text(source.path, 256) || String(source.path).startsWith('/') || String(source.path).includes('..') || String(source.path).includes('://') ||
|
|
109
|
+
!/^sha256:[a-f0-9]{64}$/.test(String(source.digest)) || source.symbol !== undefined && !text(source.symbol, 160) ||
|
|
110
|
+
Object.keys(source).some(key => !['path', 'symbol', 'digest'].includes(key)))
|
|
111
|
+
errors.push(`WORKFLOW_LOGIC_SOURCE_REFERENCE_INVALID:${code}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
for (const raw of Object.values(record(definition.nodes))) {
|
|
115
|
+
const node = record(raw);
|
|
116
|
+
const branches = Array.isArray(node.branches) ? node.branches : [];
|
|
117
|
+
for (const branch of branches) {
|
|
118
|
+
const expression = workflowExpressionPaths(branch.when);
|
|
119
|
+
errors.push(...expression.errors.map(error => `${error}:${node.id}`));
|
|
120
|
+
for (const path of expression.paths)
|
|
121
|
+
if (!schemaPath(factsSchema, path))
|
|
122
|
+
errors.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${node.id}:${path}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return [...new Set(errors)];
|
|
126
|
+
}
|
|
127
|
+
export function projectWorkflowGraph(definition, definitionDigest) {
|
|
128
|
+
const factsSchema = workflowBusinessStepFactSchema(definition);
|
|
129
|
+
const edges = [];
|
|
130
|
+
const used = new Map();
|
|
131
|
+
const diagnostics = [];
|
|
132
|
+
for (const node of Object.values(definition.nodes)) {
|
|
133
|
+
if (node.kind === 'approval') {
|
|
134
|
+
for (const [kind, target, label] of [['approve', node.onApprove, '同意'], ['reject', node.onReject, '拒绝']])
|
|
135
|
+
if (target)
|
|
136
|
+
edges.push({ id: `${node.id}:${kind}`, from: node.id, to: target, kind, label, variablePaths: [] });
|
|
137
|
+
}
|
|
138
|
+
if (node.kind === 'cc' && node.next)
|
|
139
|
+
edges.push({ id: `${node.id}:next`, from: node.id, to: node.next, kind: 'next', label: '抄送后继续', variablePaths: [] });
|
|
140
|
+
if (node.kind === 'action' && node.next) {
|
|
141
|
+
const paths = Object.values(node.inputs || {}).flatMap(input => input.source === 'fact' ? [input.path] : []);
|
|
142
|
+
for (const path of paths) {
|
|
143
|
+
if (!used.has(path))
|
|
144
|
+
used.set(path, new Set());
|
|
145
|
+
used.get(path).add(node.id);
|
|
146
|
+
}
|
|
147
|
+
edges.push({ id: `${node.id}:next`, from: node.id, to: node.next, kind: 'next', label: '成功回执后继续', variablePaths: paths });
|
|
148
|
+
}
|
|
149
|
+
if (node.kind === 'condition') {
|
|
150
|
+
for (const [index, branch] of (node.branches || []).entries()) {
|
|
151
|
+
const expression = workflowExpressionPaths(branch.when);
|
|
152
|
+
for (const path of expression.paths) {
|
|
153
|
+
if (!used.has(path))
|
|
154
|
+
used.set(path, new Set());
|
|
155
|
+
used.get(path).add(node.id);
|
|
156
|
+
}
|
|
157
|
+
edges.push({ id: `${node.id}:branch:${index}`, from: node.id, to: branch.target, kind: 'branch', label: branch.label || `条件 ${index + 1}`, priority: index + 1, expression: branch.when, variablePaths: expression.paths });
|
|
158
|
+
diagnostics.push(...expression.errors.map(code => ({ code, path: node.id })));
|
|
159
|
+
}
|
|
160
|
+
if (node.otherwise)
|
|
161
|
+
edges.push({ id: `${node.id}:default`, from: node.id, to: node.otherwise, kind: 'default', label: '均不满足时', variablePaths: [] });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const variablePaths = new Set([...used.keys(), ...Object.keys(definition.readability?.variables || {}), ...(definition.readability?.logic || []).flatMap(item => [...item.inputPaths, ...item.outputPaths || []])]);
|
|
165
|
+
const variables = [...variablePaths].slice(0, 128).map(path => {
|
|
166
|
+
const resolved = schemaPath(factsSchema, path), metadata = definition.readability?.variables?.[path];
|
|
167
|
+
const segments = path.split('.'), field = definition.subject?.factProjection[segments[0]];
|
|
168
|
+
const producer = segments[0] === 'steps' ? definition.nodes[segments[1]] : undefined;
|
|
169
|
+
if (!resolved)
|
|
170
|
+
diagnostics.push({ code: 'WORKFLOW_VARIABLE_SOURCE_UNKNOWN', path });
|
|
171
|
+
return { path, label: metadata?.label || String(resolved?.schema.title || path), type: String(resolved?.schema.type || 'unknown'),
|
|
172
|
+
...metadata, required: resolved?.required || false, usedBy: [...used.get(path) || []],
|
|
173
|
+
source: resolved && producer?.handler ? { kind: 'step_output', nodeId: producer.id, handlerCode: producer.handler.code, handlerVersion: producer.handler.version } : resolved && field && definition.subject ? { kind: 'subject_field', resourceCode: definition.subject.resourceCode, fieldPath: [field, ...segments.slice(1)].join('.') } : { kind: resolved ? 'input' : 'unknown' } };
|
|
174
|
+
});
|
|
175
|
+
return { schemaVersion: 'openxiangda.workflow-graph/v2', workflowCode: definition.code, definitionDigest, startAt: definition.startAt,
|
|
176
|
+
fixedTopology: true, branchStrategy: 'first_match', nodes: Object.values(definition.nodes).map(node => ({ id: node.id, kind: node.kind, title: node.title || node.id,
|
|
177
|
+
...(node.binding ? { binding: node.binding } : {}), ...(node.mode ? { mode: node.mode } : {}), ...(node.outcome ? { outcome: node.outcome } : {}),
|
|
178
|
+
...(node.kind === 'cc' ? { emptyPolicy: node.emptyPolicy, notify: node.notify !== false } : {}),
|
|
179
|
+
...(node.kind === 'action' && node.handler ? { businessStep: { handler: node.handler, inputs: node.inputs || {}, outputPaths: Object.keys(record(node.outputSchema).properties || {}).map(key => `steps.${node.id}.${key}`) } } : {}) })), edges, variables,
|
|
180
|
+
logic: definition.readability?.logic || [], diagnostics };
|
|
181
|
+
}
|
|
182
|
+
export function formatWorkflowExpression(expression, variables = [], depth = 0) {
|
|
183
|
+
if (!expression || depth > 20)
|
|
184
|
+
return '无法识别的条件';
|
|
185
|
+
if (expression.op === 'path')
|
|
186
|
+
return variables.find(variable => variable.path === expression.path)?.label || expression.path;
|
|
187
|
+
if (expression.op === 'literal')
|
|
188
|
+
return JSON.stringify(expression.value) ?? '缺值';
|
|
189
|
+
if (expression.op === 'and' || expression.op === 'or')
|
|
190
|
+
return expression.values.slice(0, 128).map(item => `(${formatWorkflowExpression(item, variables, depth + 1)})`).join(expression.op === 'and' ? ' 且 ' : ' 或 ');
|
|
191
|
+
if (expression.op === 'not' || expression.op === 'exists')
|
|
192
|
+
return `${expression.op === 'not' ? '不满足' : '存在'}(${formatWorkflowExpression(expression.value, variables, depth + 1)})`;
|
|
193
|
+
if (!('left' in expression))
|
|
194
|
+
return '无法识别的条件';
|
|
195
|
+
const labels = { eq: '=', neq: '≠', gt: '>', gte: '≥', lt: '<', lte: '≤', in: '属于', contains: '包含' };
|
|
196
|
+
const leftPath = expression.left.op === 'path' ? expression.left.path : undefined;
|
|
197
|
+
const unit = leftPath && expression.right.op === 'literal' && typeof expression.right.value === 'number'
|
|
198
|
+
? variables.find(variable => variable.path === leftPath)?.unit : undefined;
|
|
199
|
+
return `${formatWorkflowExpression(expression.left, variables, depth + 1)} ${labels[expression.op]} ${formatWorkflowExpression(expression.right, variables, depth + 1)}${unit ? ` ${unit}` : ''}`;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=workflow-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-graph.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { WorkflowApprovalAdministration, WorkflowConfigurableOperation, WorkflowNodeConfigurationPatch, WorkflowNodeOperationPolicy } from '../types.js';
|
|
2
|
+
export declare const WORKFLOW_CONFIGURABLE_OPERATIONS: readonly ["approve", "reject", "return", "transfer", "delegate", "add_assignee"];
|
|
3
|
+
export declare const WORKFLOW_CONFIGURABLE_PROVIDERS: readonly ["fixed_users", "app_role", "app_role_in_scope"];
|
|
4
|
+
type PolicyMap = Partial<Record<WorkflowConfigurableOperation, WorkflowNodeOperationPolicy>>;
|
|
5
|
+
export interface WorkflowAdministrationNodeSource {
|
|
6
|
+
kind: string;
|
|
7
|
+
mode?: string;
|
|
8
|
+
binding?: string;
|
|
9
|
+
allowedOperations?: string[];
|
|
10
|
+
operationPolicy?: PolicyMap;
|
|
11
|
+
administration?: WorkflowApprovalAdministration;
|
|
12
|
+
fieldPolicy?: {
|
|
13
|
+
default?: string;
|
|
14
|
+
fields?: Record<string, string>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
type BindingSource = {
|
|
18
|
+
provider: string;
|
|
19
|
+
scope?: {
|
|
20
|
+
dimension: string;
|
|
21
|
+
value?: string;
|
|
22
|
+
valueFrom?: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare function workflowNodeAllowedOperations(node: WorkflowAdministrationNodeSource): string[];
|
|
26
|
+
/** Pure shared rule used before compilation, activation and configuration writes. */
|
|
27
|
+
export declare function validateWorkflowAdministration(definition: {
|
|
28
|
+
nodes?: Record<string, WorkflowAdministrationNodeSource>;
|
|
29
|
+
}, bindings?: {
|
|
30
|
+
bindings: Record<string, BindingSource>;
|
|
31
|
+
}): string[];
|
|
32
|
+
export declare function validateWorkflowNodeConfigurationPatch(node: WorkflowAdministrationNodeSource | undefined, binding: BindingSource | undefined, input: unknown): string[];
|
|
33
|
+
/** Applies only validated fields; never mutates the immutable definition. */
|
|
34
|
+
export declare function projectWorkflowNodePolicy(node: WorkflowAdministrationNodeSource, patch?: WorkflowNodeConfigurationPatch | null): {
|
|
35
|
+
mode: string | undefined;
|
|
36
|
+
allowedOperations: string[];
|
|
37
|
+
operationPolicy: Partial<Record<WorkflowConfigurableOperation, WorkflowNodeOperationPolicy>>;
|
|
38
|
+
fieldPolicy: {
|
|
39
|
+
default: string;
|
|
40
|
+
fields: {
|
|
41
|
+
[x: string]: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=workflow-node-administration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-node-administration.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-node-administration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE9J,eAAO,MAAM,gCAAgC,kFAAmF,CAAC;AACjI,eAAO,MAAM,+BAA+B,2DAA4D,CAAC;AAEzG,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,CAAC,CAAC;AAC7F,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACrE;AACD,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAK7G,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM,EAAE,CAE9F;AAUD,qFAAqF;AACrF,wBAAgB,8BAA8B,CAAC,UAAU,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;CAAE,EAAE,QAAQ,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CA6BzL;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,gCAAgC,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAiBvK;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gCAAgC,EAAE,KAAK,CAAC,EAAE,8BAA8B,GAAG,IAAI;;;;;;;;;;EAa9H"}
|