@principal-ai/principal-view-core 0.14.0 → 0.15.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/discovery/CanvasDiscovery.d.ts +10 -1
- package/dist/discovery/CanvasDiscovery.d.ts.map +1 -1
- package/dist/discovery/CanvasDiscovery.js +135 -3
- package/dist/discovery/CanvasDiscovery.js.map +1 -1
- package/dist/discovery/types.d.ts +68 -0
- package/dist/discovery/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/discovery/CanvasDiscovery.ts +187 -5
- package/src/discovery/types.ts +72 -0
- package/src/index.ts +4 -0
|
@@ -28,6 +28,7 @@ import type { DiscoveredCanvas, DiscoveredExecution, CanvasDiscoveryResult, Disc
|
|
|
28
28
|
export declare class CanvasDiscovery {
|
|
29
29
|
private static readonly CANVAS_DIR;
|
|
30
30
|
private static readonly EXECUTIONS_DIR;
|
|
31
|
+
private static readonly WORKFLOW_EXTENSION;
|
|
31
32
|
private packageModule;
|
|
32
33
|
private packageCache;
|
|
33
34
|
constructor();
|
|
@@ -36,7 +37,7 @@ export declare class CanvasDiscovery {
|
|
|
36
37
|
*
|
|
37
38
|
* @param fileTree - FileTree from repository-abstraction
|
|
38
39
|
* @param options - Discovery options (fileReader, includeContent)
|
|
39
|
-
* @returns Discovery result with canvases, executions, and errors
|
|
40
|
+
* @returns Discovery result with canvases, executions, storyboards, and errors
|
|
40
41
|
*/
|
|
41
42
|
discover(fileTree: FileTree, options?: DiscoveryOptions): Promise<CanvasDiscoveryResult>;
|
|
42
43
|
/**
|
|
@@ -59,6 +60,14 @@ export declare class CanvasDiscovery {
|
|
|
59
60
|
* Clear package cache (useful when file tree changes)
|
|
60
61
|
*/
|
|
61
62
|
clearCache(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Discover storyboards (hierarchical organization of canvas + workflows + executions)
|
|
65
|
+
*/
|
|
66
|
+
private discoverStoryboards;
|
|
67
|
+
/**
|
|
68
|
+
* Discover workflows within a storyboard folder
|
|
69
|
+
*/
|
|
70
|
+
private discoverWorkflowsInStoryboard;
|
|
62
71
|
/**
|
|
63
72
|
* Discover packages with caching by fileTree SHA
|
|
64
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasDiscovery.d.ts","sourceRoot":"","sources":["../../src/discovery/CanvasDiscovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"CanvasDiscovery.d.ts","sourceRoot":"","sources":["../../src/discovery/CanvasDiscovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,EAMnB,qBAAqB,EACrB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAE9D,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAA0C;;IAM9D;;;;;;OAMG;IACG,QAAQ,CACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,qBAAqB,CAAC;IA0BjC;;;;;;OAMG;IACH,sBAAsB,CACpB,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,gBAAgB,GAAG,IAAI;IAS1B;;;;;;OAMG;IACH,uBAAuB,CACrB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,mBAAmB,EAAE,GAChC,mBAAmB,EAAE;IASxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;YACW,mBAAmB;IA0FjC;;OAEG;YACW,6BAA6B;IA6E3C;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;YACW,mBAAmB;IAkEjC;;OAEG;YACW,sBAAsB;IA0DpC;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAiBjC"}
|
|
@@ -34,7 +34,7 @@ class CanvasDiscovery {
|
|
|
34
34
|
*
|
|
35
35
|
* @param fileTree - FileTree from repository-abstraction
|
|
36
36
|
* @param options - Discovery options (fileReader, includeContent)
|
|
37
|
-
* @returns Discovery result with canvases, executions, and errors
|
|
37
|
+
* @returns Discovery result with canvases, executions, storyboards, and errors
|
|
38
38
|
*/
|
|
39
39
|
async discover(fileTree, options = {}) {
|
|
40
40
|
const errors = [];
|
|
@@ -46,10 +46,13 @@ class CanvasDiscovery {
|
|
|
46
46
|
const canvases = await this.discoverCanvasFiles(fileTree, packageMap, options, errors);
|
|
47
47
|
// 4. Discover execution files
|
|
48
48
|
const executions = await this.discoverExecutionFiles(fileTree, packageMap, options, errors);
|
|
49
|
-
// 5.
|
|
49
|
+
// 5. Discover storyboards (hierarchical organization)
|
|
50
|
+
const storyboards = await this.discoverStoryboards(fileTree, packageMap, canvases, executions, options, errors);
|
|
51
|
+
// 6. Sort results
|
|
50
52
|
canvases.sort(this.compareByPackageThenName);
|
|
51
53
|
executions.sort(this.compareByPackageThenName);
|
|
52
|
-
|
|
54
|
+
storyboards.sort(this.compareByPackageThenName);
|
|
55
|
+
return { canvases, executions, storyboards, errors };
|
|
53
56
|
}
|
|
54
57
|
/**
|
|
55
58
|
* Find canvas file for a given execution
|
|
@@ -83,6 +86,134 @@ class CanvasDiscovery {
|
|
|
83
86
|
clearCache() {
|
|
84
87
|
this.packageCache.clear();
|
|
85
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Discover storyboards (hierarchical organization of canvas + workflows + executions)
|
|
91
|
+
*/
|
|
92
|
+
async discoverStoryboards(fileTree, packageMap, canvases, executions, options, errors) {
|
|
93
|
+
const storyboards = [];
|
|
94
|
+
// Build a map of directories to check for storyboards
|
|
95
|
+
const storyboardDirs = new Map();
|
|
96
|
+
// Find all directories in .principal-views/ that have subdirectories
|
|
97
|
+
for (const file of fileTree.allFiles) {
|
|
98
|
+
const path = file.relativePath || file.path || '';
|
|
99
|
+
const parts = path.split('/');
|
|
100
|
+
// Look for paths like: .principal-views/storyboard-name/workflow-name/...
|
|
101
|
+
// Or: packages/core/.principal-views/storyboard-name/workflow-name/...
|
|
102
|
+
const pvIndex = parts.indexOf(CanvasDiscovery.CANVAS_DIR);
|
|
103
|
+
if (pvIndex === -1 || parts.length < pvIndex + 3)
|
|
104
|
+
continue;
|
|
105
|
+
const storyboardName = parts[pvIndex + 1];
|
|
106
|
+
const storyboardPath = parts.slice(0, pvIndex + 2).join('/');
|
|
107
|
+
if (!storyboardDirs.has(storyboardPath)) {
|
|
108
|
+
storyboardDirs.set(storyboardPath, new Set());
|
|
109
|
+
}
|
|
110
|
+
storyboardDirs.get(storyboardPath).add(storyboardName);
|
|
111
|
+
}
|
|
112
|
+
// For each potential storyboard directory, check if it has a canvas
|
|
113
|
+
for (const [storyboardParentPath, storyboardNames] of storyboardDirs) {
|
|
114
|
+
for (const storyboardName of storyboardNames) {
|
|
115
|
+
const storyboardPath = `${storyboardParentPath}/${storyboardName}`;
|
|
116
|
+
// Skip __executions__ directory
|
|
117
|
+
if (storyboardName === CanvasDiscovery.EXECUTIONS_DIR)
|
|
118
|
+
continue;
|
|
119
|
+
// Find canvas for this storyboard
|
|
120
|
+
const storyboardCanvas = canvases.find(c => {
|
|
121
|
+
const canvasDir = c.path.split('/').slice(0, -1).join('/');
|
|
122
|
+
return canvasDir === storyboardPath && c.basename === storyboardName;
|
|
123
|
+
});
|
|
124
|
+
if (!storyboardCanvas)
|
|
125
|
+
continue;
|
|
126
|
+
// This is a storyboard! Now discover workflows
|
|
127
|
+
const workflows = await this.discoverWorkflowsInStoryboard(fileTree, storyboardPath, storyboardName, packageMap, executions, options, errors);
|
|
128
|
+
// Only create storyboard if it has workflows
|
|
129
|
+
if (workflows.length === 0)
|
|
130
|
+
continue;
|
|
131
|
+
// Determine package context
|
|
132
|
+
const packageInfo = this.findPackageForPath(storyboardPath, packageMap);
|
|
133
|
+
// Generate unique ID
|
|
134
|
+
const id = packageInfo
|
|
135
|
+
? `${packageInfo.packageData.name}/${storyboardName}`
|
|
136
|
+
: storyboardName;
|
|
137
|
+
// Create discovered storyboard
|
|
138
|
+
const storyboard = {
|
|
139
|
+
id,
|
|
140
|
+
name: this.toDisplayName(storyboardName),
|
|
141
|
+
path: storyboardPath,
|
|
142
|
+
basename: storyboardName,
|
|
143
|
+
canvas: storyboardCanvas,
|
|
144
|
+
workflows,
|
|
145
|
+
packageName: packageInfo?.packageData.name,
|
|
146
|
+
packagePath: packageInfo?.packageData.path,
|
|
147
|
+
scope: packageInfo ? 'package' : 'root',
|
|
148
|
+
};
|
|
149
|
+
storyboards.push(storyboard);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return storyboards;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Discover workflows within a storyboard folder
|
|
156
|
+
*/
|
|
157
|
+
async discoverWorkflowsInStoryboard(fileTree, storyboardPath, storyboardName, packageMap, executions, options, errors) {
|
|
158
|
+
const workflows = [];
|
|
159
|
+
// Find all workflow files in this storyboard
|
|
160
|
+
for (const file of fileTree.allFiles) {
|
|
161
|
+
const path = file.relativePath || file.path || '';
|
|
162
|
+
// Check if file is in this storyboard
|
|
163
|
+
if (!path.startsWith(storyboardPath + '/'))
|
|
164
|
+
continue;
|
|
165
|
+
// Check if it's a workflow file
|
|
166
|
+
if (!path.endsWith(CanvasDiscovery.WORKFLOW_EXTENSION))
|
|
167
|
+
continue;
|
|
168
|
+
// Extract workflow info
|
|
169
|
+
const filename = path.split('/').pop();
|
|
170
|
+
if (!filename)
|
|
171
|
+
continue;
|
|
172
|
+
const basename = filename.replace(CanvasDiscovery.WORKFLOW_EXTENSION, '');
|
|
173
|
+
const workflowDir = path.split('/').slice(0, -1).join('/');
|
|
174
|
+
// Determine package context
|
|
175
|
+
const packageInfo = this.findPackageForPath(path, packageMap);
|
|
176
|
+
// Generate unique ID
|
|
177
|
+
const id = packageInfo
|
|
178
|
+
? `${packageInfo.packageData.name}/${storyboardName}/${basename}`
|
|
179
|
+
: `${storyboardName}/${basename}`;
|
|
180
|
+
// Find executions for this workflow (in the same directory as workflow.json)
|
|
181
|
+
const workflowExecutions = executions.filter(e => {
|
|
182
|
+
const execDir = e.path.split('/').slice(0, -1).join('/');
|
|
183
|
+
return execDir === workflowDir;
|
|
184
|
+
});
|
|
185
|
+
// Create discovered workflow
|
|
186
|
+
let workflow = {
|
|
187
|
+
id,
|
|
188
|
+
name: this.toDisplayName(basename),
|
|
189
|
+
path,
|
|
190
|
+
basename,
|
|
191
|
+
storyboardId: packageInfo
|
|
192
|
+
? `${packageInfo.packageData.name}/${storyboardName}`
|
|
193
|
+
: storyboardName,
|
|
194
|
+
packageName: packageInfo?.packageData.name,
|
|
195
|
+
packagePath: packageInfo?.packageData.path,
|
|
196
|
+
scope: packageInfo ? 'package' : 'root',
|
|
197
|
+
executions: workflowExecutions,
|
|
198
|
+
};
|
|
199
|
+
// Optionally load content
|
|
200
|
+
if (options.includeContent && options.fileReader) {
|
|
201
|
+
try {
|
|
202
|
+
const content = await options.fileReader(path);
|
|
203
|
+
const parsedContent = JSON.parse(content);
|
|
204
|
+
workflow = { ...workflow, content: parsedContent };
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
errors.push({
|
|
208
|
+
path,
|
|
209
|
+
error: `Failed to parse workflow content: ${error.message}`,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
workflows.push(workflow);
|
|
214
|
+
}
|
|
215
|
+
return workflows;
|
|
216
|
+
}
|
|
86
217
|
/**
|
|
87
218
|
* Discover packages with caching by fileTree SHA
|
|
88
219
|
*/
|
|
@@ -332,5 +463,6 @@ class CanvasDiscovery {
|
|
|
332
463
|
}
|
|
333
464
|
CanvasDiscovery.CANVAS_DIR = '.principal-views';
|
|
334
465
|
CanvasDiscovery.EXECUTIONS_DIR = '__executions__';
|
|
466
|
+
CanvasDiscovery.WORKFLOW_EXTENSION = '.workflow.json';
|
|
335
467
|
export { CanvasDiscovery };
|
|
336
468
|
//# sourceMappingURL=CanvasDiscovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasDiscovery.js","sourceRoot":"","sources":["../../src/discovery/CanvasDiscovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CanvasDiscovery.js","sourceRoot":"","sources":["../../src/discovery/CanvasDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ExtendedCanvas } from '../types/canvas';
|
|
5
5
|
import type { ExecutionData } from '../execution/ExecutionValidator';
|
|
6
|
+
import type { WorkflowTemplate } from '../workflow/types';
|
|
6
7
|
/**
|
|
7
8
|
* Canvas file type discriminator
|
|
8
9
|
*/
|
|
@@ -61,6 +62,52 @@ export interface DiscoveredExecution {
|
|
|
61
62
|
/** Whether this is from repo root vs package */
|
|
62
63
|
scope: 'root' | 'package';
|
|
63
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Discovered workflow file within a storyboard
|
|
67
|
+
*/
|
|
68
|
+
export interface DiscoveredWorkflow {
|
|
69
|
+
/** Unique ID with package prefix (e.g., "core/checkout-flow/checkout" or "checkout-flow/checkout") */
|
|
70
|
+
id: string;
|
|
71
|
+
/** Display name (Title Case from basename) */
|
|
72
|
+
name: string;
|
|
73
|
+
/** Full relative path from repo root to workflow.json file */
|
|
74
|
+
path: string;
|
|
75
|
+
/** Workflow basename (without .workflow.json extension) */
|
|
76
|
+
basename: string;
|
|
77
|
+
/** Parent storyboard ID this workflow belongs to */
|
|
78
|
+
storyboardId: string;
|
|
79
|
+
/** Package name if in a package */
|
|
80
|
+
packageName?: string;
|
|
81
|
+
/** Package path if in a package */
|
|
82
|
+
packagePath?: string;
|
|
83
|
+
/** Whether this is from repo root vs package */
|
|
84
|
+
scope: 'root' | 'package';
|
|
85
|
+
/** Associated execution files for this workflow */
|
|
86
|
+
executions: DiscoveredExecution[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Discovered storyboard folder containing canvas, workflows, and executions
|
|
90
|
+
*/
|
|
91
|
+
export interface DiscoveredStoryboard {
|
|
92
|
+
/** Unique ID with package prefix (e.g., "core/checkout-flow" or "checkout-flow") */
|
|
93
|
+
id: string;
|
|
94
|
+
/** Display name (Title Case from basename) */
|
|
95
|
+
name: string;
|
|
96
|
+
/** Full relative path from repo root to storyboard folder */
|
|
97
|
+
path: string;
|
|
98
|
+
/** Storyboard basename (folder name) */
|
|
99
|
+
basename: string;
|
|
100
|
+
/** The main canvas file for this storyboard */
|
|
101
|
+
canvas: DiscoveredCanvas;
|
|
102
|
+
/** Workflows within this storyboard */
|
|
103
|
+
workflows: DiscoveredWorkflow[];
|
|
104
|
+
/** Package name if in a package */
|
|
105
|
+
packageName?: string;
|
|
106
|
+
/** Package path if in a package */
|
|
107
|
+
packagePath?: string;
|
|
108
|
+
/** Whether this is from repo root vs package */
|
|
109
|
+
scope: 'root' | 'package';
|
|
110
|
+
}
|
|
64
111
|
/**
|
|
65
112
|
* Result of canvas discovery operation
|
|
66
113
|
*/
|
|
@@ -69,6 +116,8 @@ export interface CanvasDiscoveryResult {
|
|
|
69
116
|
canvases: DiscoveredCanvas[];
|
|
70
117
|
/** All discovered execution files, sorted by package then name */
|
|
71
118
|
executions: DiscoveredExecution[];
|
|
119
|
+
/** All discovered storyboards (hierarchical organization of canvas + workflows + executions) */
|
|
120
|
+
storyboards: DiscoveredStoryboard[];
|
|
72
121
|
/** Any errors encountered during discovery */
|
|
73
122
|
errors: Array<{
|
|
74
123
|
path: string;
|
|
@@ -112,12 +161,31 @@ export interface DiscoveredExecutionWithContent extends DiscoveredExecution {
|
|
|
112
161
|
/** Parsed execution artifact (only when includeContent: true) */
|
|
113
162
|
content: ExecutionData;
|
|
114
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Discovered workflow with parsed content
|
|
166
|
+
*/
|
|
167
|
+
export interface DiscoveredWorkflowWithContent extends DiscoveredWorkflow {
|
|
168
|
+
/** Parsed workflow template (only when includeContent: true) */
|
|
169
|
+
content: WorkflowTemplate;
|
|
170
|
+
/** Executions with parsed content */
|
|
171
|
+
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Discovered storyboard with parsed content
|
|
175
|
+
*/
|
|
176
|
+
export interface DiscoveredStoryboardWithContent extends DiscoveredStoryboard {
|
|
177
|
+
/** Canvas with parsed content */
|
|
178
|
+
canvas: DiscoveredCanvas | DiscoveredCanvasWithContent;
|
|
179
|
+
/** Workflows with parsed content */
|
|
180
|
+
workflows: (DiscoveredWorkflow | DiscoveredWorkflowWithContent)[];
|
|
181
|
+
}
|
|
115
182
|
/**
|
|
116
183
|
* Discovery result with content
|
|
117
184
|
*/
|
|
118
185
|
export interface CanvasDiscoveryResultWithContent {
|
|
119
186
|
canvases: (DiscoveredCanvas | DiscoveredCanvasWithContent)[];
|
|
120
187
|
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
|
|
188
|
+
storyboards: (DiscoveredStoryboard | DiscoveredStoryboardWithContent)[];
|
|
121
189
|
errors: Array<{
|
|
122
190
|
path: string;
|
|
123
191
|
error: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export { selectScenario, matchesCondition, hasEventMatching, computeAggregates,
|
|
|
23
23
|
export type { WorkflowTemplate, WorkflowScenario, WorkflowMode, ScenarioCondition, ScenarioTemplate, Assertion, FlowDirective, LogTemplates, FormattingOptions, OtelEvent, OtelSignal, WorkflowContext, WorkflowResult, ScenarioMatchResult, SpanTreeNode, } from './workflow/types';
|
|
24
24
|
export type { OtelAttributes, OtelAttributeValue, OtelLog, OtelSpan, OtelResource, OtelSeverity, OtelSeverityText, OtelSeverityNumber, OtelSpanKind, OtelSpanStatus, } from './types/otel';
|
|
25
25
|
export { CanvasDiscovery } from './discovery/CanvasDiscovery';
|
|
26
|
-
export type { DiscoveredCanvas, DiscoveredExecution, CanvasDiscoveryResult, DiscoveryOptions, CanvasType, ExecutionType, DiscoveredCanvasWithContent, DiscoveredExecutionWithContent, CanvasDiscoveryResultWithContent, } from './discovery/types';
|
|
26
|
+
export type { DiscoveredCanvas, DiscoveredExecution, DiscoveredWorkflow, DiscoveredStoryboard, CanvasDiscoveryResult, DiscoveryOptions, CanvasType, ExecutionType, DiscoveredCanvasWithContent, DiscoveredExecutionWithContent, DiscoveredWorkflowWithContent, DiscoveredStoryboardWithContent, CanvasDiscoveryResultWithContent, } from './discovery/types';
|
|
27
27
|
export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
|
|
28
28
|
export type { ExecutionData, ValidationError, ExecutionValidationResult, } from './execution/ExecutionValidator';
|
|
29
29
|
export { analyzeCoverage } from './telemetry/coverage';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AAiCrC,uDAAuD;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AAiCrC,uDAAuD;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,4FAA4F;AAC5F,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAC/D,2GAA2G;AAC3G,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,WAAW;AACX,iIAAiI"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,10 @@ import type {
|
|
|
9
9
|
DiscoveredCanvasWithContent,
|
|
10
10
|
DiscoveredExecution,
|
|
11
11
|
DiscoveredExecutionWithContent,
|
|
12
|
+
DiscoveredWorkflow,
|
|
13
|
+
DiscoveredWorkflowWithContent,
|
|
14
|
+
DiscoveredStoryboard,
|
|
15
|
+
DiscoveredStoryboardWithContent,
|
|
12
16
|
CanvasDiscoveryResult,
|
|
13
17
|
DiscoveryOptions,
|
|
14
18
|
CanvasType,
|
|
@@ -40,6 +44,7 @@ import type {
|
|
|
40
44
|
export class CanvasDiscovery {
|
|
41
45
|
private static readonly CANVAS_DIR = '.principal-views';
|
|
42
46
|
private static readonly EXECUTIONS_DIR = '__executions__';
|
|
47
|
+
private static readonly WORKFLOW_EXTENSION = '.workflow.json';
|
|
43
48
|
|
|
44
49
|
private packageModule: PackageLayerModule;
|
|
45
50
|
private packageCache: Map<string, PackageLayer[]> = new Map();
|
|
@@ -53,7 +58,7 @@ export class CanvasDiscovery {
|
|
|
53
58
|
*
|
|
54
59
|
* @param fileTree - FileTree from repository-abstraction
|
|
55
60
|
* @param options - Discovery options (fileReader, includeContent)
|
|
56
|
-
* @returns Discovery result with canvases, executions, and errors
|
|
61
|
+
* @returns Discovery result with canvases, executions, storyboards, and errors
|
|
57
62
|
*/
|
|
58
63
|
async discover(
|
|
59
64
|
fileTree: FileTree,
|
|
@@ -73,11 +78,15 @@ export class CanvasDiscovery {
|
|
|
73
78
|
// 4. Discover execution files
|
|
74
79
|
const executions = await this.discoverExecutionFiles(fileTree, packageMap, options, errors);
|
|
75
80
|
|
|
76
|
-
// 5.
|
|
81
|
+
// 5. Discover storyboards (hierarchical organization)
|
|
82
|
+
const storyboards = await this.discoverStoryboards(fileTree, packageMap, canvases, executions, options, errors);
|
|
83
|
+
|
|
84
|
+
// 6. Sort results
|
|
77
85
|
canvases.sort(this.compareByPackageThenName);
|
|
78
86
|
executions.sort(this.compareByPackageThenName);
|
|
87
|
+
storyboards.sort(this.compareByPackageThenName);
|
|
79
88
|
|
|
80
|
-
return { canvases, executions, errors };
|
|
89
|
+
return { canvases, executions, storyboards, errors };
|
|
81
90
|
}
|
|
82
91
|
|
|
83
92
|
/**
|
|
@@ -125,6 +134,179 @@ export class CanvasDiscovery {
|
|
|
125
134
|
this.packageCache.clear();
|
|
126
135
|
}
|
|
127
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Discover storyboards (hierarchical organization of canvas + workflows + executions)
|
|
139
|
+
*/
|
|
140
|
+
private async discoverStoryboards(
|
|
141
|
+
fileTree: FileTree,
|
|
142
|
+
packageMap: Map<string, PackageLayer>,
|
|
143
|
+
canvases: DiscoveredCanvas[],
|
|
144
|
+
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[],
|
|
145
|
+
options: DiscoveryOptions,
|
|
146
|
+
errors: Array<{ path: string; error: string }>
|
|
147
|
+
): Promise<(DiscoveredStoryboard | DiscoveredStoryboardWithContent)[]> {
|
|
148
|
+
const storyboards: (DiscoveredStoryboard | DiscoveredStoryboardWithContent)[] = [];
|
|
149
|
+
|
|
150
|
+
// Build a map of directories to check for storyboards
|
|
151
|
+
const storyboardDirs = new Map<string, Set<string>>();
|
|
152
|
+
|
|
153
|
+
// Find all directories in .principal-views/ that have subdirectories
|
|
154
|
+
for (const file of fileTree.allFiles) {
|
|
155
|
+
const path = file.relativePath || file.path || '';
|
|
156
|
+
const parts = path.split('/');
|
|
157
|
+
|
|
158
|
+
// Look for paths like: .principal-views/storyboard-name/workflow-name/...
|
|
159
|
+
// Or: packages/core/.principal-views/storyboard-name/workflow-name/...
|
|
160
|
+
const pvIndex = parts.indexOf(CanvasDiscovery.CANVAS_DIR);
|
|
161
|
+
if (pvIndex === -1 || parts.length < pvIndex + 3) continue;
|
|
162
|
+
|
|
163
|
+
const storyboardName = parts[pvIndex + 1];
|
|
164
|
+
const storyboardPath = parts.slice(0, pvIndex + 2).join('/');
|
|
165
|
+
|
|
166
|
+
if (!storyboardDirs.has(storyboardPath)) {
|
|
167
|
+
storyboardDirs.set(storyboardPath, new Set());
|
|
168
|
+
}
|
|
169
|
+
storyboardDirs.get(storyboardPath)!.add(storyboardName);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// For each potential storyboard directory, check if it has a canvas
|
|
173
|
+
for (const [storyboardParentPath, storyboardNames] of storyboardDirs) {
|
|
174
|
+
for (const storyboardName of storyboardNames) {
|
|
175
|
+
const storyboardPath = `${storyboardParentPath}/${storyboardName}`;
|
|
176
|
+
|
|
177
|
+
// Skip __executions__ directory
|
|
178
|
+
if (storyboardName === CanvasDiscovery.EXECUTIONS_DIR) continue;
|
|
179
|
+
|
|
180
|
+
// Find canvas for this storyboard
|
|
181
|
+
const storyboardCanvas = canvases.find(c => {
|
|
182
|
+
const canvasDir = c.path.split('/').slice(0, -1).join('/');
|
|
183
|
+
return canvasDir === storyboardPath && c.basename === storyboardName;
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
if (!storyboardCanvas) continue;
|
|
187
|
+
|
|
188
|
+
// This is a storyboard! Now discover workflows
|
|
189
|
+
const workflows = await this.discoverWorkflowsInStoryboard(
|
|
190
|
+
fileTree,
|
|
191
|
+
storyboardPath,
|
|
192
|
+
storyboardName,
|
|
193
|
+
packageMap,
|
|
194
|
+
executions,
|
|
195
|
+
options,
|
|
196
|
+
errors
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
// Only create storyboard if it has workflows
|
|
200
|
+
if (workflows.length === 0) continue;
|
|
201
|
+
|
|
202
|
+
// Determine package context
|
|
203
|
+
const packageInfo = this.findPackageForPath(storyboardPath, packageMap);
|
|
204
|
+
|
|
205
|
+
// Generate unique ID
|
|
206
|
+
const id = packageInfo
|
|
207
|
+
? `${packageInfo.packageData.name}/${storyboardName}`
|
|
208
|
+
: storyboardName;
|
|
209
|
+
|
|
210
|
+
// Create discovered storyboard
|
|
211
|
+
const storyboard: DiscoveredStoryboard | DiscoveredStoryboardWithContent = {
|
|
212
|
+
id,
|
|
213
|
+
name: this.toDisplayName(storyboardName),
|
|
214
|
+
path: storyboardPath,
|
|
215
|
+
basename: storyboardName,
|
|
216
|
+
canvas: storyboardCanvas,
|
|
217
|
+
workflows,
|
|
218
|
+
packageName: packageInfo?.packageData.name,
|
|
219
|
+
packagePath: packageInfo?.packageData.path,
|
|
220
|
+
scope: packageInfo ? 'package' : 'root',
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
storyboards.push(storyboard);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return storyboards;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Discover workflows within a storyboard folder
|
|
232
|
+
*/
|
|
233
|
+
private async discoverWorkflowsInStoryboard(
|
|
234
|
+
fileTree: FileTree,
|
|
235
|
+
storyboardPath: string,
|
|
236
|
+
storyboardName: string,
|
|
237
|
+
packageMap: Map<string, PackageLayer>,
|
|
238
|
+
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[],
|
|
239
|
+
options: DiscoveryOptions,
|
|
240
|
+
errors: Array<{ path: string; error: string }>
|
|
241
|
+
): Promise<(DiscoveredWorkflow | DiscoveredWorkflowWithContent)[]> {
|
|
242
|
+
const workflows: (DiscoveredWorkflow | DiscoveredWorkflowWithContent)[] = [];
|
|
243
|
+
|
|
244
|
+
// Find all workflow files in this storyboard
|
|
245
|
+
for (const file of fileTree.allFiles) {
|
|
246
|
+
const path = file.relativePath || file.path || '';
|
|
247
|
+
|
|
248
|
+
// Check if file is in this storyboard
|
|
249
|
+
if (!path.startsWith(storyboardPath + '/')) continue;
|
|
250
|
+
|
|
251
|
+
// Check if it's a workflow file
|
|
252
|
+
if (!path.endsWith(CanvasDiscovery.WORKFLOW_EXTENSION)) continue;
|
|
253
|
+
|
|
254
|
+
// Extract workflow info
|
|
255
|
+
const filename = path.split('/').pop();
|
|
256
|
+
if (!filename) continue;
|
|
257
|
+
|
|
258
|
+
const basename = filename.replace(CanvasDiscovery.WORKFLOW_EXTENSION, '');
|
|
259
|
+
const workflowDir = path.split('/').slice(0, -1).join('/');
|
|
260
|
+
|
|
261
|
+
// Determine package context
|
|
262
|
+
const packageInfo = this.findPackageForPath(path, packageMap);
|
|
263
|
+
|
|
264
|
+
// Generate unique ID
|
|
265
|
+
const id = packageInfo
|
|
266
|
+
? `${packageInfo.packageData.name}/${storyboardName}/${basename}`
|
|
267
|
+
: `${storyboardName}/${basename}`;
|
|
268
|
+
|
|
269
|
+
// Find executions for this workflow (in the same directory as workflow.json)
|
|
270
|
+
const workflowExecutions = executions.filter(e => {
|
|
271
|
+
const execDir = e.path.split('/').slice(0, -1).join('/');
|
|
272
|
+
return execDir === workflowDir;
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
// Create discovered workflow
|
|
276
|
+
let workflow: DiscoveredWorkflow | DiscoveredWorkflowWithContent = {
|
|
277
|
+
id,
|
|
278
|
+
name: this.toDisplayName(basename),
|
|
279
|
+
path,
|
|
280
|
+
basename,
|
|
281
|
+
storyboardId: packageInfo
|
|
282
|
+
? `${packageInfo.packageData.name}/${storyboardName}`
|
|
283
|
+
: storyboardName,
|
|
284
|
+
packageName: packageInfo?.packageData.name,
|
|
285
|
+
packagePath: packageInfo?.packageData.path,
|
|
286
|
+
scope: packageInfo ? 'package' : 'root',
|
|
287
|
+
executions: workflowExecutions,
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
// Optionally load content
|
|
291
|
+
if (options.includeContent && options.fileReader) {
|
|
292
|
+
try {
|
|
293
|
+
const content = await options.fileReader(path);
|
|
294
|
+
const parsedContent = JSON.parse(content);
|
|
295
|
+
workflow = { ...workflow, content: parsedContent } as DiscoveredWorkflowWithContent;
|
|
296
|
+
} catch (error) {
|
|
297
|
+
errors.push({
|
|
298
|
+
path,
|
|
299
|
+
error: `Failed to parse workflow content: ${(error as Error).message}`,
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
workflows.push(workflow);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return workflows;
|
|
308
|
+
}
|
|
309
|
+
|
|
128
310
|
/**
|
|
129
311
|
* Discover packages with caching by fileTree SHA
|
|
130
312
|
*/
|
|
@@ -416,8 +598,8 @@ export class CanvasDiscovery {
|
|
|
416
598
|
* Sort by package then name
|
|
417
599
|
*/
|
|
418
600
|
private compareByPackageThenName(
|
|
419
|
-
a: DiscoveredCanvas | DiscoveredExecution,
|
|
420
|
-
b: DiscoveredCanvas | DiscoveredExecution
|
|
601
|
+
a: DiscoveredCanvas | DiscoveredExecution | DiscoveredStoryboard,
|
|
602
|
+
b: DiscoveredCanvas | DiscoveredExecution | DiscoveredStoryboard
|
|
421
603
|
): number {
|
|
422
604
|
// Package files first, then root
|
|
423
605
|
if (a.packageName && !b.packageName) return -1;
|
package/src/discovery/types.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import type { ExtendedCanvas } from '../types/canvas';
|
|
6
6
|
import type { ExecutionData } from '../execution/ExecutionValidator';
|
|
7
|
+
import type { WorkflowTemplate } from '../workflow/types';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Canvas file type discriminator
|
|
@@ -67,6 +68,54 @@ export interface DiscoveredExecution {
|
|
|
67
68
|
scope: 'root' | 'package';
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Discovered workflow file within a storyboard
|
|
73
|
+
*/
|
|
74
|
+
export interface DiscoveredWorkflow {
|
|
75
|
+
/** Unique ID with package prefix (e.g., "core/checkout-flow/checkout" or "checkout-flow/checkout") */
|
|
76
|
+
id: string;
|
|
77
|
+
/** Display name (Title Case from basename) */
|
|
78
|
+
name: string;
|
|
79
|
+
/** Full relative path from repo root to workflow.json file */
|
|
80
|
+
path: string;
|
|
81
|
+
/** Workflow basename (without .workflow.json extension) */
|
|
82
|
+
basename: string;
|
|
83
|
+
/** Parent storyboard ID this workflow belongs to */
|
|
84
|
+
storyboardId: string;
|
|
85
|
+
/** Package name if in a package */
|
|
86
|
+
packageName?: string;
|
|
87
|
+
/** Package path if in a package */
|
|
88
|
+
packagePath?: string;
|
|
89
|
+
/** Whether this is from repo root vs package */
|
|
90
|
+
scope: 'root' | 'package';
|
|
91
|
+
/** Associated execution files for this workflow */
|
|
92
|
+
executions: DiscoveredExecution[];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Discovered storyboard folder containing canvas, workflows, and executions
|
|
97
|
+
*/
|
|
98
|
+
export interface DiscoveredStoryboard {
|
|
99
|
+
/** Unique ID with package prefix (e.g., "core/checkout-flow" or "checkout-flow") */
|
|
100
|
+
id: string;
|
|
101
|
+
/** Display name (Title Case from basename) */
|
|
102
|
+
name: string;
|
|
103
|
+
/** Full relative path from repo root to storyboard folder */
|
|
104
|
+
path: string;
|
|
105
|
+
/** Storyboard basename (folder name) */
|
|
106
|
+
basename: string;
|
|
107
|
+
/** The main canvas file for this storyboard */
|
|
108
|
+
canvas: DiscoveredCanvas;
|
|
109
|
+
/** Workflows within this storyboard */
|
|
110
|
+
workflows: DiscoveredWorkflow[];
|
|
111
|
+
/** Package name if in a package */
|
|
112
|
+
packageName?: string;
|
|
113
|
+
/** Package path if in a package */
|
|
114
|
+
packagePath?: string;
|
|
115
|
+
/** Whether this is from repo root vs package */
|
|
116
|
+
scope: 'root' | 'package';
|
|
117
|
+
}
|
|
118
|
+
|
|
70
119
|
/**
|
|
71
120
|
* Result of canvas discovery operation
|
|
72
121
|
*/
|
|
@@ -75,6 +124,8 @@ export interface CanvasDiscoveryResult {
|
|
|
75
124
|
canvases: DiscoveredCanvas[];
|
|
76
125
|
/** All discovered execution files, sorted by package then name */
|
|
77
126
|
executions: DiscoveredExecution[];
|
|
127
|
+
/** All discovered storyboards (hierarchical organization of canvas + workflows + executions) */
|
|
128
|
+
storyboards: DiscoveredStoryboard[];
|
|
78
129
|
/** Any errors encountered during discovery */
|
|
79
130
|
errors: Array<{ path: string; error: string }>;
|
|
80
131
|
}
|
|
@@ -120,11 +171,32 @@ export interface DiscoveredExecutionWithContent extends DiscoveredExecution {
|
|
|
120
171
|
content: ExecutionData;
|
|
121
172
|
}
|
|
122
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Discovered workflow with parsed content
|
|
176
|
+
*/
|
|
177
|
+
export interface DiscoveredWorkflowWithContent extends DiscoveredWorkflow {
|
|
178
|
+
/** Parsed workflow template (only when includeContent: true) */
|
|
179
|
+
content: WorkflowTemplate;
|
|
180
|
+
/** Executions with parsed content */
|
|
181
|
+
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Discovered storyboard with parsed content
|
|
186
|
+
*/
|
|
187
|
+
export interface DiscoveredStoryboardWithContent extends DiscoveredStoryboard {
|
|
188
|
+
/** Canvas with parsed content */
|
|
189
|
+
canvas: DiscoveredCanvas | DiscoveredCanvasWithContent;
|
|
190
|
+
/** Workflows with parsed content */
|
|
191
|
+
workflows: (DiscoveredWorkflow | DiscoveredWorkflowWithContent)[];
|
|
192
|
+
}
|
|
193
|
+
|
|
123
194
|
/**
|
|
124
195
|
* Discovery result with content
|
|
125
196
|
*/
|
|
126
197
|
export interface CanvasDiscoveryResultWithContent {
|
|
127
198
|
canvases: (DiscoveredCanvas | DiscoveredCanvasWithContent)[];
|
|
128
199
|
executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
|
|
200
|
+
storyboards: (DiscoveredStoryboard | DiscoveredStoryboardWithContent)[];
|
|
129
201
|
errors: Array<{ path: string; error: string }>;
|
|
130
202
|
}
|
package/src/index.ts
CHANGED
|
@@ -104,12 +104,16 @@ export { CanvasDiscovery } from './discovery/CanvasDiscovery';
|
|
|
104
104
|
export type {
|
|
105
105
|
DiscoveredCanvas,
|
|
106
106
|
DiscoveredExecution,
|
|
107
|
+
DiscoveredWorkflow,
|
|
108
|
+
DiscoveredStoryboard,
|
|
107
109
|
CanvasDiscoveryResult,
|
|
108
110
|
DiscoveryOptions,
|
|
109
111
|
CanvasType,
|
|
110
112
|
ExecutionType,
|
|
111
113
|
DiscoveredCanvasWithContent,
|
|
112
114
|
DiscoveredExecutionWithContent,
|
|
115
|
+
DiscoveredWorkflowWithContent,
|
|
116
|
+
DiscoveredStoryboardWithContent,
|
|
113
117
|
CanvasDiscoveryResultWithContent,
|
|
114
118
|
} from './discovery/types';
|
|
115
119
|
|