@cohesivesystems/presentation-core 0.1.0-alpha.7 → 0.1.0-alpha.70
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/process-task-model.d.ts +55 -3
- package/dist/process-task-model.d.ts.map +1 -1
- package/dist/process-task-model.js +71 -8
- package/dist/process-task-model.js.map +1 -1
- package/dist/process-task-projection.d.ts +3 -2
- package/dist/process-task-projection.d.ts.map +1 -1
- package/dist/process-task-projection.js +10 -2
- package/dist/process-task-projection.js.map +1 -1
- package/package.json +2 -2
- package/src/process-task-model.ts +112 -10
- package/src/process-task-projection.ts +13 -0
|
@@ -1,8 +1,49 @@
|
|
|
1
1
|
export type ProcessTaskType = string;
|
|
2
|
-
export type ProcessLifecycleStatus = 'pending' | 'running' | 'waiting' | 'success' | 'error' | 'paused';
|
|
3
2
|
export type ProcessTaskMetadataSelector = Partial<{
|
|
4
3
|
readonly [K in keyof ProcessTaskMetadata]: ProcessTaskMetadata[K];
|
|
5
4
|
}>;
|
|
5
|
+
/**
|
|
6
|
+
* Stable diagnostic identifiers emitted while projecting declared Process
|
|
7
|
+
* lifecycle evidence into a presentation task.
|
|
8
|
+
*
|
|
9
|
+
* These codes describe the completeness and internal consistency of evidence;
|
|
10
|
+
* they are not a parallel catalog of canonical Process statuses.
|
|
11
|
+
*/
|
|
12
|
+
export declare const processTaskLifecycleDiagnosticCodes: {
|
|
13
|
+
readonly activeAndTerminal: "process.task.lifecycle.active-and-terminal";
|
|
14
|
+
readonly failureWhileNonTerminal: "process.task.lifecycle.failure-while-non-terminal";
|
|
15
|
+
readonly incomplete: "process.task.lifecycle.incomplete";
|
|
16
|
+
readonly notDisclosed: "process.task.lifecycle.not-disclosed";
|
|
17
|
+
readonly optimisticStart: "process.task.lifecycle.optimistic-start";
|
|
18
|
+
readonly progressingWhileInactive: "process.task.lifecycle.progressing-while-inactive";
|
|
19
|
+
readonly terminalAndProgressing: "process.task.lifecycle.terminal-and-progressing";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Runtime- or backend-declared lifecycle evidence used by generic Process task
|
|
23
|
+
* presentation. Null means that the authority did not establish the fact.
|
|
24
|
+
*/
|
|
25
|
+
export interface ProcessTaskLifecycleDeclaration {
|
|
26
|
+
readonly diagnosticCodes?: readonly string[] | null;
|
|
27
|
+
readonly isActive?: boolean | null;
|
|
28
|
+
readonly isFailure?: boolean | null;
|
|
29
|
+
readonly isProgressing?: boolean | null;
|
|
30
|
+
readonly isTerminal?: boolean | null;
|
|
31
|
+
readonly tone?: string | null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Normalized lifecycle evidence retained on a Process task.
|
|
35
|
+
*
|
|
36
|
+
* Presentation runtimes consume these declared facts without interpreting
|
|
37
|
+
* status strings, timestamps, labels, failure text, or target-specific enums.
|
|
38
|
+
*/
|
|
39
|
+
export interface ProcessTaskLifecycle {
|
|
40
|
+
readonly diagnosticCodes: readonly string[];
|
|
41
|
+
readonly isActive: boolean | null;
|
|
42
|
+
readonly isFailure: boolean | null;
|
|
43
|
+
readonly isProgressing: boolean | null;
|
|
44
|
+
readonly isTerminal: boolean | null;
|
|
45
|
+
readonly tone: string | null;
|
|
46
|
+
}
|
|
6
47
|
export interface ProcessTaskMetadata {
|
|
7
48
|
readonly correlationId?: string | null;
|
|
8
49
|
readonly ediSpecId?: string | null;
|
|
@@ -19,7 +60,7 @@ export interface ProcessTask {
|
|
|
19
60
|
readonly title: string;
|
|
20
61
|
readonly status: string;
|
|
21
62
|
readonly statusLabel: string;
|
|
22
|
-
readonly
|
|
63
|
+
readonly lifecycle: ProcessTaskLifecycle;
|
|
23
64
|
readonly startedAtUtc?: string | null;
|
|
24
65
|
readonly updatedAtUtc?: string | null;
|
|
25
66
|
readonly completedAtUtc?: string | null;
|
|
@@ -46,6 +87,7 @@ export interface ProcessTaskStartRegistration {
|
|
|
46
87
|
readonly detailsHref?: string | null;
|
|
47
88
|
readonly failureMessage?: string | null;
|
|
48
89
|
readonly invalidateQueryKeys?: readonly (readonly unknown[])[];
|
|
90
|
+
readonly lifecycle: ProcessTaskLifecycle;
|
|
49
91
|
readonly metadata?: ProcessTaskMetadata;
|
|
50
92
|
readonly processId: string;
|
|
51
93
|
readonly processName?: string | null;
|
|
@@ -73,8 +115,18 @@ export interface ProcessTaskToast {
|
|
|
73
115
|
readonly createdAt: number;
|
|
74
116
|
}
|
|
75
117
|
export declare function isProcessTaskTerminal(task: ProcessTask): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Returns whether a task may still be active according to declared lifecycle
|
|
120
|
+
* evidence. Unknown evidence remains potentially active so an active-only
|
|
121
|
+
* admission check cannot accidentally admit a duplicate Process start.
|
|
122
|
+
*/
|
|
123
|
+
export declare function isProcessTaskPotentiallyActive(task: ProcessTask): boolean;
|
|
76
124
|
export declare function findProcessTask(tasks: readonly ProcessTask[], selector: ProcessTaskSelector): ProcessTask;
|
|
77
125
|
export declare function findProcessTasks(tasks: readonly ProcessTask[], selector: ProcessTaskSelector): ProcessTask[];
|
|
78
126
|
export declare function matchesProcessTaskSelector(task: ProcessTask, selector: ProcessTaskSelector): boolean;
|
|
79
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Normalizes target-declared lifecycle evidence and records incomplete or
|
|
129
|
+
* contradictory facts without changing their meaning.
|
|
130
|
+
*/
|
|
131
|
+
export declare function createProcessTaskLifecycle(declaration?: ProcessTaskLifecycleDeclaration | null): ProcessTaskLifecycle;
|
|
80
132
|
//# sourceMappingURL=process-task-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-task-model.d.ts","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAA;AACpC,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"process-task-model.d.ts","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable diagnostic identifiers emitted while projecting declared Process
|
|
3
|
+
* lifecycle evidence into a presentation task.
|
|
4
|
+
*
|
|
5
|
+
* These codes describe the completeness and internal consistency of evidence;
|
|
6
|
+
* they are not a parallel catalog of canonical Process statuses.
|
|
7
|
+
*/
|
|
8
|
+
export const processTaskLifecycleDiagnosticCodes = {
|
|
9
|
+
activeAndTerminal: 'process.task.lifecycle.active-and-terminal',
|
|
10
|
+
failureWhileNonTerminal: 'process.task.lifecycle.failure-while-non-terminal',
|
|
11
|
+
incomplete: 'process.task.lifecycle.incomplete',
|
|
12
|
+
notDisclosed: 'process.task.lifecycle.not-disclosed',
|
|
13
|
+
optimisticStart: 'process.task.lifecycle.optimistic-start',
|
|
14
|
+
progressingWhileInactive: 'process.task.lifecycle.progressing-while-inactive',
|
|
15
|
+
terminalAndProgressing: 'process.task.lifecycle.terminal-and-progressing',
|
|
16
|
+
};
|
|
1
17
|
export function isProcessTaskTerminal(task) {
|
|
2
|
-
return
|
|
18
|
+
return task.lifecycle.isTerminal === true &&
|
|
19
|
+
task.lifecycle.isActive === false &&
|
|
20
|
+
task.lifecycle.isProgressing === false;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns whether a task may still be active according to declared lifecycle
|
|
24
|
+
* evidence. Unknown evidence remains potentially active so an active-only
|
|
25
|
+
* admission check cannot accidentally admit a duplicate Process start.
|
|
26
|
+
*/
|
|
27
|
+
export function isProcessTaskPotentiallyActive(task) {
|
|
28
|
+
return !isProcessTaskTerminal(task);
|
|
3
29
|
}
|
|
4
30
|
export function findProcessTask(tasks, selector) {
|
|
5
31
|
return findProcessTasks(tasks, selector)[0] ?? null;
|
|
@@ -8,7 +34,7 @@ export function findProcessTasks(tasks, selector) {
|
|
|
8
34
|
return tasks.filter((task) => matchesProcessTaskSelector(task, selector));
|
|
9
35
|
}
|
|
10
36
|
export function matchesProcessTaskSelector(task, selector) {
|
|
11
|
-
if (selector.activeOnly &&
|
|
37
|
+
if (selector.activeOnly && !isProcessTaskPotentiallyActive(task)) {
|
|
12
38
|
return false;
|
|
13
39
|
}
|
|
14
40
|
if (selector.processType && task.type !== selector.processType) {
|
|
@@ -16,14 +42,51 @@ export function matchesProcessTaskSelector(task, selector) {
|
|
|
16
42
|
}
|
|
17
43
|
return matchesProcessTaskMetadataSelector(task.metadata, selector.metadata);
|
|
18
44
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Normalizes target-declared lifecycle evidence and records incomplete or
|
|
47
|
+
* contradictory facts without changing their meaning.
|
|
48
|
+
*/
|
|
49
|
+
export function createProcessTaskLifecycle(declaration) {
|
|
50
|
+
if (!declaration) {
|
|
51
|
+
return {
|
|
52
|
+
diagnosticCodes: [processTaskLifecycleDiagnosticCodes.notDisclosed],
|
|
53
|
+
isActive: null,
|
|
54
|
+
isFailure: null,
|
|
55
|
+
isProgressing: null,
|
|
56
|
+
isTerminal: null,
|
|
57
|
+
tone: null,
|
|
58
|
+
};
|
|
22
59
|
}
|
|
23
|
-
|
|
24
|
-
|
|
60
|
+
const lifecycle = {
|
|
61
|
+
isActive: declaration.isActive ?? null,
|
|
62
|
+
isFailure: declaration.isFailure ?? null,
|
|
63
|
+
isProgressing: declaration.isProgressing ?? null,
|
|
64
|
+
isTerminal: declaration.isTerminal ?? null,
|
|
65
|
+
tone: declaration.tone ?? null,
|
|
66
|
+
};
|
|
67
|
+
const diagnosticCodes = new Set(declaration.diagnosticCodes ?? []);
|
|
68
|
+
if (lifecycle.isActive === null ||
|
|
69
|
+
lifecycle.isFailure === null ||
|
|
70
|
+
lifecycle.isProgressing === null ||
|
|
71
|
+
lifecycle.isTerminal === null) {
|
|
72
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.incomplete);
|
|
73
|
+
}
|
|
74
|
+
if (lifecycle.isActive === true && lifecycle.isTerminal === true) {
|
|
75
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.activeAndTerminal);
|
|
76
|
+
}
|
|
77
|
+
if (lifecycle.isFailure === true && lifecycle.isTerminal === false) {
|
|
78
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.failureWhileNonTerminal);
|
|
79
|
+
}
|
|
80
|
+
if (lifecycle.isProgressing === true && lifecycle.isActive === false) {
|
|
81
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.progressingWhileInactive);
|
|
82
|
+
}
|
|
83
|
+
if (lifecycle.isProgressing === true && lifecycle.isTerminal === true) {
|
|
84
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.terminalAndProgressing);
|
|
25
85
|
}
|
|
26
|
-
return
|
|
86
|
+
return {
|
|
87
|
+
...lifecycle,
|
|
88
|
+
diagnosticCodes: Array.from(diagnosticCodes),
|
|
89
|
+
};
|
|
27
90
|
}
|
|
28
91
|
function matchesProcessTaskMetadataSelector(metadata, selector) {
|
|
29
92
|
if (!selector) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-task-model.js","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process-task-model.js","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PresentationNavigationHrefFactory } from './navigation.js';
|
|
2
2
|
import type { ActionDefinition, ProcessTaskSelectorDefinition } from './module.js';
|
|
3
|
-
import { type ProcessTask, type ProcessTaskMetadata, type ProcessTaskSelector, type ProcessTaskStartRegistration } from './process-task-model.js';
|
|
3
|
+
import { type ProcessTask, type ProcessTaskLifecycleDeclaration, type ProcessTaskMetadata, type ProcessTaskSelector, type ProcessTaskStartRegistration } from './process-task-model.js';
|
|
4
4
|
export interface ProjectProcessTaskActionEnablementOptions<TContext> {
|
|
5
5
|
readonly action: ActionDefinition | null | undefined;
|
|
6
6
|
readonly context: TContext;
|
|
@@ -22,6 +22,7 @@ export interface ProjectProcessTaskStartRegistrationOptions {
|
|
|
22
22
|
readonly detailsHref?: string | null;
|
|
23
23
|
readonly failureMessage?: string | null;
|
|
24
24
|
readonly invalidateQueryKeys?: readonly (readonly unknown[])[];
|
|
25
|
+
readonly lifecycle?: ProcessTaskLifecycleDeclaration | null;
|
|
25
26
|
readonly metadata?: ProcessTaskMetadata;
|
|
26
27
|
readonly processTypeLabel?: string | null;
|
|
27
28
|
readonly processTypeTone?: string | null;
|
|
@@ -42,5 +43,5 @@ export interface ProjectProcessTaskStartRegistrationOptions {
|
|
|
42
43
|
*/
|
|
43
44
|
export declare function projectProcessTaskActionEnablement<TContext>({ action, context, findActiveTask, projectSelector, selectors, }: ProjectProcessTaskActionEnablementOptions<TContext>): ProjectedProcessTaskActionEnablement;
|
|
44
45
|
export declare function projectProcessTaskSelector<TContext>(selector: ProcessTaskSelectorDefinition | null | undefined, context: TContext): ProcessTaskSelector | null;
|
|
45
|
-
export declare function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context, detailsHref, failureMessage, invalidateQueryKeys, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }: ProjectProcessTaskStartRegistrationOptions): ProcessTaskStartRegistration | null;
|
|
46
|
+
export declare function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context, detailsHref, failureMessage, invalidateQueryKeys, lifecycle, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }: ProjectProcessTaskStartRegistrationOptions): ProcessTaskStartRegistration | null;
|
|
46
47
|
//# sourceMappingURL=process-task-projection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-task-projection.d.ts","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iCAAiC,EAClC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,6BAA6B,EAC9B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"process-task-projection.d.ts","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {} from './process-task-model.js';
|
|
1
|
+
import { createProcessTaskLifecycle, processTaskLifecycleDiagnosticCodes, } from './process-task-model.js';
|
|
2
2
|
import { createPresentationEnumDiscriminator, matchesPresentationEnum, } from './target-bindings.js';
|
|
3
3
|
import { actionEnablementCriterionKinds, } from '@cohesivesystems/presentation-contracts';
|
|
4
4
|
/**
|
|
@@ -51,7 +51,7 @@ export function projectProcessTaskSelector(selector, context) {
|
|
|
51
51
|
processType: selector.ProcessType,
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
export function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context = {}, detailsHref, failureMessage, invalidateQueryKeys, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }) {
|
|
54
|
+
export function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context = {}, detailsHref, failureMessage, invalidateQueryKeys, lifecycle, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }) {
|
|
55
55
|
const processId = readStringPath(result, 'ProcessId') ?? readStringPath(result, 'processId');
|
|
56
56
|
if (!processId) {
|
|
57
57
|
return null;
|
|
@@ -69,6 +69,14 @@ export function projectProcessTaskStartRegistration({ action, createHref, dataSo
|
|
|
69
69
|
detailsHref: detailsHref ?? projectActionResultHref({ action, createHref, result }),
|
|
70
70
|
failureMessage,
|
|
71
71
|
invalidateQueryKeys: invalidateQueryKeys ?? actionInvalidateQueryKeys,
|
|
72
|
+
lifecycle: createProcessTaskLifecycle(lifecycle ?? {
|
|
73
|
+
diagnosticCodes: [processTaskLifecycleDiagnosticCodes.optimisticStart],
|
|
74
|
+
isActive: true,
|
|
75
|
+
isFailure: false,
|
|
76
|
+
isProgressing: true,
|
|
77
|
+
isTerminal: false,
|
|
78
|
+
tone: 'info',
|
|
79
|
+
}),
|
|
72
80
|
metadata: {
|
|
73
81
|
...selectorMetadata,
|
|
74
82
|
...readConventionalProcessTaskMetadata(result),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-task-projection.js","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"process-task-projection.js","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,0BAA0B,EAC1B,mCAAmC,GAKpC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,mCAAmC,EACnC,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,8BAA8B,GAC/B,MAAM,yCAAyC,CAAA;AA+ChD;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAAW,EAC3D,MAAM,EACN,OAAO,EACP,cAAc,EACd,eAAe,GAAG,0BAA0B,EAC5C,SAAS,GAC2C;IACpD,IAAI,aAAa,GAAyC,IAAI,CAAA;IAE9D,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QACjD,IACE,CAAC,uBAAuB,CACtB,SAAS,CAAC,IAAI,EACd,gCAAgC,CACjC;YACD,CAAC,SAAS,CAAC,qBAAqB,EAChC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CACvC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,qBAAqB,CAC9D,IAAI,IAAI,CAAA;QACT,aAAa,KAAK,kBAAkB,CAAA;QACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,UAAU;gBACV,mBAAmB,EAAE,SAAS,CAAC,EAAE;gBACjC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI;gBAC5C,QAAQ,EAAE,kBAAkB;aAC7B,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,aAAa;KACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA0D,EAC1D,OAAiB;IAEjB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,EAClD,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,OAAO,GAAG,EAAE,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,2BAA2B,GACgB;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ;QAC/B,CAAC,CAAC,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvD,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,SAAS,CAAA;IAC/F,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;QACnE,MAAM;QACN,kBAAkB;KACnB,CAAC,CAAA;IACF,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACxD,WAAW,EAAE,WAAW,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACnF,cAAc;QACd,mBAAmB,EAAE,mBAAmB,IAAI,yBAAyB;QACrE,SAAS,EAAE,0BAA0B,CAAC,SAAS,IAAI;YACjD,eAAe,EAAE,CAAC,mCAAmC,CAAC,eAAe,CAAC;YACtE,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;QACF,QAAQ,EAAE;YACR,GAAG,gBAAgB;YACnB,GAAG,mCAAmC,CAAC,MAAM,CAAC;YAC9C,GAAG,QAAQ;SACZ;QACD,SAAS;QACT,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;QAClD,WAAW;QACX,gBAAgB,EAAE,gBAAgB,IAAI,sBAAsB,CAAC,WAAW,CAAC;QACzE,eAAe;QACf,UAAU;QACV,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;QACpD,YAAY;QACZ,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxC,UAAU;QACV,2BAA2B,EAAE,2BAA2B,IAAI,yBAAyB;QACrF,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;KACrD,CAAA;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,EAC1C,MAAM,EACN,kBAAkB,GAInB;IACC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,uBAAuB,IAAI,EAAE,CAAA;IACnE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,MAAM,GAKP;IACC,MAAM,OAAO,GAAG,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAA;IACjD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,EAAE,mCAAmC,CAAC,MAAM,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3E,CAAC,CAAC,MAA2C;QAC7C,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,UAAU,GAA8B,EAAE,CAAA;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACvB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YAC5B,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;YAClC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;YACnC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;YACtC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAErC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,kCAAkC,CACzC,QAAuC,EACvC,OAAiB;IAEjB,MAAM,QAAQ,GAA6E,EAAE,CAAA;IAC7F,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK,CAAA;IAC/B,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAe;IAC1D,OAAO;QACL,aAAa,EAAE,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC;QACtD,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;QAC9C,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;QAC1C,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;QAC5C,aAAa,EAAE,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC;QAC3D,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;KACrD,CAAA;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,cAAc,GAAG,WAAW,CAAA;IAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACzD,OAAO,6BAA6B,CAAC,GAAG,CAAC,WAA2C,CAAC;QACnF,CAAC,CAAE,WAA4C;QAC/C,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAgB,EAChB,SAAiB;IAEjB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC9C;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe,EAAE,IAAY;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC5F,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,IAAY;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC1D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAkC,CAAA;QACjD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACpC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,OAAO,CAAC,iBAAiB,EAAE,CACjE,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1C,CAAC,EAAE,MAAM,CAAC,CAAA;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,WAAW;SACf,KAAK,CAAC,SAAS,CAAC;SAChB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnB,KAAK,KAAK,CAAC;QACT,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3D,CAAC,CAAC,IAAI,CACT;SACA,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,gCAAgC,GAAG,mCAAmC,CAC1E,8BAA8B,EAC9B,qBAAqB,EACrB,qBAAqB,CACtB,CAAA;AAED,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAA+B;IAC1E,eAAe;IACf,WAAW;IACX,MAAM;IACN,SAAS;IACT,UAAU;IACV,cAAc;CACf,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cohesivesystems/presentation-core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.70",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"!src/**/*.test.tsx"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cohesivesystems/presentation-contracts": "0.1.0-alpha.
|
|
20
|
+
"@cohesivesystems/presentation-contracts": "0.1.0-alpha.70"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^24.12.0",
|
|
@@ -1,9 +1,53 @@
|
|
|
1
1
|
export type ProcessTaskType = string
|
|
2
|
-
export type ProcessLifecycleStatus = 'pending' | 'running' | 'waiting' | 'success' | 'error' | 'paused'
|
|
3
2
|
export type ProcessTaskMetadataSelector = Partial<{
|
|
4
3
|
readonly [K in keyof ProcessTaskMetadata]: ProcessTaskMetadata[K]
|
|
5
4
|
}>
|
|
6
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Stable diagnostic identifiers emitted while projecting declared Process
|
|
8
|
+
* lifecycle evidence into a presentation task.
|
|
9
|
+
*
|
|
10
|
+
* These codes describe the completeness and internal consistency of evidence;
|
|
11
|
+
* they are not a parallel catalog of canonical Process statuses.
|
|
12
|
+
*/
|
|
13
|
+
export const processTaskLifecycleDiagnosticCodes = {
|
|
14
|
+
activeAndTerminal: 'process.task.lifecycle.active-and-terminal',
|
|
15
|
+
failureWhileNonTerminal: 'process.task.lifecycle.failure-while-non-terminal',
|
|
16
|
+
incomplete: 'process.task.lifecycle.incomplete',
|
|
17
|
+
notDisclosed: 'process.task.lifecycle.not-disclosed',
|
|
18
|
+
optimisticStart: 'process.task.lifecycle.optimistic-start',
|
|
19
|
+
progressingWhileInactive: 'process.task.lifecycle.progressing-while-inactive',
|
|
20
|
+
terminalAndProgressing: 'process.task.lifecycle.terminal-and-progressing',
|
|
21
|
+
} as const
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Runtime- or backend-declared lifecycle evidence used by generic Process task
|
|
25
|
+
* presentation. Null means that the authority did not establish the fact.
|
|
26
|
+
*/
|
|
27
|
+
export interface ProcessTaskLifecycleDeclaration {
|
|
28
|
+
readonly diagnosticCodes?: readonly string[] | null
|
|
29
|
+
readonly isActive?: boolean | null
|
|
30
|
+
readonly isFailure?: boolean | null
|
|
31
|
+
readonly isProgressing?: boolean | null
|
|
32
|
+
readonly isTerminal?: boolean | null
|
|
33
|
+
readonly tone?: string | null
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Normalized lifecycle evidence retained on a Process task.
|
|
38
|
+
*
|
|
39
|
+
* Presentation runtimes consume these declared facts without interpreting
|
|
40
|
+
* status strings, timestamps, labels, failure text, or target-specific enums.
|
|
41
|
+
*/
|
|
42
|
+
export interface ProcessTaskLifecycle {
|
|
43
|
+
readonly diagnosticCodes: readonly string[]
|
|
44
|
+
readonly isActive: boolean | null
|
|
45
|
+
readonly isFailure: boolean | null
|
|
46
|
+
readonly isProgressing: boolean | null
|
|
47
|
+
readonly isTerminal: boolean | null
|
|
48
|
+
readonly tone: string | null
|
|
49
|
+
}
|
|
50
|
+
|
|
7
51
|
export interface ProcessTaskMetadata {
|
|
8
52
|
readonly correlationId?: string | null
|
|
9
53
|
readonly ediSpecId?: string | null
|
|
@@ -21,7 +65,7 @@ export interface ProcessTask {
|
|
|
21
65
|
readonly title: string
|
|
22
66
|
readonly status: string
|
|
23
67
|
readonly statusLabel: string
|
|
24
|
-
readonly
|
|
68
|
+
readonly lifecycle: ProcessTaskLifecycle
|
|
25
69
|
readonly startedAtUtc?: string | null
|
|
26
70
|
readonly updatedAtUtc?: string | null
|
|
27
71
|
readonly completedAtUtc?: string | null
|
|
@@ -51,6 +95,7 @@ export interface ProcessTaskStartRegistration {
|
|
|
51
95
|
readonly detailsHref?: string | null
|
|
52
96
|
readonly failureMessage?: string | null
|
|
53
97
|
readonly invalidateQueryKeys?: readonly (readonly unknown[])[]
|
|
98
|
+
readonly lifecycle: ProcessTaskLifecycle
|
|
54
99
|
readonly metadata?: ProcessTaskMetadata
|
|
55
100
|
readonly processId: string
|
|
56
101
|
readonly processName?: string | null
|
|
@@ -80,7 +125,18 @@ export interface ProcessTaskToast {
|
|
|
80
125
|
}
|
|
81
126
|
|
|
82
127
|
export function isProcessTaskTerminal(task: ProcessTask) {
|
|
83
|
-
return
|
|
128
|
+
return task.lifecycle.isTerminal === true &&
|
|
129
|
+
task.lifecycle.isActive === false &&
|
|
130
|
+
task.lifecycle.isProgressing === false
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Returns whether a task may still be active according to declared lifecycle
|
|
135
|
+
* evidence. Unknown evidence remains potentially active so an active-only
|
|
136
|
+
* admission check cannot accidentally admit a duplicate Process start.
|
|
137
|
+
*/
|
|
138
|
+
export function isProcessTaskPotentiallyActive(task: ProcessTask) {
|
|
139
|
+
return !isProcessTaskTerminal(task)
|
|
84
140
|
}
|
|
85
141
|
|
|
86
142
|
export function findProcessTask(
|
|
@@ -101,7 +157,7 @@ export function matchesProcessTaskSelector(
|
|
|
101
157
|
task: ProcessTask,
|
|
102
158
|
selector: ProcessTaskSelector,
|
|
103
159
|
) {
|
|
104
|
-
if (selector.activeOnly &&
|
|
160
|
+
if (selector.activeOnly && !isProcessTaskPotentiallyActive(task)) {
|
|
105
161
|
return false
|
|
106
162
|
}
|
|
107
163
|
|
|
@@ -112,16 +168,62 @@ export function matchesProcessTaskSelector(
|
|
|
112
168
|
return matchesProcessTaskMetadataSelector(task.metadata, selector.metadata)
|
|
113
169
|
}
|
|
114
170
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Normalizes target-declared lifecycle evidence and records incomplete or
|
|
173
|
+
* contradictory facts without changing their meaning.
|
|
174
|
+
*/
|
|
175
|
+
export function createProcessTaskLifecycle(
|
|
176
|
+
declaration?: ProcessTaskLifecycleDeclaration | null,
|
|
177
|
+
): ProcessTaskLifecycle {
|
|
178
|
+
if (!declaration) {
|
|
179
|
+
return {
|
|
180
|
+
diagnosticCodes: [processTaskLifecycleDiagnosticCodes.notDisclosed],
|
|
181
|
+
isActive: null,
|
|
182
|
+
isFailure: null,
|
|
183
|
+
isProgressing: null,
|
|
184
|
+
isTerminal: null,
|
|
185
|
+
tone: null,
|
|
186
|
+
}
|
|
118
187
|
}
|
|
119
188
|
|
|
120
|
-
|
|
121
|
-
|
|
189
|
+
const lifecycle: Omit<ProcessTaskLifecycle, 'diagnosticCodes'> = {
|
|
190
|
+
isActive: declaration.isActive ?? null,
|
|
191
|
+
isFailure: declaration.isFailure ?? null,
|
|
192
|
+
isProgressing: declaration.isProgressing ?? null,
|
|
193
|
+
isTerminal: declaration.isTerminal ?? null,
|
|
194
|
+
tone: declaration.tone ?? null,
|
|
122
195
|
}
|
|
196
|
+
const diagnosticCodes = new Set(declaration.diagnosticCodes ?? [])
|
|
123
197
|
|
|
124
|
-
|
|
198
|
+
if (
|
|
199
|
+
lifecycle.isActive === null ||
|
|
200
|
+
lifecycle.isFailure === null ||
|
|
201
|
+
lifecycle.isProgressing === null ||
|
|
202
|
+
lifecycle.isTerminal === null
|
|
203
|
+
) {
|
|
204
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.incomplete)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (lifecycle.isActive === true && lifecycle.isTerminal === true) {
|
|
208
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.activeAndTerminal)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (lifecycle.isFailure === true && lifecycle.isTerminal === false) {
|
|
212
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.failureWhileNonTerminal)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (lifecycle.isProgressing === true && lifecycle.isActive === false) {
|
|
216
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.progressingWhileInactive)
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if (lifecycle.isProgressing === true && lifecycle.isTerminal === true) {
|
|
220
|
+
diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.terminalAndProgressing)
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
...lifecycle,
|
|
225
|
+
diagnosticCodes: Array.from(diagnosticCodes),
|
|
226
|
+
}
|
|
125
227
|
}
|
|
126
228
|
|
|
127
229
|
function matchesProcessTaskMetadataSelector(
|
|
@@ -8,6 +8,9 @@ import type {
|
|
|
8
8
|
} from './module'
|
|
9
9
|
import {
|
|
10
10
|
type ProcessTask,
|
|
11
|
+
createProcessTaskLifecycle,
|
|
12
|
+
processTaskLifecycleDiagnosticCodes,
|
|
13
|
+
type ProcessTaskLifecycleDeclaration,
|
|
11
14
|
type ProcessTaskMetadata,
|
|
12
15
|
type ProcessTaskSelector,
|
|
13
16
|
type ProcessTaskStartRegistration,
|
|
@@ -52,6 +55,7 @@ export interface ProjectProcessTaskStartRegistrationOptions {
|
|
|
52
55
|
readonly detailsHref?: string | null
|
|
53
56
|
readonly failureMessage?: string | null
|
|
54
57
|
readonly invalidateQueryKeys?: readonly (readonly unknown[])[]
|
|
58
|
+
readonly lifecycle?: ProcessTaskLifecycleDeclaration | null
|
|
55
59
|
readonly metadata?: ProcessTaskMetadata
|
|
56
60
|
readonly processTypeLabel?: string | null
|
|
57
61
|
readonly processTypeTone?: string | null
|
|
@@ -145,6 +149,7 @@ export function projectProcessTaskStartRegistration({
|
|
|
145
149
|
detailsHref,
|
|
146
150
|
failureMessage,
|
|
147
151
|
invalidateQueryKeys,
|
|
152
|
+
lifecycle,
|
|
148
153
|
metadata,
|
|
149
154
|
processTypeLabel,
|
|
150
155
|
processTypeTone,
|
|
@@ -173,6 +178,14 @@ export function projectProcessTaskStartRegistration({
|
|
|
173
178
|
detailsHref: detailsHref ?? projectActionResultHref({ action, createHref, result }),
|
|
174
179
|
failureMessage,
|
|
175
180
|
invalidateQueryKeys: invalidateQueryKeys ?? actionInvalidateQueryKeys,
|
|
181
|
+
lifecycle: createProcessTaskLifecycle(lifecycle ?? {
|
|
182
|
+
diagnosticCodes: [processTaskLifecycleDiagnosticCodes.optimisticStart],
|
|
183
|
+
isActive: true,
|
|
184
|
+
isFailure: false,
|
|
185
|
+
isProgressing: true,
|
|
186
|
+
isTerminal: false,
|
|
187
|
+
tone: 'info',
|
|
188
|
+
}),
|
|
176
189
|
metadata: {
|
|
177
190
|
...selectorMetadata,
|
|
178
191
|
...readConventionalProcessTaskMetadata(result),
|