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.
Files changed (68) hide show
  1. package/dist/browser.d.ts +8 -0
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +8 -0
  4. package/dist/browser.js.map +1 -1
  5. package/dist/index.d.ts +9 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +9 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/native-compiler/compiler.d.ts +1 -1
  10. package/dist/native-compiler/compiler.d.ts.map +1 -1
  11. package/dist/native-compiler/compiler.js +99 -5
  12. package/dist/native-compiler/compiler.js.map +1 -1
  13. package/dist/native-compiler/index.cjs +6 -5
  14. package/dist/native-compiler/index.d.ts +10 -0
  15. package/dist/native-compiler/index.d.ts.map +1 -1
  16. package/dist/native-compiler/index.js +6 -5
  17. package/dist/native-compiler/role-membership-batch.d.ts +73 -0
  18. package/dist/native-compiler/role-membership-batch.d.ts.map +1 -0
  19. package/dist/native-compiler/role-membership-batch.js +91 -0
  20. package/dist/native-compiler/role-membership-batch.js.map +1 -0
  21. package/dist/native-compiler/workflow-assignment-routing.d.ts +121 -0
  22. package/dist/native-compiler/workflow-assignment-routing.d.ts.map +1 -0
  23. package/dist/native-compiler/workflow-assignment-routing.js +113 -0
  24. package/dist/native-compiler/workflow-assignment-routing.js.map +1 -0
  25. package/dist/native-compiler/workflow-automatic-cc.d.ts +20 -0
  26. package/dist/native-compiler/workflow-automatic-cc.d.ts.map +1 -0
  27. package/dist/native-compiler/workflow-automatic-cc.js +36 -0
  28. package/dist/native-compiler/workflow-automatic-cc.js.map +1 -0
  29. package/dist/native-compiler/workflow-business-step-identity.d.ts +12 -0
  30. package/dist/native-compiler/workflow-business-step-identity.d.ts.map +1 -0
  31. package/dist/native-compiler/workflow-business-step-identity.js +11 -0
  32. package/dist/native-compiler/workflow-business-step-identity.js.map +1 -0
  33. package/dist/native-compiler/workflow-business-step.d.ts +119 -0
  34. package/dist/native-compiler/workflow-business-step.d.ts.map +1 -0
  35. package/dist/native-compiler/workflow-business-step.js +357 -0
  36. package/dist/native-compiler/workflow-business-step.js.map +1 -0
  37. package/dist/native-compiler/workflow-delegation-administration.d.ts +1084 -0
  38. package/dist/native-compiler/workflow-delegation-administration.d.ts.map +1 -0
  39. package/dist/native-compiler/workflow-delegation-administration.js +68 -0
  40. package/dist/native-compiler/workflow-delegation-administration.js.map +1 -0
  41. package/dist/native-compiler/workflow-graph.d.ts +182 -0
  42. package/dist/native-compiler/workflow-graph.d.ts.map +1 -0
  43. package/dist/native-compiler/workflow-graph.js +201 -0
  44. package/dist/native-compiler/workflow-graph.js.map +1 -0
  45. package/dist/native-compiler/workflow-node-administration.d.ts +46 -0
  46. package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -0
  47. package/dist/native-compiler/workflow-node-administration.js +105 -0
  48. package/dist/native-compiler/workflow-node-administration.js.map +1 -0
  49. package/dist/native-compiler/workflow-task-page.d.ts +119 -0
  50. package/dist/native-compiler/workflow-task-page.d.ts.map +1 -0
  51. package/dist/native-compiler/workflow-task-page.js +225 -0
  52. package/dist/native-compiler/workflow-task-page.js.map +1 -0
  53. package/dist/native-version.d.ts +10 -0
  54. package/dist/native-version.d.ts.map +1 -1
  55. package/dist/native-version.js +10 -0
  56. package/dist/native-version.js.map +1 -1
  57. package/dist/native.d.ts +2 -0
  58. package/dist/native.d.ts.map +1 -1
  59. package/dist/native.js.map +1 -1
  60. package/dist/schemas.d.ts +4745 -1006
  61. package/dist/schemas.d.ts.map +1 -1
  62. package/dist/schemas.js +217 -0
  63. package/dist/schemas.js.map +1 -1
  64. package/dist/types.d.ts +218 -3
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js +13 -0
  67. package/dist/types.js.map +1 -1
  68. 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"}