openxiangda-contracts 2.77.0 → 2.79.1

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 (136) hide show
  1. package/dist/ai.d.ts +31 -0
  2. package/dist/ai.d.ts.map +1 -1
  3. package/dist/ai.js +14 -0
  4. package/dist/ai.js.map +1 -1
  5. package/dist/browser.d.ts +11 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +10 -0
  8. package/dist/browser.js.map +1 -1
  9. package/dist/cli.d.ts +5 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/data-field-validation.js +26 -23
  12. package/dist/data-field-validation.js.map +1 -1
  13. package/dist/index.d.ts +13 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +13 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/native-compiler/address-value.d.ts +13 -0
  18. package/dist/native-compiler/address-value.d.ts.map +1 -0
  19. package/dist/native-compiler/address-value.js +70 -0
  20. package/dist/native-compiler/address-value.js.map +1 -0
  21. package/dist/native-compiler/cascade-value.d.ts +6 -0
  22. package/dist/native-compiler/cascade-value.d.ts.map +1 -0
  23. package/dist/native-compiler/cascade-value.js +47 -0
  24. package/dist/native-compiler/cascade-value.js.map +1 -0
  25. package/dist/native-compiler/compiler.d.ts +1 -1
  26. package/dist/native-compiler/compiler.d.ts.map +1 -1
  27. package/dist/native-compiler/compiler.js +99 -54
  28. package/dist/native-compiler/compiler.js.map +1 -1
  29. package/dist/native-compiler/data-field.d.ts +3 -0
  30. package/dist/native-compiler/data-field.d.ts.map +1 -1
  31. package/dist/native-compiler/data-field.js +10 -2
  32. package/dist/native-compiler/data-field.js.map +1 -1
  33. package/dist/native-compiler/index.cjs +6 -6
  34. package/dist/native-compiler/index.d.ts +12 -0
  35. package/dist/native-compiler/index.d.ts.map +1 -1
  36. package/dist/native-compiler/index.js +6 -6
  37. package/dist/native-compiler/resource-query.d.ts +21 -0
  38. package/dist/native-compiler/resource-query.d.ts.map +1 -0
  39. package/dist/native-compiler/resource-query.js +154 -0
  40. package/dist/native-compiler/resource-query.js.map +1 -0
  41. package/dist/native-compiler/service-mutations.d.ts +13 -0
  42. package/dist/native-compiler/service-mutations.d.ts.map +1 -0
  43. package/dist/native-compiler/service-mutations.js +25 -0
  44. package/dist/native-compiler/service-mutations.js.map +1 -0
  45. package/dist/native-compiler/workflow-approval-empty.d.ts +1 -1
  46. package/dist/native-compiler/workflow-approval-empty.d.ts.map +1 -1
  47. package/dist/native-compiler/workflow-approval-empty.js +1 -1
  48. package/dist/native-compiler/workflow-approval-empty.js.map +1 -1
  49. package/dist/native-compiler/workflow-business-command.d.ts +10 -0
  50. package/dist/native-compiler/workflow-business-command.d.ts.map +1 -1
  51. package/dist/native-compiler/workflow-business-command.js +6 -0
  52. package/dist/native-compiler/workflow-business-command.js.map +1 -1
  53. package/dist/native-compiler/workflow-business-step.d.ts +8 -2
  54. package/dist/native-compiler/workflow-business-step.d.ts.map +1 -1
  55. package/dist/native-compiler/workflow-business-step.js +10 -5
  56. package/dist/native-compiler/workflow-business-step.js.map +1 -1
  57. package/dist/native-compiler/workflow-completion-deadline.d.ts +1 -0
  58. package/dist/native-compiler/workflow-completion-deadline.d.ts.map +1 -1
  59. package/dist/native-compiler/workflow-completion-deadline.js +1 -1
  60. package/dist/native-compiler/workflow-completion-deadline.js.map +1 -1
  61. package/dist/native-compiler/workflow-correction.d.ts +1 -0
  62. package/dist/native-compiler/workflow-correction.d.ts.map +1 -1
  63. package/dist/native-compiler/workflow-correction.js +5 -4
  64. package/dist/native-compiler/workflow-correction.js.map +1 -1
  65. package/dist/native-compiler/workflow-designer.d.ts +127 -0
  66. package/dist/native-compiler/workflow-designer.d.ts.map +1 -0
  67. package/dist/native-compiler/workflow-designer.js +397 -0
  68. package/dist/native-compiler/workflow-designer.js.map +1 -0
  69. package/dist/native-compiler/workflow-events.d.ts +8 -0
  70. package/dist/native-compiler/workflow-events.d.ts.map +1 -0
  71. package/dist/native-compiler/workflow-events.js +53 -0
  72. package/dist/native-compiler/workflow-events.js.map +1 -0
  73. package/dist/native-compiler/workflow-graph.d.ts +16 -1
  74. package/dist/native-compiler/workflow-graph.d.ts.map +1 -1
  75. package/dist/native-compiler/workflow-graph.js +27 -5
  76. package/dist/native-compiler/workflow-graph.js.map +1 -1
  77. package/dist/native-compiler/workflow-handle.d.ts +4 -0
  78. package/dist/native-compiler/workflow-handle.d.ts.map +1 -0
  79. package/dist/native-compiler/workflow-handle.js +20 -0
  80. package/dist/native-compiler/workflow-handle.js.map +1 -0
  81. package/dist/native-compiler/workflow-initiator-approval.d.ts +1 -0
  82. package/dist/native-compiler/workflow-initiator-approval.d.ts.map +1 -1
  83. package/dist/native-compiler/workflow-initiator-approval.js +1 -1
  84. package/dist/native-compiler/workflow-initiator-approval.js.map +1 -1
  85. package/dist/native-compiler/workflow-node-administration.d.ts +12 -1
  86. package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -1
  87. package/dist/native-compiler/workflow-node-administration.js +66 -14
  88. package/dist/native-compiler/workflow-node-administration.js.map +1 -1
  89. package/dist/native-compiler/workflow-parallel.d.ts +69 -0
  90. package/dist/native-compiler/workflow-parallel.d.ts.map +1 -0
  91. package/dist/native-compiler/workflow-parallel.js +178 -0
  92. package/dist/native-compiler/workflow-parallel.js.map +1 -0
  93. package/dist/native-compiler/workflow-platform-notify.d.ts +41 -0
  94. package/dist/native-compiler/workflow-platform-notify.d.ts.map +1 -0
  95. package/dist/native-compiler/workflow-platform-notify.js +49 -0
  96. package/dist/native-compiler/workflow-platform-notify.js.map +1 -0
  97. package/dist/native-compiler/workflow-reminders.d.ts +11 -0
  98. package/dist/native-compiler/workflow-reminders.d.ts.map +1 -0
  99. package/dist/native-compiler/workflow-reminders.js +12 -0
  100. package/dist/native-compiler/workflow-reminders.js.map +1 -0
  101. package/dist/native-compiler/workflow-return-policy.d.ts +20 -0
  102. package/dist/native-compiler/workflow-return-policy.d.ts.map +1 -0
  103. package/dist/native-compiler/workflow-return-policy.js +37 -0
  104. package/dist/native-compiler/workflow-return-policy.js.map +1 -0
  105. package/dist/native-compiler/workflow-role-union.d.ts +5 -1
  106. package/dist/native-compiler/workflow-role-union.d.ts.map +1 -1
  107. package/dist/native-compiler/workflow-role-union.js +1 -1
  108. package/dist/native-compiler/workflow-role-union.js.map +1 -1
  109. package/dist/native-compiler/workflow-source-sync.d.ts +109 -0
  110. package/dist/native-compiler/workflow-source-sync.d.ts.map +1 -0
  111. package/dist/native-compiler/workflow-source-sync.js +120 -0
  112. package/dist/native-compiler/workflow-source-sync.js.map +1 -0
  113. package/dist/native-compiler/workflow-supervisor-chain.d.ts +16 -0
  114. package/dist/native-compiler/workflow-supervisor-chain.d.ts.map +1 -0
  115. package/dist/native-compiler/workflow-supervisor-chain.js +44 -0
  116. package/dist/native-compiler/workflow-supervisor-chain.js.map +1 -0
  117. package/dist/native-compiler/workflow-task-page.js +1 -1
  118. package/dist/native-compiler/workflow-task-page.js.map +1 -1
  119. package/dist/native-version.d.ts +7 -0
  120. package/dist/native-version.d.ts.map +1 -1
  121. package/dist/native-version.js +7 -0
  122. package/dist/native-version.js.map +1 -1
  123. package/dist/native.d.ts +12 -0
  124. package/dist/native.d.ts.map +1 -1
  125. package/dist/native.js.map +1 -1
  126. package/dist/references.d.ts +4 -0
  127. package/dist/references.d.ts.map +1 -1
  128. package/dist/schemas.d.ts +1266 -10
  129. package/dist/schemas.d.ts.map +1 -1
  130. package/dist/schemas.js +83 -8
  131. package/dist/schemas.js.map +1 -1
  132. package/dist/types.d.ts +54 -12
  133. package/dist/types.d.ts.map +1 -1
  134. package/dist/types.js +1 -40
  135. package/dist/types.js.map +1 -1
  136. package/package.json +1 -1
@@ -0,0 +1,12 @@
1
+ export function validateWorkflowReminders(definition) {
2
+ const errors = [];
3
+ for (const [id, node] of Object.entries(definition?.nodes || {})) {
4
+ if (node?.reminders === undefined)
5
+ continue;
6
+ const rule = node.reminders;
7
+ if (!['approval', 'handle', 'correction'].includes(node.kind) || !rule || typeof rule !== 'object' || Array.isArray(rule) || Object.keys(rule).length !== 4 || Object.keys(rule).some(key => !['afterSeconds', 'everySeconds', 'max', 'to'].includes(key)) || !Number.isInteger(rule.afterSeconds) || rule.afterSeconds < 1 || rule.afterSeconds > 2592000 || !Number.isInteger(rule.everySeconds) || rule.everySeconds < 1 || rule.everySeconds > 2592000 || !Number.isInteger(rule.max) || rule.max < 1 || rule.max > 10 || !Array.isArray(rule.to) || rule.to.length !== 1 || rule.to[0] !== 'handlers')
8
+ errors.push(`WORKFLOW_REMINDERS_INVALID:${id}`);
9
+ }
10
+ return errors;
11
+ }
12
+ //# sourceMappingURL=workflow-reminders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-reminders.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-reminders.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,UAA2C;IACnF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,EAAE,EAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,IAAI,CAAC,CAAC,UAAU,EAAC,QAAQ,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAC,cAAc,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IACznB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export type WorkflowReturnRoute = 'replay' | 'resume';
2
+ export interface WorkflowReturnTargetPolicy {
3
+ nodeId: string;
4
+ routes: WorkflowReturnRoute[];
5
+ defaultRoute: WorkflowReturnRoute;
6
+ }
7
+ export interface WorkflowReturnPolicy {
8
+ targets: WorkflowReturnTargetPolicy[];
9
+ }
10
+ export declare function workflowReturnTargets(node: {
11
+ returnPolicy?: WorkflowReturnPolicy;
12
+ returnTargets?: readonly string[];
13
+ }): string[];
14
+ export declare function workflowReturnTargetPolicy(definition: {
15
+ nodes: Record<string, any>;
16
+ }, node: any, targetId: string): WorkflowReturnTargetPolicy | undefined;
17
+ export declare function validateWorkflowReturnPolicies(definition: {
18
+ nodes?: Record<string, any>;
19
+ }): string[];
20
+ //# sourceMappingURL=workflow-return-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-return-policy.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-return-policy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACtD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,YAAY,EAAE,mBAAmB,CAAC;CACnC;AACD,MAAM,WAAW,oBAAoB;IAAG,OAAO,EAAE,0BAA0B,EAAE,CAAA;CAAE;AAE/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAAE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAGhI;AACD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAI1J;AACD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CAepG"}
@@ -0,0 +1,37 @@
1
+ export function workflowReturnTargets(node) {
2
+ if (node.returnPolicy)
3
+ return Array.isArray(node.returnPolicy.targets) ? node.returnPolicy.targets.filter(target => typeof target?.nodeId === 'string').map(target => target.nodeId) : [];
4
+ return Array.isArray(node.returnTargets) ? [...node.returnTargets] : [];
5
+ }
6
+ export function workflowReturnTargetPolicy(definition, node, targetId) {
7
+ if (node.returnPolicy)
8
+ return Array.isArray(node.returnPolicy.targets) ? node.returnPolicy.targets.find((target) => target.nodeId === targetId) : undefined;
9
+ if (!node.returnTargets?.includes(targetId))
10
+ return undefined;
11
+ return { nodeId: targetId, routes: definition.nodes[targetId]?.kind === 'correction' ? ['replay'] : ['replay', 'resume'], defaultRoute: 'replay' };
12
+ }
13
+ export function validateWorkflowReturnPolicies(definition) {
14
+ const errors = [];
15
+ for (const [id, node] of Object.entries(definition?.nodes || {})) {
16
+ const policy = node?.returnPolicy;
17
+ if (policy === undefined)
18
+ continue;
19
+ if (!['approval', 'handle'].includes(node.kind) || !policy || typeof policy !== 'object' || Array.isArray(policy) || Object.keys(policy).some(key => key !== 'targets') || !Array.isArray(policy.targets) || policy.targets.length > 20) {
20
+ errors.push(`WORKFLOW_RETURN_POLICY_INVALID:${id}`);
21
+ continue;
22
+ }
23
+ const ids = new Set();
24
+ for (const target of policy.targets) {
25
+ if (!target || typeof target !== 'object' || Object.keys(target).some(key => !['nodeId', 'routes', 'defaultRoute'].includes(key)) || typeof target.nodeId !== 'string' || target.nodeId === id || ids.has(target.nodeId) || !['approval', 'handle', 'correction'].includes(definition.nodes?.[target.nodeId]?.kind))
26
+ errors.push(`WORKFLOW_RETURN_TARGET_INVALID:${id}`);
27
+ if (target?.nodeId)
28
+ ids.add(target.nodeId);
29
+ if (!Array.isArray(target?.routes) || target.routes.length < 1 || target.routes.length > 2 || new Set(target.routes).size !== target.routes.length || target.routes.some((route) => !['replay', 'resume'].includes(route)) || !target.routes.includes(target.defaultRoute))
30
+ errors.push(`WORKFLOW_RETURN_ROUTES_INVALID:${id}`);
31
+ }
32
+ if (node.returnTargets && (node.returnTargets.length !== ids.size || node.returnTargets.some((target) => !ids.has(target))))
33
+ errors.push(`WORKFLOW_RETURN_TARGETS_CONFLICT:${id}`);
34
+ }
35
+ return errors;
36
+ }
37
+ //# sourceMappingURL=workflow-return-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-return-policy.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-return-policy.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CAAC,IAAgF;IACpH,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1L,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AACD,MAAM,UAAU,0BAA0B,CAAC,UAA0C,EAAE,IAAS,EAAE,QAAgB;IAChH,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAkC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxL,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACpJ,CAAC;AACD,MAAM,UAAU,8BAA8B,CAAC,UAA2C;IACxF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,EAAE,YAAY,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,IAAI,CAAC,CAAC,UAAU,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1S,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAC,QAAQ,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;YACrW,IAAI,MAAM,EAAE,MAAM;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;QACpV,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;IAC7L,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -15,13 +15,17 @@ type Source = {
15
15
  provider?: string;
16
16
  roleCode?: string;
17
17
  roleCodes?: string[];
18
+ until?: string | {
19
+ level?: number;
20
+ roleCode?: string;
21
+ };
18
22
  candidateField?: string;
19
23
  scope?: unknown;
20
24
  };
21
25
  /** Validate even unused entries so an invalid source cannot become a later task. */
22
26
  export declare function validateWorkflowRoleUnion(entry: Source): string[];
23
27
  /** Call after validation; order also declares the primary duty for overlapping users. */
24
- export declare function workflowBindingRoleCodes(entry: Pick<Source, 'roleCode' | 'roleCodes'>): string[];
28
+ export declare function workflowBindingRoleCodes(entry: Pick<Source, 'roleCode' | 'roleCodes' | 'until'>): string[];
25
29
  export declare function requiresWorkflowRoleUnion(bindings: Array<{
26
30
  binding: {
27
31
  bindings: Record<string, Source>;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-role-union.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-role-union.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,uBAAuB;;;;;;;;;;CAG1B,CAAC;AAEX,KAAK,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvH,oFAAoF;AACpF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBjE;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,MAAM,EAAE,CAEhG;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,OAAO,CAErH;AAGD,sFAAsF;AACtF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAUjO;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,OAAO,CAEvJ"}
1
+ {"version":3,"file":"workflow-role-union.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-role-union.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,uBAAuB;;;;;;;;;;CAG1B,CAAC;AAEX,KAAK,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAA,QAAQ,CAAC,EAAC,MAAM,CAAA;KAAC,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1K,oFAAoF;AACpF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBjE;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,GAAG,MAAM,EAAE,CAE1G;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,OAAO,CAErH;AAGD,sFAAsF;AACtF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAUjO;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,OAAO,CAEvJ"}
@@ -30,7 +30,7 @@ export function validateWorkflowRoleUnion(entry) {
30
30
  }
31
31
  /** Call after validation; order also declares the primary duty for overlapping users. */
32
32
  export function workflowBindingRoleCodes(entry) {
33
- return entry.roleCodes ? [...entry.roleCodes] : entry.roleCode ? [entry.roleCode] : [];
33
+ return entry.roleCodes ? [...entry.roleCodes] : entry.roleCode ? [entry.roleCode] : typeof entry.until === 'object' && entry.until.roleCode ? [entry.until.roleCode] : [];
34
34
  }
35
35
  export function requiresWorkflowRoleUnion(bindings) {
36
36
  return bindings.some(item => Object.values(item.binding.bindings).some(entry => entry.roleCodes !== undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-role-union.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-role-union.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-role-union.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-role-union.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import type { WorkflowApprovalMode, WorkflowBinding, WorkflowDefinition, WorkflowNodeOperationPolicy, WorkflowConfigurableOperation } from '../types.js';
2
+ export declare const WORKFLOW_SOURCE_BUNDLE_SCHEMA = "openxiangda.workflow-source-bundle/v1";
3
+ export declare const WORKFLOW_SOURCE_BUNDLE_MAX_BYTES: number;
4
+ export interface WorkflowSourceDigests {
5
+ definitionDigest: string;
6
+ bindingDigest: string;
7
+ }
8
+ export interface WorkflowSourceReferences {
9
+ taskPages: Array<{
10
+ code: string;
11
+ digest: string;
12
+ }>;
13
+ steps: Array<{
14
+ code: string;
15
+ version: number;
16
+ digest: string;
17
+ }>;
18
+ bindingKeys: string[];
19
+ roles: string[];
20
+ }
21
+ export interface WorkflowSourceHandling {
22
+ mode?: WorkflowApprovalMode;
23
+ operations?: Partial<Record<WorkflowConfigurableOperation, Omit<WorkflowNodeOperationPolicy, 'minimumOpinion'> & {
24
+ enabled?: boolean;
25
+ }>>;
26
+ assignee?: {
27
+ kind: 'roles';
28
+ roleCodes: string[];
29
+ } | {
30
+ kind: 'named_people';
31
+ count: number;
32
+ };
33
+ }
34
+ export interface WorkflowSourceBundle {
35
+ schemaVersion: typeof WORKFLOW_SOURCE_BUNDLE_SCHEMA;
36
+ appCode: string;
37
+ workflowCode: string;
38
+ origin: WorkflowSourceDigests & {
39
+ environmentKey: string;
40
+ headRevision: number;
41
+ definitionVersion: number;
42
+ bindingVersion: number;
43
+ handlingDigest: string;
44
+ catalogDigest: string;
45
+ };
46
+ definition: WorkflowDefinition;
47
+ binding: WorkflowBinding;
48
+ references: WorkflowSourceReferences;
49
+ handling: Record<string, WorkflowSourceHandling>;
50
+ }
51
+ export interface WorkflowSourceLock {
52
+ schemaVersion: 'openxiangda.workflow-source-lock/v1';
53
+ workflowCode: string;
54
+ base: WorkflowSourceDigests & {
55
+ definitionVersion: number;
56
+ bindingVersion: number;
57
+ };
58
+ origin: {
59
+ environmentKey: string;
60
+ headRevision: number;
61
+ };
62
+ }
63
+ export interface WorkflowRegistrationPlan {
64
+ workflowCode: string;
65
+ definition: {
66
+ resolution: 'existing' | 'suggested';
67
+ number: number;
68
+ digest: string;
69
+ };
70
+ binding: {
71
+ resolution: 'existing' | 'suggested';
72
+ number: number;
73
+ digest: string;
74
+ };
75
+ observedHead: (WorkflowSourceDigests & {
76
+ revision: number;
77
+ }) | null;
78
+ }
79
+ export interface WorkflowSourceSyncRequest {
80
+ fromEnvironment: 'preproduction' | 'production';
81
+ toEnvironment: 'preproduction' | 'production';
82
+ expectedSourceHeadRevision: number;
83
+ expectedTargetHeadRevision: number;
84
+ operationId: string;
85
+ reason: string;
86
+ scope?: 'running_and_new' | 'new_only';
87
+ acknowledgeExceptions?: boolean;
88
+ copyHandlingDefaults?: boolean;
89
+ }
90
+ export type WorkflowSourceStatus = 'in_sync' | 'behind' | 'ahead' | 'diverged' | 'not_active';
91
+ export declare const workflowSourceDigestEqual: (a: string, b: string) => boolean;
92
+ /** Only source contracts enter this catalog, never directory results or runtime state. */
93
+ export declare function workflowSourceReferences(definition: WorkflowDefinition, binding: WorkflowBinding, digest: (value: unknown) => string): WorkflowSourceReferences;
94
+ export declare function validateWorkflowSourceBundle(value: unknown, digest: (value: unknown) => string): string[];
95
+ export declare function workflowSourceStatus(input: {
96
+ declared: WorkflowSourceDigests;
97
+ base?: WorkflowSourceDigests;
98
+ activeDeclaration?: WorkflowSourceDigests;
99
+ head: WorkflowSourceDigests | null;
100
+ }): WorkflowSourceStatus;
101
+ /** The deployment job persists the resulting head revision; observations never modify package bytes. */
102
+ export declare function classifyWorkflowSourceDeployment(input: {
103
+ declared: WorkflowSourceDigests;
104
+ base?: WorkflowSourceDigests;
105
+ head: WorkflowSourceDigests | null;
106
+ activeDeclaration?: WorkflowSourceDigests;
107
+ }): 'preserve' | 'reuse' | 'advance' | 'diverged';
108
+ export declare function workflowSourceImportDrift(localDefinition: WorkflowDefinition, localBinding: WorkflowBinding, bundle: WorkflowSourceBundle, digest: (value: unknown) => string): string[];
109
+ //# sourceMappingURL=workflow-source-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-source-sync.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-source-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { validateWorkflowDesignerCapabilities, validateWorkflowDesignerDocument } from './workflow-designer.js';
2
+ export const WORKFLOW_SOURCE_BUNDLE_SCHEMA = 'openxiangda.workflow-source-bundle/v1';
3
+ export const WORKFLOW_SOURCE_BUNDLE_MAX_BYTES = 3 * 1024 * 1024;
4
+ export const workflowSourceDigestEqual = (a, b) => a.replace(/^sha256:/, '') === b.replace(/^sha256:/, '');
5
+ const equalPair = (a, b) => workflowSourceDigestEqual(a.definitionDigest, b.definitionDigest) && workflowSourceDigestEqual(a.bindingDigest, b.bindingDigest);
6
+ const record = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
7
+ const exact = (value, keys) => record(value) && Object.keys(value).every(key => keys.includes(key) && !['__proto__', 'constructor', 'prototype'].includes(key));
8
+ const code = (value) => typeof value === 'string' && /^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(value);
9
+ const digestValue = (value) => typeof value === 'string' && /^(sha256:)?[a-f0-9]{64}$/.test(value);
10
+ /** Only source contracts enter this catalog, never directory results or runtime state. */
11
+ export function workflowSourceReferences(definition, binding, digest) {
12
+ const pages = new Set(Object.values(definition.nodes).flatMap(node => 'taskPageCode' in node && node.taskPageCode ? [node.taskPageCode] : []));
13
+ const steps = new Map();
14
+ for (const node of Object.values(definition.nodes))
15
+ if (node.kind === 'action')
16
+ steps.set(`${node.handler.code}@${node.handler.version}`, { code: node.handler.code, version: node.handler.version, digest: digest({ handler: node.handler, inputSchema: node.inputSchema, outputSchema: node.outputSchema }) });
17
+ return { taskPages: [...pages].sort().map(code => ({ code, digest: digest(definition.taskPages?.[code]) })), steps: [...steps.values()].sort((a, b) => a.code.localeCompare(b.code) || a.version - b.version),
18
+ bindingKeys: Object.keys(binding.bindings).sort(), roles: [...new Set(Object.values(binding.bindings).flatMap(entry => [...(entry.roleCode ? [entry.roleCode] : []), ...entry.roleCodes || []]))].sort() };
19
+ }
20
+ export function validateWorkflowSourceBundle(value, digest) {
21
+ try {
22
+ return validateSourceBundle(value, digest);
23
+ }
24
+ catch {
25
+ return ['WORKFLOW_BUNDLE_CORRUPT'];
26
+ }
27
+ }
28
+ function validateSourceBundle(value, digest) {
29
+ const errors = [];
30
+ if (!exact(value, ['schemaVersion', 'appCode', 'workflowCode', 'origin', 'definition', 'binding', 'references', 'handling']) || value.schemaVersion !== WORKFLOW_SOURCE_BUNDLE_SCHEMA || !code(value.appCode) || !code(value.workflowCode))
31
+ return ['WORKFLOW_BUNDLE_CORRUPT'];
32
+ if (new TextEncoder().encode(JSON.stringify(value)).length > WORKFLOW_SOURCE_BUNDLE_MAX_BYTES)
33
+ return ['WORKFLOW_BUNDLE_TOO_LARGE'];
34
+ const bundle = value, origin = bundle.origin;
35
+ if (!exact(origin, ['environmentKey', 'headRevision', 'definitionVersion', 'bindingVersion', 'definitionDigest', 'bindingDigest', 'handlingDigest', 'catalogDigest']) || !['preproduction', 'production'].includes(origin.environmentKey) ||
36
+ ![origin.headRevision, origin.definitionVersion, origin.bindingVersion].every(number => Number.isSafeInteger(number) && number >= 1) || ![origin.definitionDigest, origin.bindingDigest, origin.handlingDigest, origin.catalogDigest].every(digestValue))
37
+ return ['WORKFLOW_BUNDLE_CORRUPT'];
38
+ if (!record(bundle.definition?.nodes) || !record(bundle.binding?.bindings) || bundle.definition.code !== bundle.workflowCode || bundle.binding.workflowCode !== bundle.workflowCode)
39
+ return ['WORKFLOW_BUNDLE_CORRUPT'];
40
+ if (validateWorkflowDesignerDocument(bundle.definition).length)
41
+ errors.push('WORKFLOW_BUNDLE_DEFINITION_INVALID');
42
+ if (!workflowSourceDigestEqual(digest(bundle.definition), origin.definitionDigest) || !workflowSourceDigestEqual(digest(bundle.binding), origin.bindingDigest) || !workflowSourceDigestEqual(digest(bundle.handling), origin.handlingDigest) || !workflowSourceDigestEqual(digest(bundle.references), origin.catalogDigest))
43
+ errors.push('WORKFLOW_BUNDLE_CORRUPT');
44
+ if (!workflowSourceDigestEqual(digest(workflowSourceReferences(bundle.definition, bundle.binding, digest)), digest(bundle.references)))
45
+ errors.push('WORKFLOW_BUNDLE_CATALOG_CORRUPT');
46
+ if (!record(bundle.handling) || Object.keys(bundle.handling).length > 200)
47
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
48
+ else
49
+ for (const [id, handling] of Object.entries(bundle.handling)) {
50
+ if (!bundle.definition.nodes[id] || !exact(handling, ['mode', 'operations', 'assignee'])) {
51
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
52
+ continue;
53
+ }
54
+ if (handling.mode !== undefined && !['single', 'any', 'all', 'sequence'].includes(handling.mode))
55
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
56
+ if (handling.operations !== undefined) {
57
+ const names = ['complete', 'approve', 'reject', 'save_form', 'return', 'transfer', 'delegate', 'add_assignee'];
58
+ if (!exact(handling.operations, names))
59
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
60
+ else
61
+ for (const operation of Object.values(handling.operations)) {
62
+ if (!exact(operation, ['enabled', 'label', 'opinion', 'commentRequired', 'reasonRequired']) ||
63
+ operation.enabled !== undefined && typeof operation.enabled !== 'boolean' ||
64
+ operation.commentRequired !== undefined && typeof operation.commentRequired !== 'boolean' ||
65
+ operation.reasonRequired !== undefined && typeof operation.reasonRequired !== 'boolean' ||
66
+ operation.label !== undefined && (typeof operation.label !== 'string' || !operation.label.trim() || operation.label.length > 255) ||
67
+ operation.opinion !== undefined && !['none', 'optional', 'required'].includes(operation.opinion))
68
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
69
+ }
70
+ }
71
+ const assignee = handling.assignee;
72
+ if (assignee && (assignee.kind === 'named_people' ? !exact(assignee, ['kind', 'count']) || !Number.isSafeInteger(assignee.count) || assignee.count < 0 || assignee.count > 200 :
73
+ assignee.kind === 'roles' ? !exact(assignee, ['kind', 'roleCodes']) || !Array.isArray(assignee.roleCodes) || assignee.roleCodes.length > 200 || !assignee.roleCodes.every(code) : true))
74
+ errors.push('WORKFLOW_BUNDLE_HANDLING_INVALID');
75
+ }
76
+ return [...new Set(errors)];
77
+ }
78
+ export function workflowSourceStatus(input) {
79
+ if (!input.head)
80
+ return 'not_active';
81
+ if (equalPair(input.declared, input.head))
82
+ return 'in_sync';
83
+ const base = input.base || input.activeDeclaration;
84
+ if (base && equalPair(base, input.head))
85
+ return 'ahead';
86
+ return !base || equalPair(input.declared, base) ? 'behind' : 'diverged';
87
+ }
88
+ /** The deployment job persists the resulting head revision; observations never modify package bytes. */
89
+ export function classifyWorkflowSourceDeployment(input) {
90
+ if (!input.head)
91
+ return 'advance';
92
+ if (equalPair(input.declared, input.head))
93
+ return 'reuse';
94
+ if (input.activeDeclaration && equalPair(input.declared, input.activeDeclaration))
95
+ return 'preserve';
96
+ if (input.base && equalPair(input.base, input.head) || input.activeDeclaration && equalPair(input.activeDeclaration, input.head))
97
+ return 'advance';
98
+ return 'diverged';
99
+ }
100
+ export function workflowSourceImportDrift(localDefinition, localBinding, bundle, digest) {
101
+ const errors = validateWorkflowSourceBundle(bundle, digest);
102
+ if (errors.length)
103
+ return errors;
104
+ errors.push(...validateWorkflowDesignerCapabilities(localDefinition, bundle.definition, localBinding, bundle.binding).map(error => `WORKFLOW_IMPORT_CODE_OWNED_DRIFT:${error}`));
105
+ let localReferences;
106
+ try {
107
+ localReferences = workflowSourceReferences(localDefinition, localBinding, digest);
108
+ }
109
+ catch {
110
+ return [...new Set([...errors, 'WORKFLOW_IMPORT_CODE_OWNED_DRIFT:catalog'])];
111
+ }
112
+ for (const page of bundle.references.taskPages)
113
+ if (!localDefinition.taskPages?.[page.code] || !workflowSourceDigestEqual(digest(localDefinition.taskPages[page.code]), page.digest))
114
+ errors.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:taskPage:${page.code}`);
115
+ for (const step of bundle.references.steps)
116
+ if (!localReferences.steps.some(candidate => candidate.code === step.code && candidate.version === step.version && workflowSourceDigestEqual(candidate.digest, step.digest)))
117
+ errors.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:step:${step.code}@${step.version}`);
118
+ return [...new Set(errors)];
119
+ }
120
+ //# sourceMappingURL=workflow-source-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-source-sync.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-source-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface WorkflowSupervisorChainParameters {
2
+ from: 'initiator' | {
3
+ field: string;
4
+ };
5
+ until: 'top' | {
6
+ level: number;
7
+ } | {
8
+ roleCode: string;
9
+ };
10
+ continuous?: boolean;
11
+ missing?: 'skip_level' | 'block';
12
+ }
13
+ export declare function validateWorkflowSupervisorChainBinding(entry: any): string[];
14
+ export declare function validateWorkflowSupervisorChains(definition: any, binding: any): string[];
15
+ export declare function formatWorkflowSupervisorChain(entry: WorkflowSupervisorChainParameters): string;
16
+ //# sourceMappingURL=workflow-supervisor-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-supervisor-chain.d.ts","sourceRoot":"","sources":["../../src/native-compiler/workflow-supervisor-chain.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,WAAW,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,KAAK,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;CAClC;AAGD,wBAAgB,sCAAsC,CAAC,KAAK,EAAC,GAAG,GAAG,MAAM,EAAE,CAK1E;AACD,wBAAgB,gCAAgC,CAAC,UAAU,EAAC,GAAG,EAAC,OAAO,EAAC,GAAG,GAAG,MAAM,EAAE,CAerF;AACD,wBAAgB,6BAA6B,CAAC,KAAK,EAAC,iCAAiC,GAAE,MAAM,CAI5F"}
@@ -0,0 +1,44 @@
1
+ import { workflowBusinessStepFactSchema } from './workflow-business-step.js';
2
+ const plain = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
3
+ const path = (value) => typeof value === 'string' && value.length <= 255 && value.split('.').length <= 8 && /^[A-Za-z][A-Za-z0-9_-]*(\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(value) && !value.split('.').some((key) => ['__proto__', 'prototype', 'constructor'].includes(key));
4
+ export function validateWorkflowSupervisorChainBinding(entry) {
5
+ if (entry?.provider !== 'supervisor_chain')
6
+ return entry && ['from', 'until', 'continuous', 'missing'].some(key => entry[key] !== undefined) ? ['WORKFLOW_SUPERVISOR_CHAIN_PROVIDER_INVALID'] : [];
7
+ const from = entry.from, until = entry.until;
8
+ if (!plain(entry) || Object.keys(entry).some(key => !['provider', 'from', 'until', 'continuous', 'missing', 'min', 'max', 'delegatable'].includes(key)) || !(from === 'initiator' || plain(from) && Object.keys(from).length === 1 && path(from.field)) || !(until === 'top' || plain(until) && Object.keys(until).length === 1 && (Number.isInteger(until.level) && until.level >= 1 && until.level <= 20 || typeof until.roleCode === 'string' && /^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(until.roleCode) && until.roleCode.length <= 128)) || entry.continuous !== undefined && typeof entry.continuous !== 'boolean' || entry.missing !== undefined && !['skip_level', 'block'].includes(entry.missing))
9
+ return ['WORKFLOW_SUPERVISOR_CHAIN_BINDING_INVALID'];
10
+ return [];
11
+ }
12
+ export function validateWorkflowSupervisorChains(definition, binding) {
13
+ const errors = [];
14
+ for (const [code, entry] of Object.entries(binding?.bindings || {}))
15
+ errors.push(...validateWorkflowSupervisorChainBinding(entry).map(error => `${error}:${code}`));
16
+ for (const [id, node] of Object.entries(definition?.nodes || {})) {
17
+ const entry = binding?.bindings?.[node?.binding];
18
+ if (entry?.provider !== 'supervisor_chain' || validateWorkflowSupervisorChainBinding(entry).length)
19
+ continue;
20
+ if (!['approval', 'handle'].includes(node.kind))
21
+ errors.push(`WORKFLOW_SUPERVISOR_CHAIN_HUMAN_REQUIRED:${id}`);
22
+ if (entry.continuous !== false && node.mode !== 'sequence')
23
+ errors.push(`WORKFLOW_SUPERVISOR_CHAIN_SEQUENCE_REQUIRED:${id}`);
24
+ if (entry.from === 'initiator') {
25
+ if (!definition.organizationContext?.department || definition.organizationContext.department.source === 'none')
26
+ errors.push(`WORKFLOW_SUPERVISOR_CHAIN_DEPARTMENT_CONTEXT_REQUIRED:${id}`);
27
+ }
28
+ else {
29
+ let schema = workflowBusinessStepFactSchema(definition);
30
+ for (const key of entry.from.field.split('.'))
31
+ schema = schema?.properties?.[key];
32
+ const type = Array.isArray(schema?.type) ? schema.type.filter((value) => value !== 'null')[0] : schema?.type;
33
+ if (!schema || !['string', 'array', 'object'].includes(type))
34
+ errors.push(`WORKFLOW_SUPERVISOR_CHAIN_USER_FACT_REQUIRED:${id}`);
35
+ }
36
+ }
37
+ return errors;
38
+ }
39
+ export function formatWorkflowSupervisorChain(entry) {
40
+ const from = entry.from === 'initiator' ? '申请人' : `成员变量 ${entry.from.field}`;
41
+ const until = entry.until === 'top' ? '最上级' : 'level' in entry.until ? `第 ${entry.until.level} 级` : `角色 ${entry.until.roleCode}`;
42
+ return `${from}的主管链 · 至${until} · ${entry.continuous !== false ? '逐级办理' : '仅终点办理'}`;
43
+ }
44
+ //# sourceMappingURL=workflow-supervisor-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-supervisor-chain.js","sourceRoot":"","sources":["../../src/native-compiler/workflow-supervisor-chain.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ export function validateWorkflowTaskPages(definition, resourceFields, children,
142
142
  }
143
143
  for (const [id, node] of Object.entries(definition.nodes || {}))
144
144
  if (object(node) && node.taskPageCode !== undefined) {
145
- if (!['approval', 'correction'].includes(node.kind) || typeof node.taskPageCode !== 'string' || !object(pages) || !Object.hasOwn(pages, node.taskPageCode))
145
+ if (!['approval', 'handle', 'correction'].includes(node.kind) || typeof node.taskPageCode !== 'string' || !object(pages) || !Object.hasOwn(pages, node.taskPageCode))
146
146
  diagnostics.push(`WORKFLOW_TASK_PAGE_NOT_FOUND:${id}`);
147
147
  else if (Array.isArray(pages[node.taskPageCode]?.fields) && pages[node.taskPageCode].fields.some(field => field && (node.fieldPolicy?.fields?.[field.code] || node.fieldPolicy?.default) === 'hidden'))
148
148
  diagnostics.push(`WORKFLOW_TASK_PAGE_FIELD_HIDDEN:${id}`);