@qaick/runner 0.29.0 → 0.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package-dist/fixtures/qaick-local-http-regression.qaick.json +5002 -0
- package/package-dist/fixtures/regression-cancel.qaick.json +314 -0
- package/package-dist/fixtures/regression-declared-inputs.qaick.json +281 -0
- package/package-dist/fixtures/regression-input-conflict.qaick.json +548 -0
- package/package-dist/fixtures/regression-script.qaick.json +58 -0
- package/package-dist/fixtures/regression-timeout.qaick.json +314 -0
- package/package-dist/fixtures/script-worker-http.qaick.json +226 -0
- package/package-dist/package.json +5 -5
- package/package-dist/src/runner/RunnerModule.d.ts +11 -2
- package/package-dist/src/runner/RunnerModule.d.ts.map +1 -1
- package/package-dist/src/runner/RunnerModule.js +77 -52
- package/package-dist/src/runner/RunnerModule.js.map +1 -1
- package/package-dist/src/runner/action-template-lowering.d.ts +18 -0
- package/package-dist/src/runner/action-template-lowering.d.ts.map +1 -0
- package/package-dist/src/runner/action-template-lowering.js +83 -0
- package/package-dist/src/runner/action-template-lowering.js.map +1 -0
- package/package-dist/src/runner/adapters.d.ts +45 -0
- package/package-dist/src/runner/adapters.d.ts.map +1 -0
- package/package-dist/src/runner/adapters.js +203 -0
- package/package-dist/src/runner/adapters.js.map +1 -0
- package/package-dist/src/runner/catalog.d.ts +4 -1
- package/package-dist/src/runner/catalog.d.ts.map +1 -1
- package/package-dist/src/runner/catalog.js +11 -6
- package/package-dist/src/runner/catalog.js.map +1 -1
- package/package-dist/src/runner/execution-context.d.ts +3 -0
- package/package-dist/src/runner/execution-context.d.ts.map +1 -0
- package/package-dist/src/runner/execution-context.js +4 -0
- package/package-dist/src/runner/execution-context.js.map +1 -0
- package/package-dist/src/runner/fixture.d.ts.map +1 -1
- package/package-dist/src/runner/fixture.js +14 -27
- package/package-dist/src/runner/fixture.js.map +1 -1
- package/package-dist/src/runner/invocation-inputs.d.ts +33 -0
- package/package-dist/src/runner/invocation-inputs.d.ts.map +1 -0
- package/package-dist/src/runner/invocation-inputs.js +85 -0
- package/package-dist/src/runner/invocation-inputs.js.map +1 -0
- package/package-dist/src/runner/legacy-types.d.ts +81 -0
- package/package-dist/src/runner/legacy-types.d.ts.map +1 -0
- package/package-dist/src/runner/legacy-types.js +7 -0
- package/package-dist/src/runner/legacy-types.js.map +1 -0
- package/package-dist/src/runner/loaded-target.d.ts +13 -0
- package/package-dist/src/runner/loaded-target.d.ts.map +1 -0
- package/package-dist/src/runner/loaded-target.js +23 -0
- package/package-dist/src/runner/loaded-target.js.map +1 -0
- package/package-dist/src/runner/package-loader.d.ts +3 -2
- package/package-dist/src/runner/package-loader.d.ts.map +1 -1
- package/package-dist/src/runner/package-loader.js +3 -112
- package/package-dist/src/runner/package-loader.js.map +1 -1
- package/package-dist/src/runner/result-export.d.ts +7 -2
- package/package-dist/src/runner/result-export.d.ts.map +1 -1
- package/package-dist/src/runner/result-export.js +3 -2
- package/package-dist/src/runner/result-export.js.map +1 -1
- package/package-dist/src/runner/runtime-client-adapter.d.ts +25 -0
- package/package-dist/src/runner/runtime-client-adapter.d.ts.map +1 -1
- package/package-dist/src/runner/runtime-client-adapter.js +44 -2
- package/package-dist/src/runner/runtime-client-adapter.js.map +1 -1
- package/package-dist/src/runner/studio-artifact-loader.d.ts +3 -5
- package/package-dist/src/runner/studio-artifact-loader.d.ts.map +1 -1
- package/package-dist/src/runner/studio-artifact-loader.js +4 -335
- package/package-dist/src/runner/studio-artifact-loader.js.map +1 -1
- package/package-dist/src/runner/studio-hierarchy-loader.d.ts +10 -0
- package/package-dist/src/runner/studio-hierarchy-loader.d.ts.map +1 -0
- package/package-dist/src/runner/studio-hierarchy-loader.js +271 -0
- package/package-dist/src/runner/studio-hierarchy-loader.js.map +1 -0
- package/package-dist/src/runner/types.d.ts +12 -0
- package/package-dist/src/runner/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,336 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export function loadStudioFlowArtifact(candidate) {
|
|
6
|
-
candidate = migrateArtifact(candidate).artifact;
|
|
7
|
-
if (candidate.artifactKind !== 'flow' || candidate.schemaVersion !== STUDIO_ARTIFACT_SCHEMA_VERSION || !isRecord(candidate.flow)) {
|
|
8
|
-
throw new PackageLoadError('The selected file is not a supported Studio schema 9 Flow artifact.');
|
|
9
|
-
}
|
|
10
|
-
const flow = candidate.flow;
|
|
11
|
-
if (typeof flow.id !== 'string' || typeof flow.name !== 'string' || !Array.isArray(flow.nodes) || !Array.isArray(flow.edges)) {
|
|
12
|
-
throw new PackageLoadError('The Studio Flow artifact is incomplete.');
|
|
13
|
-
}
|
|
14
|
-
const definitions = [{ id: flow.id, kind: 'flow', name: flow.name }];
|
|
15
|
-
const catalogs = flattenCatalogCandidates([candidate.actionCatalogs, flow.actionCatalogs]);
|
|
16
|
-
const converted = convertStudioFlow(flow, definitions, undefined, new Set(), actionOutputMap(catalogs), {}, actionRuntimeMap(catalogs));
|
|
17
|
-
return {
|
|
18
|
-
ordering: 'routine',
|
|
19
|
-
schemaVersion: RUNNER_PACKAGE_SCHEMA_VERSION,
|
|
20
|
-
artifactSchemaVersion: STUDIO_ARTIFACT_SCHEMA_VERSION,
|
|
21
|
-
packageId: `studio-flow-${flow.id}`,
|
|
22
|
-
target: { kind: 'flow', id: flow.id, name: flow.name },
|
|
23
|
-
definitions,
|
|
24
|
-
steps: converted.steps,
|
|
25
|
-
requiredInputs: converted.requiredInputs,
|
|
26
|
-
inputDeclarations: converted.inputDeclarations,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export function loadStudioProjectFile(candidate) {
|
|
30
|
-
candidate = migrateArtifact(candidate).artifact;
|
|
31
|
-
if (candidate.schemaVersion !== STUDIO_ARTIFACT_SCHEMA_VERSION || !isRecord(candidate.project))
|
|
32
|
-
throw new PackageLoadError('The selected file is not a supported Studio schema 9 Project file.');
|
|
33
|
-
const project = candidate.project;
|
|
34
|
-
if (typeof project.id !== 'string' || typeof project.name !== 'string' || !Array.isArray(project.flows))
|
|
35
|
-
throw new PackageLoadError('The Studio Project file is incomplete.');
|
|
36
|
-
const flowsById = new Map(project.flows.filter(isRecord).flatMap(flow => typeof flow.id === 'string' ? [[flow.id, flow]] : []));
|
|
37
|
-
const references = Array.isArray(project.flowReferences) && project.flowReferences.length > 0
|
|
38
|
-
? project.flowReferences.filter(isRecord).flatMap(reference => typeof reference.flowId === 'string' ? [reference.flowId] : [])
|
|
39
|
-
: [...flowsById.keys()];
|
|
40
|
-
if (!references.length)
|
|
41
|
-
throw new PackageLoadError('The Studio Project contains no Flow references.');
|
|
42
|
-
if (new Set(references).size !== references.length)
|
|
43
|
-
throw new PackageLoadError('The Studio Project contains duplicate Flow references.');
|
|
44
|
-
const definitions = [{ id: project.id, kind: 'project', name: project.name }];
|
|
45
|
-
const actionOutputs = new Map();
|
|
46
|
-
const actionRuntimes = new Map();
|
|
47
|
-
if (Array.isArray(project.actions))
|
|
48
|
-
for (const action of project.actions.filter(isRecord)) {
|
|
49
|
-
if (typeof action.id !== 'string')
|
|
50
|
-
continue;
|
|
51
|
-
const outputs = actionOutputNames(action);
|
|
52
|
-
actionOutputs.set(action.id, outputs);
|
|
53
|
-
actionOutputs.set(`${project.id}:${action.id}`, outputs);
|
|
54
|
-
actionRuntimes.set(action.id, action);
|
|
55
|
-
actionRuntimes.set(`${project.id}:${action.id}`, action);
|
|
56
|
-
}
|
|
57
|
-
const catalogs = flattenCatalogCandidates([candidate.actionCatalogs, project.actionCatalogs, project.catalogReferences]);
|
|
58
|
-
mergeActionOutputs(actionOutputs, actionOutputMap(catalogs));
|
|
59
|
-
mergeActionRuntimes(actionRuntimes, actionRuntimeMap(catalogs));
|
|
60
|
-
const operationRecords = Array.isArray(project.operations) ? project.operations.filter(isRecord).flatMap(operation => typeof operation.id === 'string' ? [operation] : []) : [];
|
|
61
|
-
if (new Set(operationRecords.map(operation => operation.id)).size !== operationRecords.length)
|
|
62
|
-
throw new PackageLoadError('The Studio Project contains duplicate Operation definitions.');
|
|
63
|
-
const operations = new Map(operationRecords.map(operation => [operation.id, operation]));
|
|
64
|
-
const flows = references.map(flowId => {
|
|
65
|
-
const flow = flowsById.get(flowId);
|
|
66
|
-
if (!flow)
|
|
67
|
-
throw new PackageLoadError(`The Studio Project references missing Flow ${flowId}.`);
|
|
68
|
-
const projectAliases = Array.isArray(project.variables)
|
|
69
|
-
? variableAliasesForFlow(project.variables, flow)
|
|
70
|
-
: {};
|
|
71
|
-
const converted = convertStudioFlow(flow, definitions, operations, new Set(), actionOutputs, projectAliases, actionRuntimes);
|
|
72
|
-
definitions.push({ id: converted.id, kind: 'flow', name: converted.name });
|
|
73
|
-
return converted;
|
|
74
|
-
});
|
|
75
|
-
return { ordering: 'routine', schemaVersion: RUNNER_PACKAGE_SCHEMA_VERSION, artifactSchemaVersion: STUDIO_ARTIFACT_SCHEMA_VERSION, packageId: `studio-project-${project.id}`, target: { kind: 'project', id: project.id, name: project.name }, definitions, steps: [], flows, requiredInputs: [...new Set(flows.flatMap(flow => flow.requiredInputs ?? []))] };
|
|
76
|
-
}
|
|
77
|
-
function actionOutputMap(value) {
|
|
78
|
-
const result = new Map();
|
|
79
|
-
if (!Array.isArray(value))
|
|
80
|
-
return result;
|
|
81
|
-
for (const catalog of value.filter(isRecord)) {
|
|
82
|
-
if (!Array.isArray(catalog.actions))
|
|
83
|
-
continue;
|
|
84
|
-
for (const action of catalog.actions.filter(isRecord)) {
|
|
85
|
-
if (typeof action.id !== 'string')
|
|
86
|
-
continue;
|
|
87
|
-
const outputs = actionOutputNames(action);
|
|
88
|
-
if (typeof action.clientId === 'string')
|
|
89
|
-
result.set(`${action.clientId}:${action.id}`, outputs);
|
|
90
|
-
result.set(action.id, outputs);
|
|
91
|
-
if (typeof action.clientId === 'string')
|
|
92
|
-
result.set(`studio:${action.clientId}:${action.id}`, outputs);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return result;
|
|
96
|
-
}
|
|
97
|
-
function flattenCatalogCandidates(value) {
|
|
98
|
-
if (Array.isArray(value))
|
|
99
|
-
return value.flatMap(flattenCatalogCandidates);
|
|
100
|
-
if (!isRecord(value))
|
|
101
|
-
return [];
|
|
102
|
-
if (Array.isArray(value.actions))
|
|
103
|
-
return [value];
|
|
104
|
-
return [value.catalog, value.definition].flatMap(flattenCatalogCandidates);
|
|
105
|
-
}
|
|
106
|
-
function mergeActionOutputs(target, source) { for (const [key, value] of source)
|
|
107
|
-
target.set(key, value); }
|
|
108
|
-
function actionOutputNames(action) {
|
|
109
|
-
const declared = Array.isArray(action.outputs) ? action.outputs.filter(isRecord).flatMap(output => typeof output.name === 'string' ? [output.name] : []) : [];
|
|
110
|
-
if (action.type !== 'api' && !isRecord(action.api))
|
|
111
|
-
return declared;
|
|
112
|
-
return [...new Set([...declared, 'status', 'body', 'headers', 'cookies'])];
|
|
113
|
-
}
|
|
114
|
-
function actionRuntimeMap(value) {
|
|
115
|
-
const result = new Map();
|
|
116
|
-
if (!Array.isArray(value))
|
|
117
|
-
return result;
|
|
118
|
-
for (const catalog of value.filter(isRecord)) {
|
|
119
|
-
if (!Array.isArray(catalog.actions))
|
|
120
|
-
continue;
|
|
121
|
-
for (const action of catalog.actions.filter(isRecord)) {
|
|
122
|
-
if (typeof action.id !== 'string')
|
|
123
|
-
continue;
|
|
124
|
-
result.set(action.id, action);
|
|
125
|
-
if (typeof action.clientId === 'string')
|
|
126
|
-
result.set(`${action.clientId}:${action.id}`, action);
|
|
127
|
-
if (typeof action.clientId === 'string')
|
|
128
|
-
result.set(`studio:${action.clientId}:${action.id}`, action);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
return result;
|
|
132
|
-
}
|
|
133
|
-
function mergeActionRuntimes(target, source) { for (const [key, value] of source)
|
|
134
|
-
target.set(key, value); }
|
|
135
|
-
function convertStudioFlow(flow, definitions, operations, operationStack = new Set(), actionOutputs = new Map(), inheritedAliases = {}, actionRuntimes = new Map()) {
|
|
136
|
-
if (typeof flow.id !== 'string' || typeof flow.name !== 'string' || !Array.isArray(flow.nodes) || !Array.isArray(flow.edges))
|
|
137
|
-
throw new PackageLoadError('The Studio Flow artifact is incomplete.');
|
|
138
|
-
const requiredInputs = Array.isArray(flow.inputs)
|
|
139
|
-
? flow.inputs.filter(isRecord).filter(input => input.required === true).flatMap(input => typeof input.name === 'string' ? [input.name] : [])
|
|
140
|
-
: [];
|
|
141
|
-
const inputDeclarations = (Array.isArray(flow.inputs) ? flow.inputs.filter(isRecord) : []).map(input => ({ name: String(input.name), type: (input.type ?? 'string'), required: input.required === true, ...(Object.hasOwn(input, 'defaultValue') ? { defaultValue: input.defaultValue } : {}) }));
|
|
142
|
-
return { id: flow.id, name: flow.name, inputDeclarations, steps: convertNodes(orderedRoutineNodes(flow), flow.edges, definitions, operations, operationStack, actionOutputs, { ...inheritedAliases, ...variableAliases(flow.variables), ...Object.fromEntries(inputDeclarations.map(input => [input.name, `$inputs.${input.name}`])) }, actionRuntimes), requiredInputs };
|
|
143
|
-
}
|
|
144
|
-
function convertNodes(nodes, edges, definitions, operations, operationStack = new Set(), actionOutputs = new Map(), inheritedAliases = {}, actionRuntimes = new Map()) {
|
|
145
|
-
const validNodes = nodes.filter(isRecord);
|
|
146
|
-
const nodeIds = new Set(validNodes.flatMap(node => typeof node.id === 'string' ? [node.id] : []));
|
|
147
|
-
for (const edge of edges.filter(isRecord)) {
|
|
148
|
-
if (typeof edge.source !== 'string' || typeof edge.target !== 'string' || !nodeIds.has(edge.source) || !nodeIds.has(edge.target)) {
|
|
149
|
-
throw new PackageLoadError('The Studio Flow contains an edge that references an unknown node.');
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return validNodes.map(node => {
|
|
153
|
-
if (typeof node.id !== 'string' || typeof node.type !== 'string' || typeof node.label !== 'string')
|
|
154
|
-
throw new PackageLoadError('The Studio Flow contains an incomplete node.');
|
|
155
|
-
const inputs = convertInputs(node.inputs, { ...inheritedAliases, ...variableAliases(node.variables) });
|
|
156
|
-
if (node.type === 'action') {
|
|
157
|
-
if (typeof node.actionId !== 'string')
|
|
158
|
-
throw new PackageLoadError(`Studio Action node ${node.id} has no action reference.`);
|
|
159
|
-
const runtimeAction = isRecord(node.actionDefinition) ? node.actionDefinition : actionRuntimes.get(`${node.clientId ?? 'project'}:${node.actionId}`) ?? actionRuntimes.get(node.actionId);
|
|
160
|
-
const api = isRecord(runtimeAction?.api) ? runtimeAction.api : undefined;
|
|
161
|
-
const isApiAction = runtimeAction?.type === 'api' || api !== undefined;
|
|
162
|
-
const action = isApiAction ? `http.${node.actionId}` : `studio:${node.clientId ?? 'project'}:${node.actionId}`;
|
|
163
|
-
if (!definitions.some(definition => definition.id === action))
|
|
164
|
-
definitions.push({ id: action, kind: 'action', name: node.label });
|
|
165
|
-
const outputNames = isRecord(node.actionDefinition) ? actionOutputNames(node.actionDefinition) : actionOutputs.get(`${node.clientId ?? 'project'}:${node.actionId}`) ?? actionOutputs.get(node.actionId) ?? [];
|
|
166
|
-
const response = api && isRecord(api.response) ? api.response : undefined;
|
|
167
|
-
const responseFields = response && Array.isArray(response.fields)
|
|
168
|
-
? Object.fromEntries(response.fields.filter(isApiResponseField).map(field => [field.name, field.path]))
|
|
169
|
-
: undefined;
|
|
170
|
-
const apiInputs = api ? {
|
|
171
|
-
...(typeof api.url === 'string' ? { url: runtimeTemplate(api.url) } : {}),
|
|
172
|
-
...(typeof api.method === 'string' ? { method: api.method } : {}),
|
|
173
|
-
...(api.query !== undefined ? { query: runtimeTemplates(parseQuery(api.query)) } : {}),
|
|
174
|
-
...(api.body !== undefined ? { body: runtimeTemplates(api.body) } : {}),
|
|
175
|
-
...(api.headers !== undefined ? { headers: runtimeTemplates(parseHeaders(api.headers)) } : {})
|
|
176
|
-
} : {};
|
|
177
|
-
const adapterConfig = isApiAction ? {
|
|
178
|
-
...(responseFields && Object.keys(responseFields).length ? { responseFields } : {}),
|
|
179
|
-
...(response && typeof response.headers === 'string' ? { responseHeadersName: response.headers } : {}),
|
|
180
|
-
...(response && typeof response.body === 'string' ? { responseBodyName: response.body } : {})
|
|
181
|
-
} : undefined;
|
|
182
|
-
return { id: node.id, name: node.label, action, output: Object.fromEntries(outputNames.map(name => [name, null])), delayMs: literalSeconds(isRecord(node.delaySeconds) ? node.delaySeconds : undefined), bindings: inputs.bindings, staticInputs: { ...apiInputs, ...inputs.staticInputs }, ...(adapterConfig ? { adapterConfig } : {}) };
|
|
183
|
-
}
|
|
184
|
-
if (node.type === 'block') {
|
|
185
|
-
const children = Array.isArray(node.nodes) ? convertNodes(orderedRoutineNodes(node), Array.isArray(node.edges) ? node.edges : [], definitions, operations, operationStack, actionOutputs, inheritedAliases, actionRuntimes) : [];
|
|
186
|
-
const settings = isRecord(node.settings) ? node.settings : {};
|
|
187
|
-
const iterations = literalNumber(settings.count);
|
|
188
|
-
const condition = controlCondition(settings.condition, inheritedAliases);
|
|
189
|
-
const durationMs = literalNumber(settings.durationMs) ?? (literalNumber(settings.durationMinutes) !== undefined ? literalNumber(settings.durationMinutes) * 60_000 : undefined);
|
|
190
|
-
const iterationDelayMs = literalSeconds(isRecord(settings.iterationDelaySeconds) ? settings.iterationDelaySeconds : undefined);
|
|
191
|
-
if (isRecord(settings.count) && settings.count.type !== 'literal')
|
|
192
|
-
throw new PackageLoadError(`Studio Control Block ${node.id} uses a runtime count that Runner cannot resolve from the artifact.`);
|
|
193
|
-
const isParallel = settings.parallel === true || settings.mode === 'parallel';
|
|
194
|
-
const branches = Array.isArray(settings.branches)
|
|
195
|
-
? settings.branches.filter(isRecord).flatMap((branch, index) => {
|
|
196
|
-
const branchNodes = Array.isArray(branch.nodes) ? branch.nodes : [];
|
|
197
|
-
const branchEdges = Array.isArray(branch.edges) ? branch.edges : [];
|
|
198
|
-
const branchChildren = convertNodes(orderedRoutineNodes({ ...branch, nodes: branchNodes }), branchEdges, definitions, operations, operationStack, actionOutputs, inheritedAliases, actionRuntimes);
|
|
199
|
-
const branchCondition = branch.condition === undefined && isParallel ? true : controlCondition(branch.condition, inheritedAliases);
|
|
200
|
-
return typeof branchCondition === 'boolean' || branchCondition ? [{ id: typeof branch.id === 'string' ? branch.id : `branch-${index + 1}`, name: typeof branch.name === 'string' ? branch.name : undefined, condition: branchCondition ?? false, children: branchChildren }] : [];
|
|
201
|
-
})
|
|
202
|
-
: [];
|
|
203
|
-
if (!children.length && !branches.length)
|
|
204
|
-
throw new PackageLoadError(`Studio Control Block ${node.id} has no nested nodes.`);
|
|
205
|
-
const allChildren = branches.length ? branches.flatMap(branch => branch.children) : children;
|
|
206
|
-
const controlType = isParallel && branches.length ? 'parallel' : branches.length ? 'branch' : iterations && iterations > 1 || durationMs !== undefined || condition !== undefined ? 'repeat' : 'sequence';
|
|
207
|
-
const merge = settings.merge === 'first' || settings.merge === 'last' ? settings.merge : 'collect';
|
|
208
|
-
const mergeBindings = isRecord(settings.mergeBindings) && Object.entries(settings.mergeBindings).every(([, source]) => typeof source === 'string') ? Object.fromEntries(Object.entries(settings.mergeBindings).filter(([, source]) => typeof source === 'string')) : undefined;
|
|
209
|
-
return { id: node.id, name: node.label, action: isParallel ? 'control.parallel' : branches.length ? 'control.branch' : 'control.sequence', kind: 'control-block', control: { type: controlType, ...(iterations !== undefined ? { iterations } : {}), ...(condition !== undefined ? { condition } : {}), ...(durationMs !== undefined ? { durationMs } : {}), ...(iterationDelayMs !== undefined ? { iterationDelayMs } : {}), ...(isParallel ? { join: 'all', merge, ...(mergeBindings ? { mergeBindings } : {}) } : {}), ...(branches.length ? { branches } : {}) }, output: {}, children: allChildren };
|
|
210
|
-
}
|
|
211
|
-
if (node.type === 'operation') {
|
|
212
|
-
if (typeof node.operationId !== 'string')
|
|
213
|
-
throw new PackageLoadError(`Studio Operation node ${node.id} has no Operation reference.`);
|
|
214
|
-
const operation = isRecord(node.body) ? node.body : operations?.get(node.operationId);
|
|
215
|
-
if (!operation)
|
|
216
|
-
throw new PackageLoadError(`Studio Operation ${node.operationId} is not present in the Project catalog.`);
|
|
217
|
-
if (!isRecord(node.body) && operationStack.has(node.operationId))
|
|
218
|
-
throw new PackageLoadError(`Studio Operation catalog contains a recursive reference to ${node.operationId}.`);
|
|
219
|
-
const nested = convertStudioFlow(operation, definitions, operations, new Set([...operationStack, node.operationId]), actionOutputs, inheritedAliases, actionRuntimes);
|
|
220
|
-
const outputNames = Array.isArray(operation.outputs)
|
|
221
|
-
? operation.outputs.filter(isRecord).flatMap(output => typeof output.name === 'string' ? [output.name] : [])
|
|
222
|
-
: isRecord(operation.outputBindings) ? Object.keys(operation.outputBindings) : [];
|
|
223
|
-
const returned = convertInputs(operation.outputBindings ?? {}, inheritedAliases);
|
|
224
|
-
const locals = Object.fromEntries((Array.isArray(operation.variables) ? operation.variables.filter(isRecord) : []).filter(variable => typeof variable.name === 'string' && Object.hasOwn(variable, 'initialValue')).map(variable => [String(variable.name), variable.initialValue]));
|
|
225
|
-
return { id: node.id, name: node.label, action: `operation:${node.operationId}`, kind: 'operation', output: Object.fromEntries(outputNames.map(name => [name, null])), inputDeclarations: nested.inputDeclarations, bindings: inputs.bindings, staticInputs: { ...locals, ...inputs.staticInputs }, children: nested.steps, outputBindings: returned.bindings, staticOutputs: returned.staticInputs };
|
|
226
|
-
}
|
|
227
|
-
throw new PackageLoadError(`Studio node type ${node.type} is not supported by Runner.`);
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
function variableAliases(value) {
|
|
231
|
-
if (!Array.isArray(value))
|
|
232
|
-
return {};
|
|
233
|
-
return Object.fromEntries(value.filter(isRecord).flatMap(variable => {
|
|
234
|
-
const link = isRecord(variable.link) ? variable.link : undefined;
|
|
235
|
-
const name = typeof variable.name === 'string' ? variable.name : undefined;
|
|
236
|
-
const sourceNodeId = link && typeof link.sourceNodeId === 'string' ? link.sourceNodeId : undefined;
|
|
237
|
-
const sourceLabel = link && typeof link.sourceLabel === 'string' ? link.sourceLabel : undefined;
|
|
238
|
-
const outputName = sourceLabel?.match(/output\s+([^\s]+)$/i)?.[1] ?? name;
|
|
239
|
-
return name && sourceNodeId && outputName ? [[name, `$steps.${sourceNodeId}.${outputName}`]] : [];
|
|
240
|
-
}));
|
|
241
|
-
}
|
|
242
|
-
function variableAliasesForFlow(value, flow) {
|
|
243
|
-
const aliases = variableAliases(value);
|
|
244
|
-
if (!Array.isArray(value) || !Array.isArray(flow.nodes))
|
|
245
|
-
return aliases;
|
|
246
|
-
const nodes = flow.nodes.filter(isRecord);
|
|
247
|
-
for (const variable of value.filter(isRecord)) {
|
|
248
|
-
const link = isRecord(variable.link) ? variable.link : undefined;
|
|
249
|
-
const name = typeof variable.name === 'string' ? variable.name : undefined;
|
|
250
|
-
const sourceLabel = link && typeof link.sourceLabel === 'string' ? link.sourceLabel : undefined;
|
|
251
|
-
const outputName = sourceLabel?.match(/output\s+([^\s]+)$/i)?.[1] ?? name;
|
|
252
|
-
const operationName = sourceLabel?.match(/^Operation:\s*(.+?)\s+output\s+/i)?.[1];
|
|
253
|
-
if (!name || !outputName || !operationName)
|
|
254
|
-
continue;
|
|
255
|
-
const operationNode = nodes.find(node => node.type === 'operation' && node.label === operationName);
|
|
256
|
-
if (typeof operationNode?.id === 'string')
|
|
257
|
-
aliases[name] = `$steps.${operationNode.id}.${outputName}`;
|
|
258
|
-
}
|
|
259
|
-
return aliases;
|
|
260
|
-
}
|
|
261
|
-
function convertInputs(value, aliases = {}) {
|
|
262
|
-
const bindings = {};
|
|
263
|
-
const staticInputs = {};
|
|
264
|
-
if (!isRecord(value))
|
|
265
|
-
return { bindings, staticInputs };
|
|
266
|
-
for (const [name, binding] of Object.entries(value)) {
|
|
267
|
-
if (!isRecord(binding) || typeof binding.type !== 'string')
|
|
268
|
-
throw new PackageLoadError(`Studio input ${name} is invalid.`);
|
|
269
|
-
if (binding.type === 'literal')
|
|
270
|
-
staticInputs[name] = runtimeTemplates(binding.value);
|
|
271
|
-
else if (binding.type === 'variable' && typeof binding.variableName === 'string')
|
|
272
|
-
bindings[name] = aliases[binding.variableName] ?? `$inputs.${binding.variableName}`;
|
|
273
|
-
else if (binding.type === 'output' && typeof binding.nodeId === 'string' && typeof binding.outputName === 'string')
|
|
274
|
-
bindings[name] = `$steps.${binding.nodeId}.${binding.outputName}`;
|
|
275
|
-
else
|
|
276
|
-
throw new PackageLoadError(`Studio input ${name} uses an unsupported binding.`);
|
|
277
|
-
}
|
|
278
|
-
return { bindings, staticInputs };
|
|
279
|
-
}
|
|
280
|
-
function parseHeaders(value) {
|
|
281
|
-
const parsed = typeof value === 'string'
|
|
282
|
-
? (() => { try {
|
|
283
|
-
return JSON.parse(value);
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
return undefined;
|
|
287
|
-
} })()
|
|
288
|
-
: value;
|
|
289
|
-
if (!isRecord(parsed))
|
|
290
|
-
return {};
|
|
291
|
-
return Object.fromEntries(Object.entries(parsed).map(([name, headerValue]) => [name, String(headerValue)]));
|
|
292
|
-
}
|
|
293
|
-
function parseQuery(value) {
|
|
294
|
-
const parsed = typeof value === 'string'
|
|
295
|
-
? (() => { try {
|
|
296
|
-
return JSON.parse(value);
|
|
297
|
-
}
|
|
298
|
-
catch {
|
|
299
|
-
return undefined;
|
|
300
|
-
} })()
|
|
301
|
-
: value;
|
|
302
|
-
if (!isRecord(parsed) || Array.isArray(parsed))
|
|
303
|
-
throw new PackageLoadError('Studio API query parameters must be a JSON object.');
|
|
304
|
-
return parsed;
|
|
305
|
-
}
|
|
306
|
-
function runtimeTemplates(value) {
|
|
307
|
-
if (typeof value === 'string')
|
|
308
|
-
return runtimeTemplate(value);
|
|
309
|
-
if (Array.isArray(value))
|
|
310
|
-
return value.map(runtimeTemplates);
|
|
311
|
-
if (isRecord(value))
|
|
312
|
-
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, runtimeTemplates(item)]));
|
|
313
|
-
return value;
|
|
314
|
-
}
|
|
315
|
-
function runtimeTemplate(value) { return value.replace(/\$([A-Za-z_][A-Za-z0-9_]*)/g, '{{inputs.$1}}'); }
|
|
316
|
-
function literalNumber(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'number' && Number.isInteger(value.value) ? value.value : undefined; }
|
|
317
|
-
function literalBoolean(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'boolean' ? value.value : undefined; }
|
|
318
|
-
function controlCondition(value, aliases) {
|
|
319
|
-
const literal = literalBoolean(value);
|
|
320
|
-
if (literal !== undefined)
|
|
321
|
-
return literal;
|
|
322
|
-
if (!isRecord(value))
|
|
323
|
-
return undefined;
|
|
324
|
-
if (typeof value.binding === 'string')
|
|
325
|
-
return { binding: value.binding, ...(Object.hasOwn(value, 'equals') ? { equals: value.equals } : {}), ...(Object.hasOwn(value, 'notEquals') ? { notEquals: value.notEquals } : {}), ...(typeof value.exists === 'boolean' ? { exists: value.exists } : {}) };
|
|
326
|
-
if (value.type === 'variable' && typeof value.variableName === 'string')
|
|
327
|
-
return { binding: aliases[value.variableName] ?? `$inputs.${value.variableName}` };
|
|
328
|
-
if (value.type === 'output' && typeof value.nodeId === 'string' && typeof value.outputName === 'string')
|
|
329
|
-
return { binding: `$steps.${value.nodeId}.${value.outputName}` };
|
|
330
|
-
if (value.type === 'condition' && Array.isArray(value.clauses) && value.clauses.some(clause => isRecord(clause) && typeof clause.parameter === 'string' && clause.parameter.trim()))
|
|
331
|
-
throw new PackageLoadError('Structured Control Block predicates are not supported by the shared execution condition contract.');
|
|
332
|
-
return undefined;
|
|
333
|
-
}
|
|
334
|
-
function literalSeconds(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'number' && value.value >= 0 ? value.value * 1000 : undefined; }
|
|
335
|
-
function isRecord(value) { return typeof value === 'object' && value !== null; }
|
|
1
|
+
import { lowerStudioHierarchy } from './studio-hierarchy-loader.js';
|
|
2
|
+
export { lowerStudioHierarchy, loadHierarchyExecutionPackage } from './studio-hierarchy-loader.js';
|
|
3
|
+
export function loadStudioFlowArtifact(artifact) { return lowerStudioHierarchy(artifact); }
|
|
4
|
+
export function loadStudioProjectFile(artifact) { return lowerStudioHierarchy(artifact); }
|
|
336
5
|
//# sourceMappingURL=studio-artifact-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio-artifact-loader.js","sourceRoot":"","sources":["../../../src/runner/studio-artifact-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"studio-artifact-loader.js","sourceRoot":"","sources":["../../../src/runner/studio-artifact-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,6BAA6B,EAAC,MAAM,2BAA2B,CAAC;AAC7F,MAAM,UAAU,sBAAsB,CAAC,QAAqD,IAAE,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;AACrI,MAAM,UAAU,qBAAqB,CAAC,QAAoD,IAAE,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExecutionPackageV7, StudioProjectFile, StudioFlowArtifact } from '@qaick/contract';
|
|
2
|
+
/** Artifact v10 → Execution v7 only. This entry point does not submit to the legacy Executor. */
|
|
3
|
+
export declare function lowerStudioHierarchy(candidate: StudioProjectFile | StudioFlowArtifact, options?: {
|
|
4
|
+
flowId?: string;
|
|
5
|
+
}): ExecutionPackageV7;
|
|
6
|
+
/** Execution v7 load/validation is separate from activation. */
|
|
7
|
+
export declare function loadHierarchyExecutionPackage(serialized: string, options?: {
|
|
8
|
+
flowId?: string;
|
|
9
|
+
}): ExecutionPackageV7;
|
|
10
|
+
//# sourceMappingURL=studio-hierarchy-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-hierarchy-loader.d.ts","sourceRoot":"","sources":["../../../src/runner/studio-hierarchy-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2E,kBAAkB,EAAyH,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAWjS,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,SAAS,EAAC,iBAAiB,GAAC,kBAAkB,EAAC,OAAO,GAAC;IAAC,MAAM,CAAC,EAAC,MAAM,CAAA;CAAI,GAAE,kBAAkB,CAmKlI;AACD,gEAAgE;AAChE,wBAAgB,6BAA6B,CAAC,UAAU,EAAC,MAAM,EAAC,OAAO,GAAC;IAAC,MAAM,CAAC,EAAC,MAAM,CAAA;CAAI,GAAE,kBAAkB,CAQ9G"}
|