openxiangda 2.35.3 → 2.44.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/FilePreviewPage.d.ts.map +1 -1
- package/dist/browser/FilePreviewPage.js +4 -2
- package/dist/browser/FilePreviewPage.js.map +1 -1
- package/dist/browser/ManagedCommand.d.ts +1 -0
- package/dist/browser/ManagedCommand.d.ts.map +1 -1
- package/dist/browser/ManagedCommand.js +1 -1
- package/dist/browser/ManagedCommand.js.map +1 -1
- package/dist/browser/Shell.d.ts.map +1 -1
- package/dist/browser/Shell.js +1 -1
- package/dist/browser/Shell.js.map +1 -1
- package/dist/browser/components/administration/RoleMembershipManager.d.ts +7 -0
- package/dist/browser/components/administration/RoleMembershipManager.d.ts.map +1 -0
- package/dist/browser/components/administration/RoleMembershipManager.js +724 -0
- package/dist/browser/components/administration/RoleMembershipManager.js.map +1 -0
- package/dist/browser/components/administration/membership-batch-model.d.ts +17 -0
- package/dist/browser/components/administration/membership-batch-model.d.ts.map +1 -0
- package/dist/browser/components/administration/membership-batch-model.js +117 -0
- package/dist/browser/components/administration/membership-batch-model.js.map +1 -0
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js +2 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts +3 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.js +9 -5
- package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts +3 -2
- package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.js +9 -9
- package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +8 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +277 -69
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts +8 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js +174 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts +3 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js +75 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts +14 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +117 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts +14 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.js +204 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeCard.js +5 -2
- package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +6 -5
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts +10 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js +59 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts +17 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js +136 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts +20 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.js +124 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +49 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.js +141 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -0
- package/dist/browser/components/workflow/workflow-routing-draft.d.ts +4 -0
- package/dist/browser/components/workflow/workflow-routing-draft.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-routing-draft.js +9 -0
- package/dist/browser/components/workflow/workflow-routing-draft.js.map +1 -0
- package/dist/browser/durable-command.d.ts +9 -0
- package/dist/browser/durable-command.d.ts.map +1 -1
- package/dist/browser/durable-command.js +67 -13
- package/dist/browser/durable-command.js.map +1 -1
- package/dist/browser/navigation-guard.d.ts +3 -1
- package/dist/browser/navigation-guard.d.ts.map +1 -1
- package/dist/browser/navigation-guard.js +7 -3
- package/dist/browser/navigation-guard.js.map +1 -1
- package/dist/browser/platform-client.d.ts +67 -3
- package/dist/browser/platform-client.d.ts.map +1 -1
- package/dist/browser/platform-client.js +135 -5
- package/dist/browser/platform-client.js.map +1 -1
- package/dist/browser/record-detail.css +10 -0
- package/dist/browser/runtime.d.ts +2 -0
- package/dist/browser/runtime.d.ts.map +1 -1
- package/dist/browser/runtime.js +5 -1
- package/dist/browser/runtime.js.map +1 -1
- package/dist/browser/styles.css +81 -0
- package/dist/browser/workflow-task-command-recovery.d.ts +17 -0
- package/dist/browser/workflow-task-command-recovery.d.ts.map +1 -0
- package/dist/browser/workflow-task-command-recovery.js +50 -0
- package/dist/browser/workflow-task-command-recovery.js.map +1 -0
- package/dist/browser/workflow-task-file-upload.d.ts +18 -0
- package/dist/browser/workflow-task-file-upload.d.ts.map +1 -0
- package/dist/browser/workflow-task-file-upload.js +35 -0
- package/dist/browser/workflow-task-file-upload.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/core.d.ts +5 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -0
- package/dist/core.js.map +1 -1
- package/dist/nest.d.ts +2 -2
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js.map +1 -1
- package/dist/react.d.ts +8 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -1
- package/dist/react.js.map +1 -1
- package/documentation/administration.md +128 -1
- package/documentation/frontend.md +2 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/managed-concurrency-frontend.md +9 -4
- package/documentation/manifest.json +6 -6
- package/documentation/workflow-events.md +213 -3
- package/package.json +24 -34
- package/releases/2.43.0.json +38 -0
- package/releases/2.44.0.json +36 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/administration.md +128 -1
- package/skills/openxiangda-v2/references/frontend.md +2 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
- package/skills/openxiangda-v2/references/managed-concurrency-frontend.md +9 -4
- package/skills/openxiangda-v2/references/workflow-events.md +213 -3
- package/releases/2.35.0.json +0 -42
- package/releases/2.35.1.json +0 -43
- package/releases/2.35.2.json +0 -45
- package/releases/2.35.3.json +0 -46
package/dist/browser/styles.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
@import './mobile-fields.css';
|
|
2
3
|
@import './record-detail.css';
|
|
3
4
|
|
|
@@ -2994,9 +2995,89 @@
|
|
|
2994
2995
|
.oxa-workflow-operation-row small { color: var(--ant-color-text-secondary, #748092); }
|
|
2995
2996
|
.oxa-workflow-config-reason { border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); margin-top: 24px; padding-top: 20px; }
|
|
2996
2997
|
.oxa-workflow-config-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
|
|
2998
|
+
.oxa-workflow-routing-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 12px; }
|
|
2999
|
+
.oxa-workflow-routing-toolbar > span { color: var(--ant-color-text-secondary, #748092); font-size: 13px; }
|
|
3000
|
+
.oxa-workflow-routing-form-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
|
|
3001
|
+
.oxa-workflow-routing-definition { margin-top: 20px; padding: 12px 0; border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); font-size: 13px; }
|
|
3002
|
+
.oxa-workflow-routing-definition p { color: var(--ant-color-text-secondary, #748092); line-height: 1.6; }
|
|
3003
|
+
@media (max-width: 600px) { .oxa-workflow-routing-form-row { grid-template-columns: 1fr; } .oxa-workflow-routing .ant-drawer-body { padding: 16px; } }
|
|
2997
3004
|
.oxa-workflow-config-footer > span { font-size: 12px; color: var(--ant-color-text-secondary, #748092); }
|
|
2998
3005
|
@media (max-width: 700px) {
|
|
2999
3006
|
.oxa-workflow-config .ant-drawer-body { padding: 16px; }
|
|
3000
3007
|
.oxa-workflow-config-footer > span { display: none; }
|
|
3001
3008
|
.oxa-workflow-config-footer { justify-content: flex-end; }
|
|
3002
3009
|
}
|
|
3010
|
+
|
|
3011
|
+
/* Shared role administration: the application theme remains the visual owner. */
|
|
3012
|
+
.oxa-member-management { min-width: 0; color: var(--ant-color-text, #262b34); }
|
|
3013
|
+
.oxa-member-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; margin-top: 16px; }
|
|
3014
|
+
.oxa-member-roles { border-right: 1px solid var(--ant-color-border-secondary, #e8ebf0); padding-right: 20px; min-width: 0; }
|
|
3015
|
+
.oxa-member-role-title { font-size: 13px; font-weight: 600; margin: 0 0 12px; color: var(--ant-color-text-secondary, #687080); }
|
|
3016
|
+
.oxa-member-role-buttons { display: grid; gap: 4px; max-height: 60vh; overflow: auto; }
|
|
3017
|
+
.oxa-member-role-buttons button { font: inherit; text-align: left; border: 0; border-radius: 6px; background: transparent; padding: 10px 12px; color: inherit; cursor: pointer; overflow-wrap: anywhere; }
|
|
3018
|
+
.oxa-member-role-buttons button.active { background: var(--ant-color-primary-bg, #edf4ff); color: var(--ant-color-primary, #1677ff); }
|
|
3019
|
+
.oxa-member-role-buttons button:hover { background: var(--ant-color-fill-tertiary, #f4f6f9); }
|
|
3020
|
+
.oxa-member-role-buttons button:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: -2px; }
|
|
3021
|
+
.oxa-member-role-buttons small { display: block; font-size: 12px; margin-top: 4px; font-weight: 400; color: var(--ant-color-text-secondary, #687080); }
|
|
3022
|
+
.oxa-member-role-select { display: none; }
|
|
3023
|
+
.oxa-member-main { min-width: 0; }
|
|
3024
|
+
.oxa-member-toolbar, .oxa-member-selection, .oxa-member-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
|
|
3025
|
+
.oxa-member-toolbar h3 { margin: 0 0 4px; font-size: 16px; }
|
|
3026
|
+
.oxa-member-help { font-size: 13px; color: var(--ant-color-text-secondary, #687080); line-height: 1.6; overflow-wrap: anywhere; }
|
|
3027
|
+
.oxa-member-toolbar p { margin: 0; }
|
|
3028
|
+
.oxa-member-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 12px; }
|
|
3029
|
+
.oxa-member-filters > * { min-width: 150px; flex: 1 1 150px; max-width: 260px; }
|
|
3030
|
+
.oxa-member-filters > .ant-btn { flex: 0 0 auto; min-width: auto; }
|
|
3031
|
+
.oxa-member-selection { padding: 10px 0; font-size: 13px; color: var(--ant-color-text-secondary, #687080); }
|
|
3032
|
+
.oxa-member-sub { display: block; font-size: 12px; line-height: 1.6; color: var(--ant-color-text-secondary, #687080); overflow-wrap: anywhere; }
|
|
3033
|
+
.oxa-member-picker .ant-select { width: 100%; }
|
|
3034
|
+
.oxa-member-operation-id { display: block; font: 11px/1.6 ui-monospace, monospace; color: var(--ant-color-text-secondary, #687080); overflow-wrap: anywhere; user-select: all; }
|
|
3035
|
+
.oxa-member-time-grid, .oxa-member-diff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
|
|
3036
|
+
.oxa-member-diff section { min-width: 0; overflow-wrap: anywhere; }
|
|
3037
|
+
.oxa-member-diff h4 { margin: 0 0 12px; font-size: 13px; }
|
|
3038
|
+
.oxa-member-draft-summary { border-left: 3px solid var(--ant-color-primary, #1677ff); padding: 4px 0 4px 16px; margin: 0 0 20px; overflow-wrap: anywhere; }
|
|
3039
|
+
.oxa-member-draft-summary p { margin: 6px 0; }
|
|
3040
|
+
.oxa-member-draft-summary span, .oxa-member-footer > span { font-size: 12px; color: var(--ant-color-text-secondary, #687080); }
|
|
3041
|
+
@media (max-width: 700px) {
|
|
3042
|
+
.oxa-member-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
|
|
3043
|
+
.oxa-member-roles { border: 0; padding: 0; }
|
|
3044
|
+
.oxa-member-role-buttons { display: none; }
|
|
3045
|
+
.oxa-member-role-select { display: block; width: 100%; }
|
|
3046
|
+
.oxa-member-filters > * { min-width: 0; max-width: none; flex: 1 1 140px; }
|
|
3047
|
+
.oxa-member-time-grid, .oxa-member-diff { grid-template-columns: minmax(0, 1fr); gap: 8px; }
|
|
3048
|
+
.oxa-member-footer .ant-space { width: 100%; }
|
|
3049
|
+
}
|
|
3050
|
+
.oxa-workflow-delegation-manager { min-width: 0; width: 100%; }
|
|
3051
|
+
.oxa-workflow-task-form { margin: 16px 0 24px; padding: 20px 0; border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); min-width: 0; }
|
|
3052
|
+
.oxa-workflow-task-form .ant-form { max-width: 680px; margin-top: 20px; }
|
|
3053
|
+
.oxa-workflow-task-form .ant-alert { margin: 16px 0; }
|
|
3054
|
+
.oxa-workflow-task-drafts { padding: 12px 16px; background: var(--ant-color-fill-quaternary, #f7f9fc); border-radius: 8px; }
|
|
3055
|
+
.oxa-workflow-task-drafts > .ant-typography:last-child { margin-top: 10px; margin-bottom: 0; }
|
|
3056
|
+
.oxa-workflow-draft-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 16px 0; border-bottom: 1px solid var(--ant-color-border-secondary, #e0e6ed); }
|
|
3057
|
+
.oxa-workflow-draft-row .ant-typography { margin-bottom: 0; }
|
|
3058
|
+
.oxa-workflow-draft-review { max-height: 55dvh; overflow: auto; }
|
|
3059
|
+
.oxa-workflow-task-readonly { margin-bottom: 20px; line-height: 1.7; overflow-wrap: anywhere; }
|
|
3060
|
+
.oxa-workflow-task-readonly > div { margin-top: 4px; }
|
|
3061
|
+
.oxa-workflow-task-required { margin-bottom: 20px; }
|
|
3062
|
+
.oxa-workflow-task-required .ant-form-item { margin-bottom: 4px; }
|
|
3063
|
+
.oxa-workflow-task-required-hint { font-size: 12px; }
|
|
3064
|
+
.oxa-workflow-task-form-mobile { padding: 16px 0; }
|
|
3065
|
+
.oxa-workflow-task-form-mobile .ant-alert { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
3066
|
+
.oxa-delegation-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
|
|
3067
|
+
.oxa-delegation-toolbar .ant-input-search { flex: 1 1 220px; max-width: 340px; min-width: 0; }
|
|
3068
|
+
.oxa-delegation-toolbar .ant-select { min-width: 140px; max-width: 100%; }
|
|
3069
|
+
.oxa-workflow-delegation-manager .ant-table-wrapper { min-width: 0; }
|
|
3070
|
+
.oxa-workflow-delegation-manager .ant-alert, .oxa-workflow-delegation-editor .ant-alert { margin-bottom: 16px; }
|
|
3071
|
+
.oxa-workflow-delegation-editor .ant-form { margin-top: 20px; }
|
|
3072
|
+
.oxa-workflow-delegation-editor .ant-picker { width: 100%; }
|
|
3073
|
+
.oxa-delegation-dates { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
|
|
3074
|
+
.oxa-delegation-candidate-paging { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; font-size: 12px; }
|
|
3075
|
+
.oxa-delegation-preview { margin: 16px 0; padding: 12px 16px; border: 1px solid var(--ant-color-border, #d9d9d9); border-radius: 6px; }
|
|
3076
|
+
.oxa-delegation-preview h3 { font-size: 14px; margin: 0 0 12px; }
|
|
3077
|
+
.oxa-delegation-preview p { overflow-wrap: anywhere; }
|
|
3078
|
+
.oxa-workflow-delegation-editor code { overflow-wrap: anywhere; }
|
|
3079
|
+
@media (max-width: 575px) {
|
|
3080
|
+
.oxa-delegation-dates { grid-template-columns: minmax(0, 1fr); gap: 0; }
|
|
3081
|
+
.oxa-delegation-toolbar .ant-input-search { flex-basis: 100%; max-width: 100%; }
|
|
3082
|
+
.oxa-delegation-toolbar .ant-select { flex: 1 1 140px; min-width: 0; }
|
|
3083
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SubmissionLocatorStorage } from './workflow-submission-recovery';
|
|
2
|
+
/** Locator only. Never persist the original token, operation input or form values. */
|
|
3
|
+
export interface PendingWorkflowTaskCommand {
|
|
4
|
+
taskId: string;
|
|
5
|
+
command: string;
|
|
6
|
+
idempotencyKey: string;
|
|
7
|
+
requestedAt: string;
|
|
8
|
+
tokenDigest: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function workflowTaskCommandScope(appCode: string, environmentId: string, userId: string, taskId: string): string;
|
|
11
|
+
export declare function readPendingWorkflowTaskCommand(storage: SubmissionLocatorStorage | undefined, scope: string): PendingWorkflowTaskCommand | null;
|
|
12
|
+
export declare function writePendingWorkflowTaskCommand(storage: SubmissionLocatorStorage | undefined, scope: string, value: PendingWorkflowTaskCommand): boolean;
|
|
13
|
+
export declare function clearPendingWorkflowTaskCommand(storage: SubmissionLocatorStorage | undefined, scope: string, idempotencyKey: string): void;
|
|
14
|
+
export declare function workflowCommandTokenDigest(token: string): Promise<string>;
|
|
15
|
+
/** Only a first-attempt, structured server rejection proves no successful write. */
|
|
16
|
+
export declare function workflowTaskCommandWasRejected(error: unknown): boolean;
|
|
17
|
+
//# sourceMappingURL=workflow-task-command-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-task-command-recovery.d.ts","sourceRoot":"","sources":["../../src/browser/workflow-task-command-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,sFAAsF;AACtF,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAE9G;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAW9I;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAOxJ;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,QAInI;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/E;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAItE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export function workflowTaskCommandScope(appCode, environmentId, userId, taskId) {
|
|
2
|
+
return `openxiangda:pending-task-command:v1:${JSON.stringify([appCode, environmentId, userId, taskId])}`;
|
|
3
|
+
}
|
|
4
|
+
export function readPendingWorkflowTaskCommand(storage, scope) {
|
|
5
|
+
try {
|
|
6
|
+
const raw = storage?.getItem(scope);
|
|
7
|
+
if (!raw || raw.length > 2048)
|
|
8
|
+
return null;
|
|
9
|
+
const value = JSON.parse(raw);
|
|
10
|
+
if (!value || Object.keys(value).sort().join(',') !== 'command,idempotencyKey,requestedAt,taskId,tokenDigest'
|
|
11
|
+
|| ![value.taskId, value.command, value.idempotencyKey].every(item => typeof item === 'string' && item.length > 0 && item.length <= 255)
|
|
12
|
+
|| typeof value.tokenDigest !== 'string' || !/^[a-f0-9]{64}$/.test(value.tokenDigest)
|
|
13
|
+
|| typeof value.requestedAt !== 'string' || !Number.isFinite(Date.parse(value.requestedAt)))
|
|
14
|
+
return null;
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function writePendingWorkflowTaskCommand(storage, scope, value) {
|
|
22
|
+
try {
|
|
23
|
+
if (!storage)
|
|
24
|
+
return false;
|
|
25
|
+
storage.setItem(scope, JSON.stringify({ taskId: value.taskId, command: value.command,
|
|
26
|
+
idempotencyKey: value.idempotencyKey, requestedAt: value.requestedAt, tokenDigest: value.tokenDigest }));
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function clearPendingWorkflowTaskCommand(storage, scope, idempotencyKey) {
|
|
34
|
+
try {
|
|
35
|
+
if (readPendingWorkflowTaskCommand(storage, scope)?.idempotencyKey === idempotencyKey)
|
|
36
|
+
storage?.removeItem(scope);
|
|
37
|
+
}
|
|
38
|
+
catch { /* The in-memory request remains available. */ }
|
|
39
|
+
}
|
|
40
|
+
export async function workflowCommandTokenDigest(token) {
|
|
41
|
+
const digest = await globalThis.crypto.subtle.digest('SHA-256', new TextEncoder().encode(token));
|
|
42
|
+
return Array.from(new Uint8Array(digest), byte => byte.toString(16).padStart(2, '0')).join('');
|
|
43
|
+
}
|
|
44
|
+
/** Only a first-attempt, structured server rejection proves no successful write. */
|
|
45
|
+
export function workflowTaskCommandWasRejected(error) {
|
|
46
|
+
const value = error;
|
|
47
|
+
return Boolean(value && [400, 401, 403, 404, 409, 413, 422].includes(value.status || 0)
|
|
48
|
+
&& /^(WORKFLOW_(V2|TASK)_|OPENXIANGDA_NATIVE_)/.test(value.code || ''));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=workflow-task-command-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-task-command-recovery.js","sourceRoot":"","sources":["../../src/browser/workflow-task-command-recovery.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,aAAqB,EAAE,MAAc,EAAE,MAAc;IAC7G,OAAO,uCAAuC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA6C,EAAE,KAAa;IACzG,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,uDAAuD;eACxG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;eACrI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;eAClF,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3G,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAA6C,EAAE,KAAa,EAAE,KAAiC;IAC7I,IAAI,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;YAClF,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3G,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAA6C,EAAE,KAAa,EAAE,cAAsB;IAClI,IAAI,CAAC;QACH,IAAI,8BAA8B,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,cAAc,KAAK,cAAc;YAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACpH,CAAC;IAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAa;IAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,MAAM,KAAK,GAAG,KAAkD,CAAC;IACjE,OAAO,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;WAClF,4CAA4C,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DataFileRef, WorkflowTaskFileUpload, WorkflowTaskFileUploadPlan } from 'openxiangda-contracts/browser';
|
|
2
|
+
/** Transient bytes and the original intent. Never persist this object or its upload plan. */
|
|
3
|
+
export interface WorkflowTaskFileUploadIntent {
|
|
4
|
+
taskId: string;
|
|
5
|
+
input: WorkflowTaskFileUpload;
|
|
6
|
+
file: File;
|
|
7
|
+
phase: 'initiate' | 'upload' | 'complete';
|
|
8
|
+
}
|
|
9
|
+
export interface WorkflowTaskFileUploadTransport {
|
|
10
|
+
initiate: (taskId: string, input: WorkflowTaskFileUpload) => Promise<WorkflowTaskFileUploadPlan>;
|
|
11
|
+
read: (taskId: string, fileId: string) => Promise<WorkflowTaskFileUploadPlan>;
|
|
12
|
+
put: (plan: WorkflowTaskFileUploadPlan, file: File) => Promise<void>;
|
|
13
|
+
complete: (taskId: string, fileId: string) => Promise<DataFileRef>;
|
|
14
|
+
}
|
|
15
|
+
export declare function assertWorkflowTaskFileUploadPlan(intent: WorkflowTaskFileUploadIntent, plan: WorkflowTaskFileUploadPlan): void;
|
|
16
|
+
/** A ready receipt is final. A lost completion response never causes another PUT. */
|
|
17
|
+
export declare function runWorkflowTaskFileUpload(intent: WorkflowTaskFileUploadIntent, transport: WorkflowTaskFileUploadTransport, recovery?: boolean): Promise<DataFileRef>;
|
|
18
|
+
//# sourceMappingURL=workflow-task-file-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-task-file-upload.d.ts","sourceRoot":"","sources":["../../src/browser/workflow-task-file-upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAErH,6FAA6F;AAC7F,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,sBAAsB,CAAC;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC3C;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACjG,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC9E,GAAG,EAAE,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CACpE;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAAI,EAAE,0BAA0B,QAMtH;AAED,qFAAqF;AACrF,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,+BAA+B,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAmBxK"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function assertWorkflowTaskFileUploadPlan(intent, plan) {
|
|
2
|
+
const { input } = intent;
|
|
3
|
+
if (plan.file.id !== input.id || plan.fieldCode !== input.fieldCode ||
|
|
4
|
+
plan.file.name !== input.fileName || plan.file.size !== input.fileSize ||
|
|
5
|
+
plan.file.contentType !== (input.contentType || '') || !['pending', 'ready'].includes(plan.state))
|
|
6
|
+
throw new Error('WORKFLOW_TASK_FILE_UPLOAD_RESPONSE_INVALID');
|
|
7
|
+
}
|
|
8
|
+
/** A ready receipt is final. A lost completion response never causes another PUT. */
|
|
9
|
+
export async function runWorkflowTaskFileUpload(intent, transport, recovery = false) {
|
|
10
|
+
let plan;
|
|
11
|
+
if (recovery) {
|
|
12
|
+
try {
|
|
13
|
+
plan = await transport.read(intent.taskId, intent.input.id);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
if (error.code !== 'WORKFLOW_TASK_FILE_NOT_FOUND')
|
|
17
|
+
throw error;
|
|
18
|
+
plan = await transport.initiate(intent.taskId, intent.input);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else
|
|
22
|
+
plan = await transport.initiate(intent.taskId, intent.input);
|
|
23
|
+
assertWorkflowTaskFileUploadPlan(intent, plan);
|
|
24
|
+
if (plan.state === 'ready')
|
|
25
|
+
return plan.file;
|
|
26
|
+
if (intent.phase !== 'complete') {
|
|
27
|
+
intent.phase = 'upload';
|
|
28
|
+
await transport.put(plan, intent.file);
|
|
29
|
+
}
|
|
30
|
+
intent.phase = 'complete';
|
|
31
|
+
const file = await transport.complete(intent.taskId, intent.input.id);
|
|
32
|
+
assertWorkflowTaskFileUploadPlan(intent, { ...plan, file, state: 'ready' });
|
|
33
|
+
return file;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=workflow-task-file-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-task-file-upload.js","sourceRoot":"","sources":["../../src/browser/workflow-task-file-upload.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,gCAAgC,CAAC,MAAoC,EAAE,IAAgC;IACrH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ;QACtE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAClE,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAoC,EAAE,SAA0C,EAAE,QAAQ,GAAG,KAAK;IAChJ,IAAI,IAAgC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACpE,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA2B,CAAC,IAAI,KAAK,8BAA8B;gBAAE,MAAM,KAAK,CAAC;YACtF,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;;QAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,gCAAgC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;QACxB,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,gCAAgC,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { defineOpenXiangdaApp, defineApplicationModule, materializeApplicationModules, defineDataModel, defineResourceForm, defineResourceList, defineAdminNavigation, adminNavigationGroup, adminResourcePage, adminOperationPage, adminApplicationTodoCenterPage, renderAdminNavigationSuggestion, suggestAdminNavigation, composeAppOperationSchemas, composeJsonSchema, currentUserDataPolicy, dataPolicyExpression, resourceRecordSchema, resourceReadPolicy, resourceCapabilityCodes, resourceRoleCapabilities, schemaRef, type AppDataFieldAccessDeclaration, type AppDataFieldDeclaration, type AppDataResourceDeclaration, type AppDataModelDeclaration, type AppModelFieldDeclaration, type AppModuleDeclaration, type AppCrudViewDeclaration, type AppResourceFormDeclaration, type AppResourceListDeclaration, type AdminNavigationSuggestionSource, type WorkflowDefinitionDeclaration, type OpenXiangdaAppConfig, type OpenXiangdaAppDeclaration, type AppOperationSchemasInput, type JsonSchemaDefinitions, type ResourceRecordSchemaOptions, } from 'openxiangda-devkit-core';
|
|
2
|
-
export type { ManagedConcurrencyDeclaration, ManagedReadDeclaration, QueuedCommandDeclaration, IntegerQuotaDeclaration, AdmissionPolicy, ConcurrencyBinding, ConcurrencyParameter, } from 'openxiangda-contracts';
|
|
2
|
+
export type { WorkflowTaskPage, WorkflowTaskPageField, WorkflowApprovalNode, WorkflowBusinessStepNode, WorkflowBusinessStepInput, ManagedConcurrencyDeclaration, ManagedReadDeclaration, QueuedCommandDeclaration, IntegerQuotaDeclaration, AdmissionPolicy, ConcurrencyBinding, ConcurrencyParameter, } from 'openxiangda-contracts';
|
|
3
3
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EAGvB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,SAAS,EACT,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,6BAA6B,EAAE,sBAAsB,EAAE,wBAAwB,EAC/E,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,GACnF,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EAGvB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,SAAS,EACT,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAC7D,wBAAwB,EAAE,yBAAyB,EACnD,6BAA6B,EAAE,sBAAsB,EAAE,wBAAwB,EAC/E,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,GACnF,MAAM,uBAAuB,CAAC"}
|
package/dist/core.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
export { createManagedConcurrencyClient } from './browser/platform-client';
|
|
2
2
|
export * from './browser/managed-command';
|
|
3
3
|
export type { ManagedReadResult, CommandReceipt, WaitingReceipt } from 'openxiangda-contracts/browser';
|
|
4
|
-
export type { BusinessProcessCommand, BusinessProcessCommandQuery, BusinessProcessCommandList, DataAuditEntry, DataAuditPage, DataAggregateMeasureType, DataAggregatePage, DataAggregateQuery, DataBatchQueryItemResult, DataBatchQueryOperation, DataBatchQueryRequest, DataBatchQueryResult, DataExportRequest, DataFieldOption, DataFieldSourcePage, DataFieldSourceQuery, DataFieldSourceLaunchBinding, DataFieldSurface, DataFilePreview, DataFileRef, DataFileUploadPlan, DataFileDownloadSession, DataFileOutputRequest, DataFileOutputPlan, DataPage, DataQuery, DataRecord, DataResourceSurface, DataTransactionOperation, DataDecimalReservationTransition, DataTransactionRequest, DataTransactionResult, DataWhere, DirectoryEntry, DirectoryEntryPage, DirectoryResolveRequest, LabeledValue, NativeAuthorizationManagementCatalog, NativeAuthorizationMutationReceipt, NativeRoleManagementAction, NativeRoleManagementAuthority, NativeRoleManagementGrant, NativeRoleManagementGrantMutationResult, NativeRoleManagementGrantPage, NativeRoleMembership, NativeRoleMembershipMutationResult, NativeRoleMembershipPage, NativeScopeGrant, NotificationDeliveryV2, NotificationMessageDetailV2, NotificationReadReceiptV2, ResourceReferenceValue, RuntimeAuthorizationContext, RuntimeAuthorizationIdentity, StableAddressValue, StableLocationValue, SubjectProfile, WorkflowDetailNavigation, WorkflowBusinessData, WorkflowBusinessDataStatus, WorkflowCommandResult, WorkflowDetailSurfaceV2, WorkflowInstance, WorkflowSurface, WorkflowTask, WorkflowTimeline, WorkflowWorkCenterItem, } from 'openxiangda-contracts/browser';
|
|
4
|
+
export type { BusinessProcessCommand, BusinessProcessCommandQuery, BusinessProcessCommandList, DataAuditEntry, DataAuditPage, DataAggregateMeasureType, DataAggregatePage, DataAggregateQuery, DataBatchQueryItemResult, DataBatchQueryOperation, DataBatchQueryRequest, DataBatchQueryResult, DataExportRequest, DataFieldOption, DataFieldSourcePage, DataFieldSourceQuery, DataFieldSourceLaunchBinding, DataFieldSurface, DataFilePreview, DataFileRef, DataFileUploadPlan, DataFileDownloadSession, DataFileOutputRequest, DataFileOutputPlan, DataPage, DataQuery, DataRecord, DataResourceSurface, DataTransactionOperation, DataDecimalReservationTransition, DataTransactionRequest, DataTransactionResult, DataWhere, DirectoryEntry, DirectoryEntryPage, DirectoryResolveRequest, LabeledValue, NativeAuthorizationManagementCatalog, NativeAuthorizationMutationReceipt, NativeRoleManagementAction, NativeRoleManagementAuthority, NativeRoleManagementGrant, NativeRoleManagementGrantMutationResult, NativeRoleManagementGrantPage, NativeRoleMembership, NativeRoleMembershipMutationResult, NativeRoleMembershipPage, NativeScopeGrant, NativeRoleManagementScopeValuePage, WorkflowRoleReference, WorkflowRoleReferencePage, NotificationDeliveryV2, NotificationMessageDetailV2, NotificationReadReceiptV2, ResourceReferenceValue, RuntimeAuthorizationContext, RuntimeAuthorizationIdentity, StableAddressValue, StableLocationValue, SubjectProfile, WorkflowDetailNavigation, WorkflowBusinessData, WorkflowBusinessDataStatus, WorkflowCommandResult, WorkflowDetailSurfaceV2, WorkflowInstance, WorkflowSurface, WorkflowTask, WorkflowTaskDraft, WorkflowTaskDraftSave, WorkflowTaskDraftReference, WorkflowTaskDraftList, WorkflowTaskFileUpload, WorkflowTaskFileUploadPlan, WorkflowTimeline, WorkflowWorkCenterItem, } from 'openxiangda-contracts/browser';
|
|
5
5
|
export * from './browser/platform-client';
|
|
6
|
+
export type { WorkflowBusinessStepSummary, WorkflowBusinessStepRecoveryOptions, WorkflowBusinessStepRecoveryPreview } from 'openxiangda-contracts/browser';
|
|
6
7
|
export { formatWorkflowExpression, projectWorkflowGraph } from 'openxiangda-contracts/browser';
|
|
7
8
|
export type { WorkflowReadability, WorkflowGraphProjection, WorkflowGraphVariable, WorkflowGraphEdge, WorkflowGraphVisit, WorkflowGraphReadResult, WorkflowInstanceGraphReadResult } from 'openxiangda-contracts/browser';
|
|
8
9
|
export { WORKFLOW_CONFIGURABLE_OPERATIONS, WORKFLOW_CONFIGURABLE_PROVIDERS, validateWorkflowNodeConfigurationPatch, projectWorkflowNodePolicy } from 'openxiangda-contracts/browser';
|
|
9
10
|
export type { ApplicationAdministrationContext, WorkflowApprovalAdministration, WorkflowApprovalMode, WorkflowConfigurableOperation, WorkflowFieldPolicy, WorkflowNodeOperationPolicy, WorkflowNodeConfigurations, WorkflowNodeConfigurationPatch, WorkflowNodeConfigurationMutation, WorkflowNodeConfigurationReceipt } from 'openxiangda-contracts/browser';
|
|
11
|
+
export { validateWorkflowAssignmentRoutingRules } from 'openxiangda-contracts/browser';
|
|
12
|
+
export type { WorkflowAssignmentRoutingPolicy, WorkflowAssignmentRoutingRule, WorkflowAssignmentRoutingConfiguration, WorkflowAssignmentRoutingMutation, WorkflowAssignmentRoutingReceipt, WorkflowAssignmentRoutingCatalog, WorkflowAssignmentRoutingHistory } from 'openxiangda-contracts/browser';
|
|
13
|
+
export type { NativeRoleMembershipBatchInput, NativeRoleMembershipBatchItem, NativeRoleMembershipBatchResult, NativeRoleMembershipBatchItemResult, NativeRoleMembershipChange } from 'openxiangda-contracts/browser';
|
|
10
14
|
export * from './browser/runtime-meta';
|
|
11
15
|
export * from './browser/components/platform-fields/resource-query';
|
|
12
16
|
export type * from './browser/components/resource/generated-resource-definition';
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvG,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,oCAAoC,EACpC,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,uCAAuC,EACvC,6BAA6B,EAC7B,oBAAoB,EACpB,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAC1N,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrL,YAAY,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAC9V,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvG,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,oCAAoC,EACpC,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,uCAAuC,EACvC,6BAA6B,EAC7B,oBAAoB,EACpB,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,EAChB,kCAAkC,EAClC,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAC3J,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAC1N,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrL,YAAY,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAC9V,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AACvF,YAAY,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,sCAAsC,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACrS,YAAY,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,mCAAmC,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACrN,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
|
package/dist/core.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from './browser/managed-command';
|
|
|
3
3
|
export * from './browser/platform-client';
|
|
4
4
|
export { formatWorkflowExpression, projectWorkflowGraph } from 'openxiangda-contracts/browser';
|
|
5
5
|
export { WORKFLOW_CONFIGURABLE_OPERATIONS, WORKFLOW_CONFIGURABLE_PROVIDERS, validateWorkflowNodeConfigurationPatch, projectWorkflowNodePolicy } from 'openxiangda-contracts/browser';
|
|
6
|
+
export { validateWorkflowAssignmentRoutingRules } from 'openxiangda-contracts/browser';
|
|
6
7
|
export * from './browser/runtime-meta';
|
|
7
8
|
export * from './browser/components/platform-fields/resource-query';
|
|
8
9
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAgF1C,cAAc,2BAA2B,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE/F,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAErL,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AAGvF,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC"}
|
package/dist/nest.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* application-principal, Data API, runtime, event and bounded operation APIs.
|
|
6
6
|
*/
|
|
7
7
|
export { bootstrapOpenXiangdaApplication, OpenXiangdaModule, OpenXiangdaAuthzGuard, RequireCapability, OpenXiangdaOperation, CurrentPrincipal, CurrentUser, CurrentPerspective, currentUserFromVerifiedContext, currentUserFromPrincipal, CurrentApplicationPrincipal, OpenXiangdaDataApiService, OpenXiangdaBusinessDataApiService, OpenXiangdaBusinessDirectoryService, OpenXiangdaBusinessProcessService, OpenXiangdaWorkflowService, WorkflowAssigneeProvider, OpenXiangdaBusinessNotificationService, OpenXiangdaNotificationService, OpenXiangdaTodoService, OpenXiangdaLoggerService, OpenXiangdaPlatformError, OpenXiangdaApplicationDataApiService, OpenXiangdaApplicationCredentials, OpenXiangdaRuntimeLeaseService, OpenXiangdaRuntimeSecrets, OpenXiangdaStandardOperations, OpenXiangdaEventContext, OpenXiangdaEventHandler, OpenXiangdaManagedCommandHandler, OpenXiangdaEventRegistry, OpenXiangdaEventRetryableError, OpenXiangdaEventDeterministicError, eventSigningSecretsFromEnvironment, assertValidTimeInterval, databaseNowAssertion, idempotentTransaction, createDataTransaction, diagnoseDataTransaction, DataTransactionBuildError, bindOpenXiangdaResources, } from 'openxiangda-nest';
|
|
8
|
-
export type { AssignmentCandidatePage, AssignmentCandidateQuery, OpenXiangdaApplicationBootstrapOptions, OpenXiangdaModuleOptions, OpenXiangdaApplicationModuleOptions, OpenXiangdaOAuthClientOptions, OpenXiangdaFetch, OpenXiangdaLogFields, OpenXiangdaPlatformRequestDiagnostic, OpenXiangdaCurrentUser, OpenXiangdaServicePrincipal, OpenXiangdaConnectedDevelopmentStatus, OpenXiangdaDomainEventEmitInput, OpenXiangdaDomainEventEmitResult, OpenXiangdaBusinessActionContext, OpenXiangdaBusinessNotificationInput, OpenXiangdaBusinessProcessCommitInput, WorkflowAssigneeProviderHandler, OpenXiangdaEventBusinessNotificationInput, OpenXiangdaRuntimeLeaseState, OpenXiangdaEventHandlerContext, OpenXiangdaManagedCommandContext, OpenXiangdaManagedCommandPlanner, OpenXiangdaEventHandlerDeclaration, OpenXiangdaEventConsumer, TimeInterval, MeetingReservationOperationInput, CourseSelectionOperationInput, VisitorReservationOperationInput, OpenXiangdaResourceTypes, OpenXiangdaReadableRecord, OpenXiangdaResourceQuery, OpenXiangdaResourceRecord, OpenXiangdaBoundResource, } from 'openxiangda-nest';
|
|
8
|
+
export type { AssignmentCandidatePage, AssignmentCandidateQuery, OpenXiangdaApplicationBootstrapOptions, OpenXiangdaModuleOptions, OpenXiangdaApplicationModuleOptions, OpenXiangdaOAuthClientOptions, OpenXiangdaFetch, OpenXiangdaLogFields, OpenXiangdaPlatformRequestDiagnostic, OpenXiangdaCurrentUser, OpenXiangdaServicePrincipal, OpenXiangdaConnectedDevelopmentStatus, OpenXiangdaDomainEventEmitInput, OpenXiangdaDomainEventEmitResult, OpenXiangdaBusinessActionContext, OpenXiangdaBusinessNotificationInput, OpenXiangdaBusinessProcessCommitInput, WorkflowAssigneeProviderHandler, OpenXiangdaEventBusinessNotificationInput, OpenXiangdaRuntimeLeaseState, OpenXiangdaEventHandlerContext, OpenXiangdaManagedCommandContext, OpenXiangdaManagedCommandPlanner, OpenXiangdaEventHandlerDeclaration, OpenXiangdaEventConsumer, OpenXiangdaWorkflowEffectConsumer, TimeInterval, MeetingReservationOperationInput, CourseSelectionOperationInput, VisitorReservationOperationInput, OpenXiangdaResourceTypes, OpenXiangdaReadableRecord, OpenXiangdaResourceQuery, OpenXiangdaResourceRecord, OpenXiangdaBoundResource, } from 'openxiangda-nest';
|
|
9
9
|
export { OPENXIANGDA_NOTIFICATION_BUSINESS_SEND_V2, OPENXIANGDA_NOTIFICATION_EVENT_SEND_V2, } from 'openxiangda-contracts';
|
|
10
10
|
export { optionSnapshot, userSnapshot, departmentSnapshot, resourceSnapshot, isIdempotencyConflict, } from 'openxiangda-nest';
|
|
11
|
-
export type { ManagedCommandPlan, ManagedCommandPlanGuard, ManagedCommandAssertion } from 'openxiangda-contracts';
|
|
11
|
+
export type { ManagedCommandPlan, ManagedCommandPlanGuard, ManagedCommandAssertion, WorkflowBusinessStepOutput, WorkflowBusinessStepRequest } from 'openxiangda-contracts';
|
|
12
12
|
//# sourceMappingURL=nest.d.ts.map
|
package/dist/nest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest.d.ts","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,wBAAwB,EACxB,sCAAsC,EACtC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,sCAAsC,EACtC,wBAAwB,EACxB,mCAAmC,EACnC,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,oCAAoC,EACpC,sBAAsB,EACtB,2BAA2B,EAC3B,qCAAqC,EACrC,+BAA+B,EAC/B,gCAAgC,EAChC,gCAAgC,EAChC,oCAAoC,EACpC,qCAAqC,EACrC,+BAA+B,EAC/B,yCAAyC,EACzC,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,wBAAwB,EACxB,YAAY,EACZ,gCAAgC,EAChC,6BAA6B,EAC7B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yCAAyC,EACzC,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAC,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"nest.d.ts","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,wBAAwB,EACxB,sCAAsC,EACtC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,sCAAsC,EACtC,wBAAwB,EACxB,mCAAmC,EACnC,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,oCAAoC,EACpC,sBAAsB,EACtB,2BAA2B,EAC3B,qCAAqC,EACrC,+BAA+B,EAC/B,gCAAgC,EAChC,gCAAgC,EAChC,oCAAoC,EACpC,qCAAqC,EACrC,+BAA+B,EAC/B,yCAAyC,EACzC,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,wBAAwB,EACxB,iCAAiC,EACjC,YAAY,EACZ,gCAAgC,EAChC,6BAA6B,EAC7B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yCAAyC,EACzC,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,2BAA2B,EAAC,MAAM,uBAAuB,CAAC"}
|
package/dist/nest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest.js","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,wBAAwB,EACxB,sCAAsC,EACtC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nest.js","sourceRoot":"","sources":["../src/nest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,wBAAwB,EACxB,sCAAsC,EACtC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAwC1B,OAAO,EACL,yCAAyC,EACzC,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|
package/dist/react.d.ts
CHANGED
|
@@ -21,15 +21,21 @@ export * from './browser/admin-shell';
|
|
|
21
21
|
export * from './browser/resource-definitions';
|
|
22
22
|
export * from './browser/workflow-definitions';
|
|
23
23
|
export * from './browser/workflow-launch';
|
|
24
|
-
export { OpenXiangdaPlatformRequestError, platformRequestDiagnostic, type PlatformRequestContext, resolveBusinessProcessOriginal, createResourceFormDraftClient, createWorkflowFormDraftClient, type ResourceFormDraftWorkflowScope, type ResourceFormDraft, createAnonymousPublicClient, applicationFileIntentUrl, executeApplicationOperation, issueApplicationFileIntent, loadApplicationOperationSurfaces, loadSubjectReadSurface, logoutCurrentUser, type AnonymousPublicDraft, type AnonymousPublicRecord, } from './browser/platform-client';
|
|
25
|
-
export type { ApplicationOperationReceiptV2, ApplicationLogoutReceiptV2, ApplicationFileIntentV2, ApplicationOperationSurfaceCatalogV2, ApplicationOperationSurfaceV2, WorkflowCommandResult, } from 'openxiangda-contracts/browser';
|
|
24
|
+
export { OpenXiangdaPlatformRequestError, platformRequestDiagnostic, type PlatformRequestContext, resolveBusinessProcessOriginal, createResourceFormDraftClient, createWorkflowFormDraftClient, loadWorkflowTaskDrafts, saveWorkflowTaskDraft, removeWorkflowTaskDraft, initiateWorkflowTaskFileUpload, loadWorkflowTaskFileUploadPlan, completeWorkflowTaskFileUpload, type ResourceFormDraftWorkflowScope, type ResourceFormDraft, createAnonymousPublicClient, applicationFileIntentUrl, executeApplicationOperation, issueApplicationFileIntent, loadApplicationOperationSurfaces, loadSubjectReadSurface, logoutCurrentUser, type AnonymousPublicDraft, type AnonymousPublicRecord, } from './browser/platform-client';
|
|
25
|
+
export type { ApplicationOperationReceiptV2, ApplicationLogoutReceiptV2, ApplicationFileIntentV2, ApplicationOperationSurfaceCatalogV2, ApplicationOperationSurfaceV2, WorkflowCommandResult, WorkflowTaskDraft, WorkflowTaskDraftSave, WorkflowTaskDraftReference, WorkflowTaskDraftList, WorkflowTaskFileUpload, WorkflowTaskFileUploadPlan, } from 'openxiangda-contracts/browser';
|
|
26
26
|
export * from './browser/components/resource/GeneratedResourceCrud';
|
|
27
27
|
export * from './browser/components/resource/ResourceBatchActions';
|
|
28
28
|
export * from './browser/components/resource/StandardResourcePages';
|
|
29
29
|
export * from './browser/components/workflow/StandardWorkflowPages';
|
|
30
30
|
export * from './browser/components/workflow/WorkflowDiagram';
|
|
31
31
|
export * from './browser/components/workflow/WorkflowNodeConfigurationEditor';
|
|
32
|
+
export * from './browser/components/workflow/WorkflowAssignmentRoutingEditor';
|
|
33
|
+
export * from './browser/components/workflow/WorkflowAssignmentRoutingManager';
|
|
34
|
+
export * from './browser/components/workflow/WorkflowDelegationManager';
|
|
35
|
+
export { loadWorkflowDelegationCatalog, listWorkflowDelegations, loadWorkflowDelegation, listWorkflowDelegationCandidates, loadWorkflowDelegationMutationReceipt, previewWorkflowDelegationMutation, executeWorkflowDelegationMutation } from './browser/platform-client';
|
|
36
|
+
export * from './browser/components/administration/RoleMembershipManager';
|
|
32
37
|
export * from './browser/components/PlatformAvatar';
|
|
33
38
|
export * from './browser/components/todo/ApplicationTodoCenterPage';
|
|
34
39
|
export type * from './browser/components/resource/generated-resource-definition';
|
|
40
|
+
export * from "./browser/components/workflow/WorkflowBusinessStepRecoveryPanel";
|
|
35
41
|
//# sourceMappingURL=react.d.ts.map
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,oCAAoC,EACpC,6BAA6B,EAC7B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,oCAAoC,EACpC,6BAA6B,EAC7B,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,yDAAyD,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,qCAAqC,EAC9J,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC1G,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC;AAEjF,cAAc,iEAAiE,CAAC"}
|
package/dist/react.js
CHANGED
|
@@ -20,13 +20,19 @@ export * from './browser/admin-shell';
|
|
|
20
20
|
export * from './browser/resource-definitions';
|
|
21
21
|
export * from './browser/workflow-definitions';
|
|
22
22
|
export * from './browser/workflow-launch';
|
|
23
|
-
export { OpenXiangdaPlatformRequestError, platformRequestDiagnostic, resolveBusinessProcessOriginal, createResourceFormDraftClient, createWorkflowFormDraftClient, createAnonymousPublicClient, applicationFileIntentUrl, executeApplicationOperation, issueApplicationFileIntent, loadApplicationOperationSurfaces, loadSubjectReadSurface, logoutCurrentUser, } from './browser/platform-client';
|
|
23
|
+
export { OpenXiangdaPlatformRequestError, platformRequestDiagnostic, resolveBusinessProcessOriginal, createResourceFormDraftClient, createWorkflowFormDraftClient, loadWorkflowTaskDrafts, saveWorkflowTaskDraft, removeWorkflowTaskDraft, initiateWorkflowTaskFileUpload, loadWorkflowTaskFileUploadPlan, completeWorkflowTaskFileUpload, createAnonymousPublicClient, applicationFileIntentUrl, executeApplicationOperation, issueApplicationFileIntent, loadApplicationOperationSurfaces, loadSubjectReadSurface, logoutCurrentUser, } from './browser/platform-client';
|
|
24
24
|
export * from './browser/components/resource/GeneratedResourceCrud';
|
|
25
25
|
export * from './browser/components/resource/ResourceBatchActions';
|
|
26
26
|
export * from './browser/components/resource/StandardResourcePages';
|
|
27
27
|
export * from './browser/components/workflow/StandardWorkflowPages';
|
|
28
28
|
export * from './browser/components/workflow/WorkflowDiagram';
|
|
29
29
|
export * from './browser/components/workflow/WorkflowNodeConfigurationEditor';
|
|
30
|
+
export * from './browser/components/workflow/WorkflowAssignmentRoutingEditor';
|
|
31
|
+
export * from './browser/components/workflow/WorkflowAssignmentRoutingManager';
|
|
32
|
+
export * from './browser/components/workflow/WorkflowDelegationManager';
|
|
33
|
+
export { loadWorkflowDelegationCatalog, listWorkflowDelegations, loadWorkflowDelegation, listWorkflowDelegationCandidates, loadWorkflowDelegationMutationReceipt, previewWorkflowDelegationMutation, executeWorkflowDelegationMutation } from './browser/platform-client';
|
|
34
|
+
export * from './browser/components/administration/RoleMembershipManager';
|
|
30
35
|
export * from './browser/components/PlatformAvatar';
|
|
31
36
|
export * from './browser/components/todo/ApplicationTodoCenterPage';
|
|
37
|
+
export * from "./browser/components/workflow/WorkflowBusinessStepRecoveryPanel";
|
|
32
38
|
//# sourceMappingURL=react.js.map
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAG3E,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EAEzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAG3E,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EAEzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAG9B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AAenC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,yDAAyD,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,qCAAqC,EAC9J,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC1G,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AAGpE,cAAc,iEAAiE,CAAC"}
|
|
@@ -26,6 +26,97 @@ MCP 对应 `workflow_node_configurations`。workflowCode 来自当前应用声
|
|
|
26
26
|
|
|
27
27
|
成员和委托修改带 UUID operationId、原因,更新/撤销带最新 expectedRevision;冲突后重新读取。应用不另建授权表、选择 actor 或自行保存权限快照。SDK 和当前用户数据边界见[权限](./data-authz.md)。
|
|
28
28
|
|
|
29
|
+
### 批量核对与逐项回执
|
|
30
|
+
|
|
31
|
+
`listRoleMemberships` 支持 `dimensionCode` 与 `scopeValue` 成对精确筛选,和角色、人员、状态、关键词一起在服务端分页前过滤。管理授权仍按角色和动作委派;筛选某个学院不会额外授予该学院的维护权限。同步投影成员和系统认证成员继续只读。
|
|
32
|
+
|
|
33
|
+
平台 `authz.native-membership-batch@1.0.0` 自动提供批量能力。`previewRoleMembershipBatch` 与 `executeRoleMembershipBatch` 使用当前用户、当前挂载环境;一次 1–50 项,最多 128 KiB,整批只支持同一种新增、更新或撤销。每项保留自己的 UUID operationId 和原因;更新/撤销带读取时的 expectedRevision。同一批不能重复人员+角色、成员 ID 或 operationId。
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { listRoleMemberships, previewRoleMembershipBatch,
|
|
37
|
+
executeRoleMembershipBatch, type NativeRoleMembershipBatchItem } from 'openxiangda/core';
|
|
38
|
+
|
|
39
|
+
const page = await listRoleMemberships({ roleCode: 'college_reviewer',
|
|
40
|
+
dimensionCode: 'college', scopeValue: 'art', status: 'active', limit: 20, offset: 0 });
|
|
41
|
+
const items: NativeRoleMembershipBatchItem[] = page.items.filter(row => row.maintainable).map(row => ({
|
|
42
|
+
operation: 'update', operationId: crypto.randomUUID(), membershipId: row.id,
|
|
43
|
+
expectedRevision: row.revision, reason: '调整艺术学院审批职责有效期',
|
|
44
|
+
scopeGrants: row.scopeGrants, validFrom: row.validFrom, validTo: '2027-01-01T00:00:00.000Z',
|
|
45
|
+
}));
|
|
46
|
+
if (items.length) {
|
|
47
|
+
const proposal = await previewRoleMembershipBatch({ items });
|
|
48
|
+
// 页面向管理员展示 before/after;核对后显式提交完全相同的 items。
|
|
49
|
+
if (proposal.failed === 0 && proposal.unconfirmed === 0) {
|
|
50
|
+
const result = await executeRoleMembershipBatch({ items });
|
|
51
|
+
// 逐项读取 result.items,不把 HTTP 成功当成整批成功。
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
示例角色和范围必须已在本应用声明;页面将预览与执行放在两次明确操作中。更新是完整替换 scope 与有效期;省略 scope 会清空范围,省略时间会解除相应限制,因此只修改时间时也带回保留的 scope 与另一端时间。
|
|
57
|
+
|
|
58
|
+
预览在原授权内核验证后回滚所有 SQL,不保存成员、版本或回执,不失效授权缓存;单项差异超过 16 KiB 被拒绝。预览不是预留,执行时会重新检查人员、权限和 CAS。预览 `ready/already_committed` 只返回 before/after 的业务投影,没有临时成员 ID 或虚构回执。
|
|
59
|
+
|
|
60
|
+
执行每项独立事务、按顺序处理,允许部分成功。`committed/replayed` 返回原不可变回执;`failed` 是已确认拒绝;`unconfirmed` 表示结果未知,包括提交后缓存失效异常,不能认为没有提交。失败只返回脱敏的 code/status/pointer/retryable。保存原请求,使用 `loadAuthorizationMutationReceipt(operationId)` 核对,必要时显式重放相同 operationId 和 payload;修正已确认失败项的内容后使用新 operationId,不重发已成功项。网络中断也按未知结果处理。
|
|
61
|
+
|
|
62
|
+
成员维护影响后续授权和分派;已有任务保持进入时参与快照,实际办理资格仍实时核验。批量维护不隐式改派当前待办。
|
|
63
|
+
|
|
64
|
+
### 共享成员维护组件
|
|
65
|
+
|
|
66
|
+
标准管理入口与应用自定义工具页可复用 `RoleMembershipManager`,保留所在页面的 Shell 和入口授权:
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
import { RoleMembershipManager } from 'openxiangda/react';
|
|
70
|
+
|
|
71
|
+
export function ResponsibilityMembers() {
|
|
72
|
+
return <RoleMembershipManager initialRoleCode="college_reviewer" />;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`initialRoleCode` 只是初始筛选,必须来自本应用的角色声明,不授予管理权限。可选 `refreshKey` 变化时重新读取目录与成员。组件使用当前用户、当前挂载环境,按角色、人员关键词、状态和业务范围分页;同步投影及系统认证来源只读。
|
|
77
|
+
|
|
78
|
+
选择最多 50 位成员后调整某个范围维度或有效期,组件显式保留每位成员未修改的范围、操作上限和时间。预览逐项展示修改前后;提交后区分成功、拒绝及未知结果。冲突后保留输入,显式载入最新基准并重新核对;未知操作只能核对原回执或重试相同编号及请求。已核对成功项不会再次提交。组件支持窄屏布局、表格内部横滚、未保存关闭提示及保存中离开保护。
|
|
79
|
+
|
|
80
|
+
默认应用 Shell 在窄屏自动折叠侧边栏;宿主自定义 Shell 应给内容区保留可收缩宽度。成员读取失败显示重试状态,只有成功读取后的空结果才显示没有成员。核对或提交中禁用关闭、修改和再次提交按钮。
|
|
81
|
+
|
|
82
|
+
### 角色关联的潜在流程节点
|
|
83
|
+
|
|
84
|
+
`loadWorkflowRoleReferences(roleCode, { keyword, limit, offset })` 查询当前激活及在途固定版本中可能使用此角色的节点;平台自动提供 `workflow.role-references@1.0.0`。返回定义/绑定版本与摘要、配置修订、激活/在途上下文,并区分代码默认角色、节点配置覆盖和代码许可路由来源。许可来源不表示规则已经命中;这里的条数不是受影响待办数,也不会改派旧任务。
|
|
85
|
+
|
|
86
|
+
读取沿用原流程管理权限。仅获成员管理委托的用户可能可以维护角色,同时没有权限读取关联流程;组件单独呈现该拒绝。返回不含成员、实例标识或业务事实,每页最多 100 条;最多 1000 个版本组合、32 MiB 源 JSON、10000 节点/引用,超限明确拒绝。
|
|
87
|
+
|
|
88
|
+
管理范围检索使用 `listRoleManagementScopeValues(dimensionCode, { keyword, limit, offset })`,返回 `NativeRoleManagementScopeValuePage` 的 `id/label` 与 `limit/offset`。它使用 `openxiangda.native-role-management-scope-value-page/v2`,与 Data 字段选择器的 `value/label/cursor` 协议分开。权限仍要求对成员的分配或更新能力;只读权限不因此扩张。
|
|
89
|
+
|
|
90
|
+
## 限时审批代理 {#workflow-delegations}
|
|
91
|
+
|
|
92
|
+
平台自动提供 `workflow.delegation-management@1.0.0`,没有额外的默认关闭开关。本人只能委托自己的有效审批职责;代理人必须具有同角色、覆盖原范围且有效期覆盖整个代理窗口的成员身份。采用平台数据库时间与 `[开始, 结束)` 区间,禁止自己代理、重叠链和环。管理员可全应用查看和撤销,创建由原审批人本人完成;成员管理委托不会扩大后台或代理管理权。
|
|
93
|
+
|
|
94
|
+
标准管理入口、应用后台工具与门户个人页可复用 `WorkflowDelegationManager`。组件读取当前挂载应用和环境;`initialAll` 只是筛选意图,平台仍核验超管权限。宿主把草稿回调交给已有导航保护,避免切页时丢失输入或未知操作:
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
import { useState } from 'react';
|
|
98
|
+
import { WorkflowDelegationManager, useUnsavedChangesGuard,
|
|
99
|
+
type WorkflowDelegationDraftState } from 'openxiangda/react';
|
|
100
|
+
|
|
101
|
+
export function MyApprovalDelegations() {
|
|
102
|
+
const [draft, setDraft] = useState<WorkflowDelegationDraftState>({ dirty: false, busy: false, unknown: false });
|
|
103
|
+
useUnsavedChangesGuard({ when: draft.dirty || draft.busy || draft.unknown,
|
|
104
|
+
preventNavigation: draft.busy || draft.unknown,
|
|
105
|
+
message: draft.unknown ? '请先核对原操作回执。' : '代理维护尚未完成。' });
|
|
106
|
+
return <WorkflowDelegationManager onDraftStateChange={setDraft} />;
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
以上页面须位于原 `OpenXiangdaApplication` 路由内。独立平台Console使用自己的现有导航owner处理回调,不为组件新增Router。提交中或结果未知不能确认丢弃后离开;普通草稿可明确放弃。组件提供PC/窄屏列表、筛选、资格诊断、合法候选分页、核对/提交、撤销原因和回执恢复。
|
|
111
|
+
|
|
112
|
+
自定义页面使用 `openxiangda/core` 的 `loadWorkflowDelegationCatalog`、`listWorkflowDelegations`、`loadWorkflowDelegation`、`listWorkflowDelegationCandidates`、`previewWorkflowDelegationMutation`、`executeWorkflowDelegationMutation` 和 `loadWorkflowDelegationMutationReceipt`。列表默认20/最大100,候选默认20/最大50,搜索80字;本人职责目录最多100、流程标题最多200。创建请求带双方预期成员修订,撤销带规则 `expectedRevision`,均有UUID `operationId`、原因和绑定环境,请求最多16KiB;额外actor、权限或字段配置被拒绝。
|
|
113
|
+
|
|
114
|
+
预览完整回滚,不创建规则或回执;新规则提案id为null。核对后显式提交同一个请求,平台再检查当前权限和资格。规则与原回执同事务保存;同key同内容返回原回执,同key改内容或跨actor/应用/环境拒绝。首次明确4xx拒绝可保留输入、读新基准再核对;提交结果未知先查询原回执,404仍未知,允许用户显式重试原key及原请求,不能自动换key重发。`WORKFLOW_V2_DELEGATION_OPERATION_CONFLICT`、`SOURCE_REVISION_CONFLICT`和原owner的`REVISION_CONFLICT`等409都保持草稿;503不表示未提交。
|
|
115
|
+
|
|
116
|
+
回执保存提交时结果,当前状态以刷新列表的 `effectiveState/evaluatedAt/issues` 为准。创建和撤销只影响后续分派,已有任务保留进入时的原人/代理/职责/时间快照,办理仍复核资格;需要处理既有待办时使用显式任务修复操作。
|
|
117
|
+
|
|
118
|
+
Nest后端注入请求作用域的 `OpenXiangdaWorkflowService`,调用 `delegationCatalog/delegationManagement/delegationCandidates/delegationAdministration` 与 `previewDelegationMutation/executeDelegationMutation/delegationMutationReceipt`;它复用已验证当前用户,环境来自模块绑定。业务处理器不自报actor、不替别人代建授权,审批后代建属于单独受限合同。
|
|
119
|
+
|
|
29
120
|
## 可读流程图与实例路径 {#workflow-graph}
|
|
30
121
|
|
|
31
122
|
管理员在流程目录检索全部定义,查看指定版本的分支顺序、默认路径、变量类型/单位及来源。拓扑和条件由开发者发布;图和列表只用于查看。当前有效配置只叠加在匹配的激活定义上;历史实例使用固定定义和节点进入时的人员/配置,尚未执行的节点不计入执行路径。
|
|
@@ -67,7 +158,9 @@ export function ReadableWorkflow({ workflowCode, version }: {
|
|
|
67
158
|
|
|
68
159
|
开发者在审批节点的 `administration` 声明可维护的模式、人员来源和任务按钮。未声明这些项的节点保留名称、说明及原人员来源维护;拓扑、分支、范围计算仍由代码控制。使用新声明的应用需要平台 `workflow.node-administration@1.0.0`,编译与激活均检查该能力。
|
|
69
160
|
|
|
70
|
-
模式为 `single/any/all/sequence`
|
|
161
|
+
模式为 `single/any/all/sequence` 的允许子集;可维护来源限 `fixed_users/app_role/app_role_in_scope`,范围角色必须已有代码声明的 scope。按钮 code 保持同意、拒绝、退回、转交、委托、加签的稳定语义;同意和拒绝不能关闭。只有同意/拒绝支持意见规则,拒绝或代码已有必填意见不能放宽。字段显隐、填写与必填行为由应用页面和代码维护,不提供流程节点的字段管理覆盖。可编译声明见 `examples/workflow-administration/declaration.ts`。
|
|
162
|
+
|
|
163
|
+
自动抄送节点仅开放名称、说明和显式声明的 `administration.assigneeProviders`;未开放时接收来源只读。共享编辑器显示“抄送人”,不显示审批方式或审批按钮,固定名单最多20人。`next`、空人策略和通知策略仍归代码;新配置只影响以后进入,过去抄送名单保持冻结。完整例子见 `examples/workflow-administration/automatic-cc.ts`,执行及读取边界见[自动抄送](./workflow-events.md#automatic-cc)。
|
|
71
164
|
|
|
72
165
|
应用自定义管理页可使用 `WorkflowNodeConfigurationEditor`(`openxiangda/react`),输入同一读面中的节点、principals 和 context.headRevision,放在平台 App/UI 作用域内。它复用下列当前用户 SDK:
|
|
73
166
|
|
|
@@ -88,3 +181,37 @@ await saveWorkflowNodeConfiguration('requests', node.nodeId, {
|
|
|
88
181
|
只有已声明允许 all 的节点可保存此例。输入最多 32KiB,人员 200、按钮文字 40 字。用 `patch: null` 恢复默认,也产生审计修订。结果未知时保留相同 operationId 和完整请求,查询后重试相同操作;确认的修订/Head 冲突先重新读取,不能覆盖别人。共享编辑器按审批人、审批按钮、名称与说明分组,显示配置来源、修订与生效范围;切组保留草稿,校验失败定位到相应分组。在冲突时保留草稿,加载最新基准后再次显式保存。
|
|
89
182
|
|
|
90
183
|
新配置影响以后进入的节点,当前待办保留进入时模式、人员、按钮和必填意见;实时人员资格仍复核。含新增配置或快照的环境不能直接回退到忽略策略的旧服务器。
|
|
184
|
+
|
|
185
|
+
## 审批人通用与专项路由 {#assignment-routing}
|
|
186
|
+
|
|
187
|
+
在 binding entry 的 `routing` 声明稳定策略代码、匹配维度及其事实路径,以及具名应用角色/范围角色来源。声明例子见 `examples/workflow-administration/routing.ts`。平台 `workflow.assignment-routing@1.0.0` 随 V2 内核提供,编译及目标平台检查自动校验;无路由声明时沿用原人员解析。成员继续在原生角色管理维护,无需再建审批人员表。字段行为、分支和范围计算由应用代码维护。
|
|
188
|
+
|
|
189
|
+
打包和目标预检自动将含 `routing` 的 binding 纳入该能力的使用摘要,与平台编译结果严格对齐;无需应用手工填写能力清单或额外开启开关。
|
|
190
|
+
|
|
191
|
+
标准管理页的“流程定义 / 审批人路由”提供策略检索、规则维护和分页历史。应用工具页可直接嵌入 `WorkflowAssignmentRoutingManager`(`openxiangda/react`);单策略编辑可使用 `WorkflowAssignmentRoutingEditor`。放在现有 App/UI 作用域内,保留后台路由和入口权限。读写都使用当前用户及当前挂载环境,首版与节点配置一样要求应用 superAdmin,角色维护委派不授予路由管理权。
|
|
192
|
+
|
|
193
|
+
规则核对只计算内容变化,打开规则表单后原样加入草稿不会产生多余修改。发生修订冲突时载入最新基准并保留整组草稿,再逐项核对;这个操作不会自动合并其他管理员的修改。窄屏工具栏允许换行,表格在内部滚动,规则表单按单列显示。
|
|
194
|
+
|
|
195
|
+
```tsx
|
|
196
|
+
import { WorkflowAssignmentRoutingManager } from 'openxiangda/react';
|
|
197
|
+
export function RoutingPage() { return <WorkflowAssignmentRoutingManager />; }
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
```ts
|
|
201
|
+
import { loadWorkflowAssignmentRoutingConfiguration, saveWorkflowAssignmentRoutingConfiguration,
|
|
202
|
+
loadWorkflowAssignmentRoutingCatalog, loadWorkflowAssignmentRoutingHistory } from 'openxiangda/core';
|
|
203
|
+
|
|
204
|
+
const catalog = await loadWorkflowAssignmentRoutingCatalog({ keyword: '学院', limit: 20, offset: 0 });
|
|
205
|
+
const current = await loadWorkflowAssignmentRoutingConfiguration('college-review');
|
|
206
|
+
await saveWorkflowAssignmentRoutingConfiguration(current.policy.policyCode, {
|
|
207
|
+
expectedHeadRevision: current.headRevision, expectedRevision: current.revision,
|
|
208
|
+
operationId: crypto.randomUUID(), reason: '增加学院补充审批职责',
|
|
209
|
+
rules: [{ ruleCode: 'art-extra', title: '艺术学院补充', enabled: true,
|
|
210
|
+
matches: { college: ['art'] }, sourceCode: 'extra', effect: 'append', priority: 0 }],
|
|
211
|
+
});
|
|
212
|
+
const history = await loadWorkflowAssignmentRoutingHistory('college-review', { limit: 10, offset: 0 });
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
保存的是整组规则,最多 256 条/256 KiB;最多 8 个维度、16 个来源,每维度 64 个匹配值。维度间同时满足、值内任意匹配,空 matches 为通用。可限定流程和审批节点,节点须带流程代码。时间为 `[validFrom,validTo)`。唯一最高优先级替换优先,`replace_then_append` 随后追加,`replace_only` 命中替换时忽略追加;没有替换时均采用默认来源再追加。追加按优先级降序、通用先专项、稳定代码排序,同来源同次只解析一次。
|
|
216
|
+
|
|
217
|
+
64 条以上规则同时命中、最高替换同级冲突、缺少事实、替换无人或候选越界都会明确阻塞,不自动通过或隐式兜底。预览和执行复用同一解析器;任务冻结规则修订和分派,管理员调整只影响未来进入。修改与发布使用同一环境锁,CAS 冲突重新读取基准、保留草稿并核对前后差异;未知结果保留完整原请求及 operationId 后显式重试。清空 rules 也产生修订和审计。发布不得改变在途同名策略语义,即便尚无补充规则;非空规则引用的来源和节点必须保留。
|
|
@@ -65,6 +65,8 @@ capability、应用角色和数据策略。前端只根据当前登录用户完
|
|
|
65
65
|
`roleManagement` 投影显示,但前端显示不能替代服务端复核。不要在应用中复制角色表、
|
|
66
66
|
权限表或通过 NestJS 转发开发者凭据。
|
|
67
67
|
|
|
68
|
+
通用职责成员维护可直接嵌入 `openxiangda/react` 的 `RoleMembershipManager`,复用角色/范围筛选、批量差异核对、逐项回执及原操作恢复。页面保持原路由和入口权限,组件按当前用户目录显示动作,服务端逐项复核;详见[共享成员维护](./administration.md#共享成员维护组件)。
|
|
69
|
+
|
|
68
70
|
列表查询必须使用服务端过滤、排序和分页;新增、读取、更新、删除和文件上传都经过
|
|
69
71
|
可替换 Data API adapter。不要调用自定义 Nest CRUD、Function 或 Workflow 来绕过
|
|
70
72
|
Data API。只有真正需要事务或外部系统的动作才使用同源 `/api`。
|