@yourtechbudstudio/isagi-workflow-verifier 0.1.0 → 0.1.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/README.md +4 -4
- package/dist/cli.d.ts +3 -3
- package/dist/cli.js +14 -69
- package/dist/cli.js.map +1 -1
- package/dist/receipt.d.ts +3 -3
- package/dist/receipt.js +3 -3
- package/dist/structure.d.ts +12 -6
- package/dist/structure.js +72 -28
- package/dist/structure.js.map +1 -1
- package/dist/validate-artifact.d.ts +9 -0
- package/dist/validate-artifact.js +72 -0
- package/dist/validate-artifact.js.map +1 -0
- package/package.json +3 -8
- package/dist/closed-bundle.d.ts +0 -2
- package/dist/closed-bundle.js +0 -393
- package/dist/closed-bundle.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,12 +6,12 @@ Verify an already-built Isagi workflow package and write its build receipt:
|
|
|
6
6
|
isagi-workflow-verify --workflow .
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
The verifier has one job: raise the probability that the Isagi runtime loads the workflow build without errors. It checks ahead of time
|
|
9
|
+
The verifier has one job: raise the probability that the Isagi runtime loads the workflow build without errors. It checks ahead of time what the runtime checks at load time — exact SDK and verifier pins, symlink-free sources, a `dist/index.js` bundle that default-exports a loadable workflow definition, and a structurally valid graph — and also that `command()` returns a valid manifest, importing the bundle in a bounded child process. When every gate passes it fingerprints the sources, the artifact, and the declared structure into `dist/isagi-workflow-build.json`; the runtime re-checks that receipt and refuses to run a workflow whose source or artifact no longer matches it. How the package installs dependencies is deliberately outside this contract.
|
|
10
10
|
|
|
11
|
-
The workflow package owns compilation and quality. Run the canonical `build` script before verification, and run your own `typecheck` and `test` scripts before that: the verifier never compiles, installs dependencies, or runs package scripts, and it does not gate on tests. The current versions are `@yourtechbudstudio/isagi-workflow-sdk@0.1.
|
|
11
|
+
The workflow package owns compilation and quality. Run the canonical `build` script before verification, and run your own `typecheck` and `test` scripts before that: the verifier never compiles, installs dependencies, or runs package scripts, and it does not gate on tests. The current versions are `@yourtechbudstudio/isagi-workflow-sdk@0.1.1`, `@yourtechbudstudio/isagi-workflow-verifier@0.1.1`, and `esbuild@0.28.0`. For the full authoring guide, use Isagi's installed `isagi-docs` skill.
|
|
12
12
|
|
|
13
13
|
## Trust boundary
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
The verifier imports a copy of `dist/index.js` on its own, from an empty temporary directory, in a child process with a time limit and an output limit, so a bundle whose top-level imports still name a package it did not inline fails verification. It checks that the workflow loads and declares a valid shape; it does not inspect what the workflow code does. Workflows remain trusted Node.js code and may intentionally access runtime files, processes, network resources, and Node built-ins. Verification is lifecycle containment, not a sandbox.
|
|
16
16
|
|
|
17
|
-
The `./receipt` export contains pure manifest parsing, canonical serialization, path policy, compatibility constants, and hash primitives for consumers that need to check a receipt without executing verifier operations. The `./structure` export contains the single structural inspection algorithm — descriptor extraction, validation diagnostics, canonicalization, and hashing — which the Isagi runtime re-runs against the imported artifact so a receipt cannot describe a different graph than the one that executes.
|
|
17
|
+
The `./receipt` export contains pure manifest parsing, canonical serialization, path policy, compatibility constants, and hash primitives for consumers that need to check a receipt without executing verifier operations. The `./structure` export contains the single structural inspection algorithm — descriptor extraction, validation diagnostics, canonicalization, and hashing — which the Isagi runtime re-runs against the imported artifact so a receipt cannot describe a different graph than the one that executes. It also exports the `command()` manifest check the verifier applies.
|
package/dist/cli.d.ts
CHANGED
|
@@ -13,9 +13,9 @@ export interface ProcessResult {
|
|
|
13
13
|
export type ProcessRunner = (spec: ProcessSpec) => Promise<ProcessResult>;
|
|
14
14
|
export declare function runProcess(spec: ProcessSpec): Promise<ProcessResult>;
|
|
15
15
|
/**
|
|
16
|
-
* The verifier front-runs the runtime loader:
|
|
17
|
-
* performs before importing a workflow,
|
|
18
|
-
* time. Quality gates (typecheck, tests) are deliberately absent — they are the author's
|
|
16
|
+
* The verifier front-runs the runtime loader: its gates mirror the checks the Isagi runtime
|
|
17
|
+
* performs before importing a workflow, and it also checks the command() manifest, so failures
|
|
18
|
+
* surface at authoring time instead of load or launch time. Quality gates (typecheck, tests) are deliberately absent — they are the author's
|
|
19
19
|
* responsibility and do not affect whether the runtime can load the artifact.
|
|
20
20
|
*/
|
|
21
21
|
export declare function verifyWorkflow(workflowArgument: string, runner?: ProcessRunner): Promise<void>;
|
package/dist/cli.js
CHANGED
|
@@ -4,10 +4,9 @@ import { randomUUID } from 'node:crypto';
|
|
|
4
4
|
import { lstat, mkdtemp, readFile, readdir, rename, rm, stat, unlink, writeFile, } from 'node:fs/promises';
|
|
5
5
|
import { tmpdir } from 'node:os';
|
|
6
6
|
import { dirname, join, resolve } from 'node:path';
|
|
7
|
-
import { fileURLToPath
|
|
8
|
-
import { scanDeferredExecutableDependencies } from './closed-bundle.js';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
9
8
|
import { hashArtifact, hashWorkflowInputs, isWorkflowSourcePath, serializeWorkflowBuildManifest, supportedWorkflowContractVersion, workflowBuildManifestVersion, workflowSdkPackage, workflowSdkVersion, workflowVerifierPackage, workflowVerifierVersion, } from './receipt.js';
|
|
10
|
-
import {
|
|
9
|
+
import { hashDescriptor, } from './structure.js';
|
|
11
10
|
const outputLimit = 128 * 1024;
|
|
12
11
|
const subprocessTimeoutMs = 120_000;
|
|
13
12
|
class VerificationError extends Error {
|
|
@@ -85,9 +84,9 @@ function terminateTree(pid) {
|
|
|
85
84
|
}, 1_000).unref();
|
|
86
85
|
}
|
|
87
86
|
/**
|
|
88
|
-
* The verifier front-runs the runtime loader:
|
|
89
|
-
* performs before importing a workflow,
|
|
90
|
-
* time. Quality gates (typecheck, tests) are deliberately absent — they are the author's
|
|
87
|
+
* The verifier front-runs the runtime loader: its gates mirror the checks the Isagi runtime
|
|
88
|
+
* performs before importing a workflow, and it also checks the command() manifest, so failures
|
|
89
|
+
* surface at authoring time instead of load or launch time. Quality gates (typecheck, tests) are deliberately absent — they are the author's
|
|
91
90
|
* responsibility and do not affect whether the runtime can load the artifact.
|
|
92
91
|
*/
|
|
93
92
|
export async function verifyWorkflow(workflowArgument, runner = runProcess) {
|
|
@@ -101,12 +100,7 @@ export async function verifyWorkflow(workflowArgument, runner = runProcess) {
|
|
|
101
100
|
const sourceHash = hashWorkflowInputs(await readSourceInputs(root));
|
|
102
101
|
const artifactPath = join(root, 'dist', 'index.js');
|
|
103
102
|
const artifactBytes = await readArtifact(artifactPath);
|
|
104
|
-
requireClosedBundle(artifactBytes);
|
|
105
103
|
const descriptor = await validateArtifact(root, artifactPath, runner);
|
|
106
|
-
const structureHash = hashDescriptor(descriptor);
|
|
107
|
-
// The structure file is written for every structurally valid bundle, so an author always has a
|
|
108
|
-
// machine-readable description of what they built.
|
|
109
|
-
await writeAtomic(join(root, 'dist', 'isagi-workflow-structure.json'), `${canonicalizeDescriptor(descriptor)}\n`, 'the workflow structure description');
|
|
110
104
|
const manifest = {
|
|
111
105
|
manifestVersion: workflowBuildManifestVersion,
|
|
112
106
|
workflowContractVersion: supportedWorkflowContractVersion,
|
|
@@ -116,12 +110,11 @@ export async function verifyWorkflow(workflowArgument, runner = runProcess) {
|
|
|
116
110
|
artifact: { entry: 'dist/index.js', sha256: hashArtifact(artifactBytes) },
|
|
117
111
|
structure: {
|
|
118
112
|
descriptorVersion: descriptor.descriptorVersion,
|
|
119
|
-
sha256:
|
|
113
|
+
sha256: hashDescriptor(descriptor),
|
|
120
114
|
rootGraphKey: descriptor.rootGraphKey,
|
|
121
115
|
graphCount: descriptor.graphs.length,
|
|
122
116
|
},
|
|
123
117
|
};
|
|
124
|
-
// The receipt is written last, so a receipt never exists without its structure description.
|
|
125
118
|
await writeAtomic(join(root, 'dist', 'isagi-workflow-build.json'), serializeWorkflowBuildManifest(manifest), 'the build receipt');
|
|
126
119
|
}
|
|
127
120
|
function receiptPath(root) {
|
|
@@ -139,12 +132,6 @@ async function removeStaleReceipt(root) {
|
|
|
139
132
|
throw new VerificationError(`Could not remove the previous build receipt ${receiptPath(root)}: ${message(cause)}`);
|
|
140
133
|
}
|
|
141
134
|
}
|
|
142
|
-
function requireClosedBundle(artifactBytes) {
|
|
143
|
-
const diagnostics = scanDeferredExecutableDependencies(artifactBytes.toString('utf8'));
|
|
144
|
-
if (diagnostics.length === 0)
|
|
145
|
-
return;
|
|
146
|
-
throw new VerificationError(`dist/index.js is not a closed bundle. One artifact hash must pin one executable structure, so everything the artifact runs has to be inside it:\n${formatDiagnostics(diagnostics)}`);
|
|
147
|
-
}
|
|
148
135
|
function formatDiagnostics(diagnostics) {
|
|
149
136
|
return diagnostics
|
|
150
137
|
.map((diagnostic) => {
|
|
@@ -266,8 +253,8 @@ async function readArtifact(path) {
|
|
|
266
253
|
/**
|
|
267
254
|
* Imports the built artifact in an isolated child process the way the runtime loader will, reads
|
|
268
255
|
* its declared structure, and checks the exported workflow definition and its command() manifest.
|
|
269
|
-
* The child reports through a result file rather than stdout, so workflow
|
|
270
|
-
* import or command() cannot corrupt the report.
|
|
256
|
+
* The child (`validate-artifact.ts`) reports through a result file rather than stdout, so workflow
|
|
257
|
+
* code that logs during import or command() cannot corrupt the report.
|
|
271
258
|
*/
|
|
272
259
|
async function validateArtifact(root, artifact, runner) {
|
|
273
260
|
const isolatedRoot = await mkdtemp(join(tmpdir(), 'isagi-workflow-validation-'));
|
|
@@ -275,12 +262,10 @@ async function validateArtifact(root, artifact, runner) {
|
|
|
275
262
|
const isolatedArtifact = join(isolatedRoot, 'index.mjs');
|
|
276
263
|
await writeFile(isolatedArtifact, await readFile(artifact));
|
|
277
264
|
const resultPath = join(isolatedRoot, 'result.json');
|
|
278
|
-
const validatorPath = join(isolatedRoot, 'validate.mjs');
|
|
279
|
-
await writeFile(validatorPath, validatorSource(isolatedArtifact, resultPath, root, structureModulePath()));
|
|
280
265
|
try {
|
|
281
266
|
await runner({
|
|
282
267
|
command: process.execPath,
|
|
283
|
-
args: [validatorPath],
|
|
268
|
+
args: [validatorPath(), isolatedArtifact, resultPath, root],
|
|
284
269
|
cwd: isolatedRoot,
|
|
285
270
|
timeoutMs: 10_000,
|
|
286
271
|
});
|
|
@@ -315,52 +300,12 @@ async function validateArtifact(root, artifact, runner) {
|
|
|
315
300
|
}
|
|
316
301
|
}
|
|
317
302
|
/**
|
|
318
|
-
* The installed
|
|
319
|
-
*
|
|
320
|
-
*
|
|
303
|
+
* The installed validation child (`validate-artifact.ts`), resolved as a real file path next to
|
|
304
|
+
* this module so a packed installation works outside this monorepo. CLI integration tests therefore
|
|
305
|
+
* run against the built CLI, whose sibling is `dist`.
|
|
321
306
|
*/
|
|
322
|
-
function
|
|
323
|
-
return join(dirname(fileURLToPath(import.meta.url)), '
|
|
324
|
-
}
|
|
325
|
-
function validatorSource(artifactPath, resultPath, worktreePath, structurePath) {
|
|
326
|
-
return [
|
|
327
|
-
`import { writeFileSync } from 'node:fs';`,
|
|
328
|
-
`const finish = (report) => { writeFileSync(${JSON.stringify(resultPath)}, JSON.stringify(report)); process.exit(0); };`,
|
|
329
|
-
`const describe = (value) => (Array.isArray(value) ? 'an array' : value === null ? 'null' : typeof value);`,
|
|
330
|
-
`const cause = (error) => String((error && error.stack) || error);`,
|
|
331
|
-
`let structure;`,
|
|
332
|
-
`try { structure = await import(${JSON.stringify(pathToFileURL(structurePath).href)}); }`,
|
|
333
|
-
`catch (error) { finish({ ok: false, error: 'The verifier could not load its own structure module:\\n' + cause(error) }); }`,
|
|
334
|
-
`let artifact;`,
|
|
335
|
-
`try { artifact = await import(${JSON.stringify(pathToFileURL(artifactPath).href)}); }`,
|
|
336
|
-
`catch (error) { finish({ ok: false, error: 'Importing the bundle threw before any workflow definition could be read:\\n' + cause(error) }); }`,
|
|
337
|
-
`const result = structure.describeWorkflowModule(artifact);`,
|
|
338
|
-
`if (!result.ok) finish({ ok: false, error: 'The bundle does not declare a valid workflow structure.', diagnostics: result.diagnostics });`,
|
|
339
|
-
`const workflow = artifact.default;`,
|
|
340
|
-
`let manifest;`,
|
|
341
|
-
`try { manifest = await workflow.command({ worktreeId: 0, worktreePath: ${JSON.stringify(worktreePath)}, surfaceId: null, paneId: null, agentSessionId: null }); }`,
|
|
342
|
-
`catch (error) { finish({ ok: false, error: 'command() threw when called with a minimal origin. command() must succeed without optional surface, pane or agent-session context.\\n' + cause(error) }); }`,
|
|
343
|
-
`const problems = [];`,
|
|
344
|
-
`if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest)) problems.push('command() must return a manifest object; it returned ' + describe(manifest) + '.');`,
|
|
345
|
-
`else {`,
|
|
346
|
-
` if (typeof manifest.title !== 'string' || !manifest.title) problems.push('command() must return a manifest with a non-empty string title; found ' + describe(manifest.title) + '.');`,
|
|
347
|
-
` if (manifest.description !== undefined && typeof manifest.description !== 'string') problems.push('command() manifest description must be a string when present; found ' + describe(manifest.description) + '.');`,
|
|
348
|
-
` if (manifest.inputs !== undefined && !Array.isArray(manifest.inputs)) problems.push('command() manifest inputs must be an array when present; found ' + describe(manifest.inputs) + '.');`,
|
|
349
|
-
` for (const [index, input] of (Array.isArray(manifest.inputs) ? manifest.inputs : []).entries()) {`,
|
|
350
|
-
` const where = 'inputs[' + index + ']' + (input && typeof input.key === 'string' && input.key ? ' (key "' + input.key + '")' : '');`,
|
|
351
|
-
` if (!input || typeof input !== 'object') { problems.push('command() ' + where + ' must be an input object; found ' + describe(input) + '.'); continue; }`,
|
|
352
|
-
` if (!['text', 'select', 'multi-select', 'confirm'].includes(input.kind)) problems.push('command() ' + where + ' has kind ' + JSON.stringify(input.kind) + '; expected "text", "select", "multi-select", or "confirm".');`,
|
|
353
|
-
` if (typeof input.key !== 'string' || !input.key) problems.push('command() ' + where + ' needs a non-empty string key.');`,
|
|
354
|
-
` if (typeof input.label !== 'string' || !input.label) problems.push('command() ' + where + ' needs a non-empty string label.');`,
|
|
355
|
-
` if (input.kind === 'select' || input.kind === 'multi-select') {`,
|
|
356
|
-
` if (!Array.isArray(input.options)) problems.push('command() ' + where + ' is a ' + input.kind + ' input and needs an options array.');`,
|
|
357
|
-
` else for (const [optionIndex, option] of input.options.entries()) if (!option || typeof option.value !== 'string') problems.push('command() ' + where + ' options[' + optionIndex + '] needs a string value.');`,
|
|
358
|
-
` }`,
|
|
359
|
-
` }`,
|
|
360
|
-
`}`,
|
|
361
|
-
`finish(problems.length ? { ok: false, error: problems.join('\\n') } : { ok: true, descriptor: result.descriptor });`,
|
|
362
|
-
``,
|
|
363
|
-
].join('\n');
|
|
307
|
+
function validatorPath() {
|
|
308
|
+
return join(dirname(fileURLToPath(import.meta.url)), 'validate-artifact.js');
|
|
364
309
|
}
|
|
365
310
|
async function exists(path) {
|
|
366
311
|
try {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/receipt.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { workflowStructureDescriptorVersion } from './structure.js';
|
|
2
2
|
export declare const workflowBuildManifestVersion: 2;
|
|
3
|
-
export declare const supportedWorkflowContractVersion:
|
|
3
|
+
export declare const supportedWorkflowContractVersion: 5;
|
|
4
4
|
export declare const workflowSdkPackage: '@yourtechbudstudio/isagi-workflow-sdk';
|
|
5
5
|
export declare const workflowVerifierPackage: '@yourtechbudstudio/isagi-workflow-verifier';
|
|
6
|
-
export declare const workflowSdkVersion: '0.1.
|
|
7
|
-
export declare const workflowVerifierVersion: '0.1.
|
|
6
|
+
export declare const workflowSdkVersion: '0.1.1';
|
|
7
|
+
export declare const workflowVerifierVersion: '0.1.1';
|
|
8
8
|
export declare const workflowBuilderPackage: 'esbuild';
|
|
9
9
|
export declare const workflowBuilderVersion: '0.28.0';
|
|
10
10
|
export declare const workflowBuildCommand: 'esbuild src/index.ts --bundle --format=esm --platform=node --target=node22 --log-override:unsupported-dynamic-import=error --outfile=dist/index.js';
|
package/dist/receipt.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { workflowStructureDescriptorVersion } from './structure.js';
|
|
3
3
|
export const workflowBuildManifestVersion = 2;
|
|
4
|
-
export const supportedWorkflowContractVersion =
|
|
4
|
+
export const supportedWorkflowContractVersion = 5;
|
|
5
5
|
export const workflowSdkPackage = '@yourtechbudstudio/isagi-workflow-sdk';
|
|
6
6
|
export const workflowVerifierPackage = '@yourtechbudstudio/isagi-workflow-verifier';
|
|
7
|
-
export const workflowSdkVersion = '0.1.
|
|
8
|
-
export const workflowVerifierVersion = '0.1.
|
|
7
|
+
export const workflowSdkVersion = '0.1.1';
|
|
8
|
+
export const workflowVerifierVersion = '0.1.1';
|
|
9
9
|
export const workflowBuilderPackage = 'esbuild';
|
|
10
10
|
export const workflowBuilderVersion = '0.28.0';
|
|
11
11
|
export const workflowBuildCommand = 'esbuild src/index.ts --bundle --format=esm --platform=node --target=node22 --log-override:unsupported-dynamic-import=error --outfile=dist/index.js';
|
package/dist/structure.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The single structural inspection algorithm, shared by the verifier CLI, the runtime loader, and
|
|
3
|
-
* tests. It is pure: it never calls `init`, `run`, `choose`, `parameters`, `onResult`, `output`,
|
|
4
|
-
* `label`. It only reads plain data off an already-imported module object.
|
|
3
|
+
* tests. It is pure: it never calls `init`, `run`, `choose`, `parameters`, `onResult`, `output`,
|
|
4
|
+
* `plan`, or `label`. It only reads plain data off an already-imported module object.
|
|
5
5
|
*
|
|
6
6
|
* Importing a bundle still executes trusted module-level JavaScript. This is a structural contract
|
|
7
7
|
* check, not sandboxed static analysis of untrusted source.
|
|
8
8
|
*/
|
|
9
|
-
export declare const workflowStructureDescriptorVersion:
|
|
9
|
+
export declare const workflowStructureDescriptorVersion: 2;
|
|
10
10
|
export interface WorkflowStructureDescriptor {
|
|
11
11
|
readonly descriptorVersion: typeof workflowStructureDescriptorVersion;
|
|
12
|
-
readonly workflowContractVersion:
|
|
12
|
+
readonly workflowContractVersion: 5;
|
|
13
13
|
readonly rootGraphKey: string;
|
|
14
14
|
/** Sorted by key, so one structure always canonicalizes to the same bytes. */
|
|
15
15
|
readonly graphs: readonly GraphDescriptor[];
|
|
@@ -18,7 +18,6 @@ export interface GraphDescriptor {
|
|
|
18
18
|
readonly key: string;
|
|
19
19
|
readonly title: string;
|
|
20
20
|
readonly description?: string;
|
|
21
|
-
readonly intent?: 'business' | 'logical' | 'operational';
|
|
22
21
|
readonly stateFields: readonly string[];
|
|
23
22
|
readonly entry: string;
|
|
24
23
|
readonly nodes: readonly NodeDescriptor[];
|
|
@@ -55,7 +54,7 @@ export interface OutcomeDescriptor {
|
|
|
55
54
|
readonly reason?: string;
|
|
56
55
|
readonly title?: string;
|
|
57
56
|
}
|
|
58
|
-
export type StructureDiagnosticCode = 'invalid_export' | 'unsupported_contract' | 'missing_callback' | 'invalid_identifier' | 'missing_title' | '
|
|
57
|
+
export type StructureDiagnosticCode = 'invalid_export' | 'unsupported_contract' | 'missing_callback' | 'invalid_identifier' | 'missing_title' | 'missing_init' | 'invalid_state_field' | 'empty_state' | 'empty_graph' | 'identifier_collision' | 'unknown_node_kind' | 'subgraph_missing_graph' | 'missing_entry' | 'entry_not_executable' | 'edge_source_unknown' | 'duplicate_edge_source' | 'missing_outgoing_edge' | 'empty_destination_set' | 'duplicate_destination' | 'edge_destination_unknown' | 'no_outcomes' | 'invalid_label' | 'duplicate_graph_key' | 'recursive_graph_containment' | 'too_many_graphs' | 'too_many_nodes' | 'too_many_edges' | 'too_many_outcomes' | 'containment_too_deep' | 'graph_missing' | 'subgraph_registration_changed' | 'node_missing' | 'node_kind_changed' | 'edge_identity_changed' | 'destination_no_longer_declared' | 'outcome_missing' | 'outcome_kind_changed';
|
|
59
58
|
export interface StructureDiagnosticLocation {
|
|
60
59
|
readonly graphKey?: string;
|
|
61
60
|
readonly nodeId?: string;
|
|
@@ -76,6 +75,13 @@ export type StructureResult = {
|
|
|
76
75
|
readonly diagnostics: readonly StructureDiagnostic[];
|
|
77
76
|
};
|
|
78
77
|
export declare function describeWorkflowModule(moduleNamespace: unknown): StructureResult;
|
|
78
|
+
/**
|
|
79
|
+
* Checks the manifest a workflow's `command()` returned: a non-empty title, an optional string
|
|
80
|
+
* description, and optional well-formed launch inputs. Returns one message per problem, and none
|
|
81
|
+
* when the manifest is valid. Like `describeWorkflowModule`, it only reads plain data; calling
|
|
82
|
+
* `command()` is the caller's job.
|
|
83
|
+
*/
|
|
84
|
+
export declare function checkCommandManifest(manifest: unknown): readonly string[];
|
|
79
85
|
/**
|
|
80
86
|
* Writes the descriptor with a fixed key order, already-sorted arrays, and absent optional keys
|
|
81
87
|
* omitted, so the verifier and the runtime loader hash identical bytes for identical structure.
|
package/dist/structure.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
/**
|
|
3
3
|
* The single structural inspection algorithm, shared by the verifier CLI, the runtime loader, and
|
|
4
|
-
* tests. It is pure: it never calls `init`, `run`, `choose`, `parameters`, `onResult`, `output`,
|
|
5
|
-
* `label`. It only reads plain data off an already-imported module object.
|
|
4
|
+
* tests. It is pure: it never calls `init`, `run`, `choose`, `parameters`, `onResult`, `output`,
|
|
5
|
+
* `plan`, or `label`. It only reads plain data off an already-imported module object.
|
|
6
6
|
*
|
|
7
7
|
* Importing a bundle still executes trusted module-level JavaScript. This is a structural contract
|
|
8
8
|
* check, not sandboxed static analysis of untrusted source.
|
|
9
9
|
*/
|
|
10
|
-
export const workflowStructureDescriptorVersion =
|
|
10
|
+
export const workflowStructureDescriptorVersion = 2;
|
|
11
11
|
/**
|
|
12
12
|
* The contract version this release understands. `compatibility.test.ts` binds it to the SDK's
|
|
13
13
|
* `workflowContractVersion`.
|
|
@@ -17,7 +17,7 @@ export const workflowStructureDescriptorVersion = 1;
|
|
|
17
17
|
* local leaves the packed verifier — which authors may install as a standalone CLI — free of a
|
|
18
18
|
* runtime SDK resolution.
|
|
19
19
|
*/
|
|
20
|
-
const recognizedContractVersion =
|
|
20
|
+
const recognizedContractVersion = 5;
|
|
21
21
|
const limits = {
|
|
22
22
|
graphs: 512,
|
|
23
23
|
nodesPerGraph: 256,
|
|
@@ -70,15 +70,15 @@ export function describeWorkflowModule(moduleNamespace) {
|
|
|
70
70
|
field: 'command',
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
-
if (typeof workflow.
|
|
74
|
-
diagnostics.add('missing_callback', 'The workflow definition needs a
|
|
75
|
-
field: '
|
|
73
|
+
if (typeof workflow.parse !== 'function') {
|
|
74
|
+
diagnostics.add('missing_callback', 'The workflow definition needs a parse() function.', {
|
|
75
|
+
field: 'parse',
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
// Declared but malformed, not absent: `
|
|
78
|
+
// Declared but malformed, not absent: `placement` is optional, so only a present non-function
|
|
79
79
|
// is a defect. A workflow that omits it is placed in the current worktree and surface.
|
|
80
|
-
if (workflow.
|
|
81
|
-
diagnostics.add('missing_callback', "The workflow definition's
|
|
80
|
+
if (workflow.placement !== undefined && typeof workflow.placement !== 'function') {
|
|
81
|
+
diagnostics.add('missing_callback', "The workflow definition's placement must be a function when present.", { field: 'placement' });
|
|
82
82
|
}
|
|
83
83
|
const rootGraph = workflow.graph;
|
|
84
84
|
if (!isBranded(rootGraph, 'graph')) {
|
|
@@ -111,6 +111,63 @@ export function describeWorkflowModule(moduleNamespace) {
|
|
|
111
111
|
};
|
|
112
112
|
return { ok: true, descriptor };
|
|
113
113
|
}
|
|
114
|
+
const commandInputKinds = ['text', 'select', 'multi-select', 'confirm'];
|
|
115
|
+
/** Reads a property the way `value?.[name]` does, including off primitives, without a shape cast. */
|
|
116
|
+
function propertyOf(value, name) {
|
|
117
|
+
return value === null || value === undefined ? undefined : Reflect.get(Object(value), name);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Checks the manifest a workflow's `command()` returned: a non-empty title, an optional string
|
|
121
|
+
* description, and optional well-formed launch inputs. Returns one message per problem, and none
|
|
122
|
+
* when the manifest is valid. Like `describeWorkflowModule`, it only reads plain data; calling
|
|
123
|
+
* `command()` is the caller's job.
|
|
124
|
+
*/
|
|
125
|
+
export function checkCommandManifest(manifest) {
|
|
126
|
+
if (!isObject(manifest) || Array.isArray(manifest)) {
|
|
127
|
+
return [`command() must return a manifest object; it returned ${describeValue(manifest)}.`];
|
|
128
|
+
}
|
|
129
|
+
const problems = [];
|
|
130
|
+
if (typeof manifest.title !== 'string' || !manifest.title) {
|
|
131
|
+
problems.push(`command() must return a manifest with a non-empty string title; found ${describeValue(manifest.title)}.`);
|
|
132
|
+
}
|
|
133
|
+
if (manifest.description !== undefined && typeof manifest.description !== 'string') {
|
|
134
|
+
problems.push(`command() manifest description must be a string when present; found ${describeValue(manifest.description)}.`);
|
|
135
|
+
}
|
|
136
|
+
if (manifest.inputs !== undefined && !Array.isArray(manifest.inputs)) {
|
|
137
|
+
problems.push(`command() manifest inputs must be an array when present; found ${describeValue(manifest.inputs)}.`);
|
|
138
|
+
}
|
|
139
|
+
const inputs = Array.isArray(manifest.inputs) ? manifest.inputs : [];
|
|
140
|
+
for (const [index, input] of inputs.entries()) {
|
|
141
|
+
const key = propertyOf(input, 'key');
|
|
142
|
+
const where = `inputs[${index}]${typeof key === 'string' && key ? ` (key "${key}")` : ''}`;
|
|
143
|
+
if (!isObject(input)) {
|
|
144
|
+
problems.push(`command() ${where} must be an input object; found ${describeValue(input)}.`);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (!commandInputKinds.includes(input.kind)) {
|
|
148
|
+
problems.push(`command() ${where} has kind ${JSON.stringify(input.kind)}; expected "text", "select", "multi-select", or "confirm".`);
|
|
149
|
+
}
|
|
150
|
+
if (typeof input.key !== 'string' || !input.key) {
|
|
151
|
+
problems.push(`command() ${where} needs a non-empty string key.`);
|
|
152
|
+
}
|
|
153
|
+
if (typeof input.label !== 'string' || !input.label) {
|
|
154
|
+
problems.push(`command() ${where} needs a non-empty string label.`);
|
|
155
|
+
}
|
|
156
|
+
if (input.kind === 'select' || input.kind === 'multi-select') {
|
|
157
|
+
if (!Array.isArray(input.options)) {
|
|
158
|
+
problems.push(`command() ${where} is a ${input.kind} input and needs an options array.`);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
for (const [optionIndex, option] of input.options.entries()) {
|
|
162
|
+
if (typeof propertyOf(option, 'value') !== 'string') {
|
|
163
|
+
problems.push(`command() ${where} options[${optionIndex}] needs a string value.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return problems;
|
|
170
|
+
}
|
|
114
171
|
/**
|
|
115
172
|
* Walks the containment relation once, depth-first.
|
|
116
173
|
*
|
|
@@ -266,12 +323,6 @@ function validateGraph(graph, diagnostics) {
|
|
|
266
323
|
if (typeof graph.title !== 'string' || graph.title.length === 0) {
|
|
267
324
|
diagnostics.add('missing_title', 'A graph needs a non-empty title; it is what a person reads in the inspector.', at({ field: 'title' }));
|
|
268
325
|
}
|
|
269
|
-
if (graph.intent !== undefined &&
|
|
270
|
-
graph.intent !== 'business' &&
|
|
271
|
-
graph.intent !== 'logical' &&
|
|
272
|
-
graph.intent !== 'operational') {
|
|
273
|
-
diagnostics.add('invalid_intent', `Graph intent ${JSON.stringify(graph.intent)} must be "business", "logical", or "operational" when present.`, at({ field: 'intent' }));
|
|
274
|
-
}
|
|
275
326
|
if (typeof graph.init !== 'function') {
|
|
276
327
|
diagnostics.add('missing_init', 'A graph needs an init() function.', at({ field: 'init' }));
|
|
277
328
|
}
|
|
@@ -352,12 +403,12 @@ function validateNode(node, id, diagnostics, at) {
|
|
|
352
403
|
return;
|
|
353
404
|
}
|
|
354
405
|
if (isBranded(node, 'checkpoint-node')) {
|
|
355
|
-
//
|
|
356
|
-
//
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
diagnostics.add('missing_callback', `Checkpoint node "${id}" needs a prepare() function.`, at({ nodeId: id }));
|
|
406
|
+
// `plan` is only checked to be a function; the verifier never calls it, because what a visit
|
|
407
|
+
// captures depends on state it does not have.
|
|
408
|
+
if (typeof node.plan !== 'function') {
|
|
409
|
+
diagnostics.add('missing_callback', `Checkpoint node "${id}" needs a plan() function.`, at({ nodeId: id }));
|
|
360
410
|
}
|
|
411
|
+
requireOptionalLabel(node, id, diagnostics, at);
|
|
361
412
|
return;
|
|
362
413
|
}
|
|
363
414
|
diagnostics.add('unknown_node_kind', `Node "${id}" is not an operation(), subgraph(), or checkpoint() registration.`, at({ nodeId: id }));
|
|
@@ -478,7 +529,6 @@ function describeGraph(graph) {
|
|
|
478
529
|
key: String(graph.key),
|
|
479
530
|
title: String(graph.title),
|
|
480
531
|
...optional('description', graph.description),
|
|
481
|
-
...describeIntent(graph.intent),
|
|
482
532
|
stateFields: Object.keys(state).sort(compare),
|
|
483
533
|
entry: String(graph.entry),
|
|
484
534
|
nodes: Object.keys(nodes)
|
|
@@ -492,11 +542,6 @@ function describeGraph(graph) {
|
|
|
492
542
|
.map((id) => describeOutcome(id, outcomes[id])),
|
|
493
543
|
};
|
|
494
544
|
}
|
|
495
|
-
function describeIntent(value) {
|
|
496
|
-
return value === 'business' || value === 'logical' || value === 'operational'
|
|
497
|
-
? { intent: value }
|
|
498
|
-
: {};
|
|
499
|
-
}
|
|
500
545
|
function describeNode(id, node) {
|
|
501
546
|
const shared = {
|
|
502
547
|
id,
|
|
@@ -549,7 +594,6 @@ export function canonicalizeDescriptor(descriptor) {
|
|
|
549
594
|
key: graph.key,
|
|
550
595
|
title: graph.title,
|
|
551
596
|
...optional('description', graph.description),
|
|
552
|
-
...optional('intent', graph.intent),
|
|
553
597
|
stateFields: graph.stateFields,
|
|
554
598
|
entry: graph.entry,
|
|
555
599
|
nodes: graph.nodes.map((node) => ({
|
package/dist/structure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../src/structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAU,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,GAAG;IACX,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;CACZ,CAAC;AAuHX,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAI1D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;IAC7C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,yBAAyB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CACjG,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC;AAED,+FAA+F;AAC/F,MAAM,WAAW;IACN,OAAO,GAA0B,EAAE,CAAC;IAE7C,GAAG,CAAC,IAA6B,EAAE,OAAe,EAAE,EAAE,GAAgC,EAAE;QACtF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,eAAwB;IAC7D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,QAAQ,GAAG,SAAS,EAAE,OAAO,CAAC;IAEpC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,yBAAyB,EAAE,CAAC;YAChE,WAAW,CAAC,GAAG,CACb,sBAAsB,EACtB,0DAA0D,QAAQ,mCAAmC,yBAAyB,iDAAiD,CAChL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CACb,gBAAgB,EAChB,iGAAiG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAC5H,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3C,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,qDAAqD,EAAE;YACzF,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5C,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,sDAAsD,EAAE;YAC1F,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IACD,gGAAgG;IAChG,uFAAuF;IACvF,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACrF,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,wEAAwE,EACxE,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC,GAAG,CACb,gBAAgB,EAChB,uFAAuF,aAAa,CAAC,SAAS,CAAC,GAAG,EAClH,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3D,0FAA0F;IAC1F,8FAA8F;IAC9F,+EAA+E;IAC/E,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM;QAAE,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAExE,6FAA6F;IAC7F,8FAA8F;IAC9F,wEAAwE;IACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAChD,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;IAE3F,iGAAiG;IACjG,wEAAwE;IACxE,MAAM,UAAU,GAAgC;QAC9C,iBAAiB,EAAE,kCAAkC;QACrD,uBAAuB,EAAE,yBAAyB;QAClD,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACnC,MAAM,EAAE,SAAS,CAAC,MAAM;aACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACvD,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,gBAAgB,CAAC,SAAkB,EAAE,WAAwB;IACpE,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW,CAAC;IACnC,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,OAAO,GAAG,CAAC,KAAc,EAAQ,EAAE;QACvC,IAAI,SAAS;YAAE,OAAO;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;YAChB,WAAW,CAAC,GAAG,CACb,6BAA6B,EAC7B,UAAU,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iEAAiE,EACnJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACrB,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACjD,WAAW,CAAC,GAAG,CACb,qBAAqB,EACrB,8CAA8C,GAAG,+DAA+D,EAChH,EAAE,QAAQ,EAAE,GAAG,EAAE,CAClB,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,CAAC,GAAG,CACb,iBAAiB,EACjB,6CAA6C,MAAM,CAAC,MAAM,iGAAiG,CAC5J,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,CAAC,SAAS,CAAC,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,WAAwB;IAC7D,MAAM,EAAE,GAAG,CAAC,KAAK,GAAgC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAEhG,kGAAkG;IAClG,kGAAkG;IAClG,8FAA8F;IAC9F,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,WAAW,CAAC,GAAG,CACb,gBAAgB,EAChB,+BAA+B,MAAM,CAAC,aAAa,SAAS,EAC5D,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvD,WAAW,CAAC,GAAG,CACb,mBAAmB,EACnB,+BAA+B,MAAM,CAAC,gBAAgB,YAAY,EAClE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,WAAW,CAAC,GAAG,CACb,gBAAgB,EAChB,+BAA+B,MAAM,CAAC,aAAa,SAAS,EAC5D,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC;YAAE,SAAS;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sGAAsG;AACtG,SAAS,SAAS,CAAC,UAAmB,EAAE,OAAe;IACrD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAC/B,IAAa,EACb,SAA6B,EAC7B,WAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE1C,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO;IAErD,mFAAmF;IACnF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAwB,IAAI,CAAC;IACxC,OAAO,OAAO,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAuB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5E,OAAO,GAAG,QAAQ,CAAC,MAAM,CACvB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACjB,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAC9E,SAAS,CACV,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,GAAG,CACb,sBAAsB,EACtB,+BAA+B,OAAO,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,gBAAgB,iBAAiB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EACrI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,QAA4B;IAC1C,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,WAAwB;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,GAAgC,EAAE,EAA+B,EAAE,CAClF,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;IAE1D,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,WAAW,CAAC,GAAG,CACb,oBAAoB,EACpB,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,0FAA0F,EAChI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACrB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,WAAW,CAAC,GAAG,CACb,eAAe,EACf,8EAA8E,EAC9E,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,KAAK,CAAC,MAAM,KAAK,UAAU;QAC3B,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,KAAK,CAAC,MAAM,KAAK,aAAa,EAC9B,CAAC;QACD,WAAW,CAAC,GAAG,CACb,gBAAgB,EAChB,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,gEAAgE,EAC5G,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CACxB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,mCAAmC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACnE,WAAW,CAAC,GAAG,CACb,eAAe,EACf,4FAA4F,EAC5F,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,6FAA6F;IAC7F,6DAA6D;IAC7D,IACE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;QAC5C,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;QAC5C,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAClD,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAE5D,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,WAAW,CAAC,GAAG,CACb,sBAAsB,EACtB,IAAI,SAAS,qGAAqG,EAClH,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3D,KAAK,WAAW,CAAC;AACnB,CAAC;AAID,SAAS,aAAa,CACpB,KAAc,EACd,WAAwB,EACxB,EAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,WAAW,CAAC,GAAG,CACb,qBAAqB,EACrB,mEAAmE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAChG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,WAAW,CAAC,GAAG,CACb,aAAa,EACb,8FAA8F,EAC9F,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzF,WAAW,CAAC,GAAG,CACb,qBAAqB,EACrB,gBAAgB,IAAI,8DAA8D,EAClF,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,WAAwB,EACxB,EAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,WAAW,CAAC,GAAG,CACb,aAAa,EACb,4CAA4C,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EACzE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,kCAAkC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC,GAAG,CACb,oBAAoB,EACpB,YAAY,EAAE,2FAA2F,EACzG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CACnB,IAAa,EACb,EAAU,EACV,WAAwB,EACxB,EAAmB;IAEnB,IAAI,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACtC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,mBAAmB,EAAE,2BAA2B,EAChD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;QACrC,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1C,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,kBAAkB,EAAE,kCAAkC,EACtD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACxC,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,kBAAkB,EAAE,iCAAiC,EACrD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,GAAG,CACb,wBAAwB,EACxB,kBAAkB,EAAE,iEAAiE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EACjH,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACvC,2FAA2F;QAC3F,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACvC,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,oBAAoB,EAAE,+BAA+B,EACrD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,WAAW,CAAC,GAAG,CACb,mBAAmB,EACnB,SAAS,EAAE,oEAAoE,EAC/E,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAa,EACb,EAAU,EACV,WAAwB,EACxB,EAAmB;IAEnB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACjE,WAAW,CAAC,GAAG,CACb,eAAe,EACf,SAAS,EAAE,0FAA0F,EACrG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,WAAwB,EACxB,EAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,WAAW,CAAC,GAAG,CACb,aAAa,EACb,+CAA+C,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAC/E,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAC1B,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,WAAW,CAAC,GAAG,CACb,aAAa,EACb,yEAAyE,EACzE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAC1B,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC,GAAG,CACb,oBAAoB,EACpB,eAAe,EAAE,2FAA2F,EAC5G,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtB,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,YAAY,EAAE,iCAAiC,EAC/C,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtB,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,YAAY,EAAE,+BAA+B,EAC7C,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtB,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,YAAY,EAAE,2DAA2D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAC7G,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,OAA0B,EAC1B,UAA6B,EAC7B,WAAwB,EACxB,EAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,WAAW,CAAC,GAAG,CACb,sBAAsB,EACtB,cAAc,KAAK,mDAAmD,EACtE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;YACF,OAAO;QACT,CAAC;QACD,WAAW,CAAC,GAAG,CACb,eAAe,EACf,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+BAA+B,EACjE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,OAA0B,EAC1B,UAA6B,EAC7B,WAAwB,EACxB,EAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,WAAW,CAAC,GAAG,CACb,uBAAuB,EACvB,4CAA4C,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EACzE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CACvB,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,GAAG,CACb,oBAAoB,EACpB,YAAY,MAAM,2FAA2F,EAC7G,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,SAAS,MAAM,8BAA8B,EAC7C,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,WAAW,CAAC,GAAG,CACb,kBAAkB,EAClB,SAAS,MAAM,8BAA8B,EAC7C,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,WAAW,CAAC,GAAG,CACb,qBAAqB,EACrB,SAAS,MAAM,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EACvF,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,WAAW,CAAC,GAAG,CACb,uBAAuB,EACvB,SAAS,IAAI,SAAS,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,EAC7G,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CACb,uBAAuB,EACvB,SAAS,MAAM,+EAA+E,EAC9F,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,YAAqB,EACrB,MAAc,EACd,OAA0B,EAC1B,UAA6B,EAC7B,WAAwB,EACxB,EAAmB;IAEnB,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,WAAW,CAAC,GAAG,CACb,uBAAuB,EACvB,SAAS,MAAM,oFAAoF,EACnG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,WAAW,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,WAAW,CAAC,GAAG,CACb,0BAA0B,EAC1B,SAAS,MAAM,oCAAoC,aAAa,CAAC,WAAW,CAAC,oCAAoC,EACjH,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,GAAG,CACb,uBAAuB,EACvB,SAAS,MAAM,eAAe,WAAW,mBAAmB,EAC5D,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxE,WAAW,CAAC,GAAG,CACb,0BAA0B,EAC1B,SAAS,MAAM,+BAA+B,WAAW,0DAA0D,EACnH,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,GAAG,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;QAC7C,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB,IAAI,CAAC,OAAO,CAAC;aACb,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAY,CAAC,CAAC;QACtD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB,IAAI,CAAC,OAAO,CAAC;aACb,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAY,CAAC,CAAC;QACtD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC5B,IAAI,CAAC,OAAO,CAAC;aACb,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAY,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAAc;IAEd,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,aAAa;QAC3E,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;QACnB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,IAAa;IAC7C,MAAM,MAAM,GAAG;QACb,EAAE;QACF,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAChC,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;KAC7C,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAE,IAAI,CAAC,KAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IACxF,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;QACzC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,IAAa;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,EAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,EAAE,GAAa,EAAE,CAAC;IACxB,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,eAAe,CAAC,EAAU,EAAE,OAAgB;IACnD,OAAO;QACL,EAAE;QACF,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACxD,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;QACrC,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAqB,GAAQ,EAAE,KAAc;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,sEAAsE;AACtE,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;IAC1C,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAuC;IAC5E,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;QAC/C,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;QAC3D,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;YAC7C,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACnC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBAChC,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;aAC7C,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;aACjC,CAAC,CAAC;YACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;gBACrC,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;aACpC,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAuC;IACpE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/F,CAAC"}
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../src/structure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type StructureDiagnostic, type WorkflowStructureDescriptor } from './structure.js';
|
|
2
|
+
export type ValidationReport = {
|
|
3
|
+
readonly ok: true;
|
|
4
|
+
readonly descriptor: WorkflowStructureDescriptor;
|
|
5
|
+
} | {
|
|
6
|
+
readonly ok: false;
|
|
7
|
+
readonly error: string;
|
|
8
|
+
readonly diagnostics?: readonly StructureDiagnostic[];
|
|
9
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The validation child. `cli.ts` runs this file with `process.execPath` from an empty temporary
|
|
3
|
+
* directory that holds only a copy of the workflow bundle:
|
|
4
|
+
*
|
|
5
|
+
* node validate-artifact.js <isolated artifact> <result file> <worktree path>
|
|
6
|
+
*
|
|
7
|
+
* It imports the bundle, reads its declared structure, calls `command()` with a minimal origin, and
|
|
8
|
+
* checks the manifest. It reports through the result file rather than stdout, so workflow code that
|
|
9
|
+
* logs during import or `command()` cannot corrupt the report, and it always exits 0 once the
|
|
10
|
+
* report is written. A crash, hang, or early exit is judged by the parent from the missing report.
|
|
11
|
+
*/
|
|
12
|
+
import { writeFileSync } from 'node:fs';
|
|
13
|
+
import { pathToFileURL } from 'node:url';
|
|
14
|
+
import { checkCommandManifest, describeWorkflowModule, } from './structure.js';
|
|
15
|
+
function readArguments() {
|
|
16
|
+
const [artifactPath, resultPath, worktreePath] = process.argv.slice(2);
|
|
17
|
+
if (!artifactPath || !resultPath || !worktreePath) {
|
|
18
|
+
throw new Error('Usage: validate-artifact.js <artifact> <result file> <worktree path>');
|
|
19
|
+
}
|
|
20
|
+
return { artifactPath, resultPath, worktreePath };
|
|
21
|
+
}
|
|
22
|
+
const { artifactPath, resultPath, worktreePath } = readArguments();
|
|
23
|
+
function finish(report) {
|
|
24
|
+
writeFileSync(resultPath, JSON.stringify(report));
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
/** The thrown value's stack when it has one, so the author sees where their code failed. */
|
|
28
|
+
function cause(error) {
|
|
29
|
+
const stack = typeof error === 'object' && error !== null && 'stack' in error ? error.stack : undefined;
|
|
30
|
+
return String(stack || error);
|
|
31
|
+
}
|
|
32
|
+
let artifact;
|
|
33
|
+
try {
|
|
34
|
+
artifact = await import(pathToFileURL(artifactPath).href);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
finish({
|
|
38
|
+
ok: false,
|
|
39
|
+
error: `Importing the bundle threw before any workflow definition could be read:\n${cause(error)}`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const result = describeWorkflowModule(artifact);
|
|
43
|
+
if (!result.ok) {
|
|
44
|
+
finish({
|
|
45
|
+
ok: false,
|
|
46
|
+
error: 'The bundle does not declare a valid workflow structure.',
|
|
47
|
+
diagnostics: result.diagnostics,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// `describeWorkflowModule` succeeded, so the default export is a workflow with a command().
|
|
51
|
+
const workflow = artifact.default;
|
|
52
|
+
let manifest;
|
|
53
|
+
try {
|
|
54
|
+
manifest = await workflow.command({
|
|
55
|
+
worktreeId: 0,
|
|
56
|
+
worktreePath,
|
|
57
|
+
surfaceId: null,
|
|
58
|
+
paneId: null,
|
|
59
|
+
agentSessionId: null,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
finish({
|
|
64
|
+
ok: false,
|
|
65
|
+
error: `command() threw when called with a minimal origin. command() must succeed without optional surface, pane or agent-session context.\n${cause(error)}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const problems = checkCommandManifest(manifest);
|
|
69
|
+
finish(problems.length > 0
|
|
70
|
+
? { ok: false, error: problems.join('\n') }
|
|
71
|
+
: { ok: true, descriptor: result.descriptor });
|
|
72
|
+
//# sourceMappingURL=validate-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-artifact.js","sourceRoot":"","sources":["../src/validate-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,gBAAgB,CAAC;AAUxB,SAAS,aAAa;IACpB,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAAC;AAEnE,SAAS,MAAM,CAAC,MAAwB;IACtC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,4FAA4F;AAC5F,SAAS,KAAK,CAAC,KAAc;IAC3B,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,OAAO,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,QAAiB,CAAC;AACtB,IAAI,CAAC;IACH,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,MAAM,CAAC;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,6EAA6E,KAAK,CAAC,KAAK,CAAC,EAAE;KACnG,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACf,MAAM,CAAC;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,yDAAyD;QAChE,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC;AAED,4FAA4F;AAC5F,MAAM,QAAQ,GAAI,QAAwE,CAAC,OAAO,CAAC;AACnG,IAAI,QAAiB,CAAC;AACtB,IAAI,CAAC;IACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;QAChC,UAAU,EAAE,CAAC;QACb,YAAY;QACZ,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;AACL,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,MAAM,CAAC;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,uIAAuI,KAAK,CAAC,KAAK,CAAC,EAAE;KAC7J,CAAC,CAAC;AACL,CAAC;AAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAChD,MAAM,CACJ,QAAQ,CAAC,MAAM,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC3C,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yourtechbudstudio/isagi-workflow-verifier",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Verify standalone Isagi workflow artifacts and issue build receipts.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "YourTechBud",
|
|
@@ -36,19 +36,14 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"dependencies": {
|
|
40
|
-
"acorn": "^8.18.0",
|
|
41
|
-
"eslint-scope": "^8.4.0"
|
|
42
|
-
},
|
|
43
39
|
"devDependencies": {
|
|
44
|
-
"@types/eslint-scope": "^8.4.0",
|
|
45
40
|
"@types/node": "^24.10.1",
|
|
46
|
-
"@yourtechbudstudio/isagi-workflow-sdk": "0.1.
|
|
41
|
+
"@yourtechbudstudio/isagi-workflow-sdk": "0.1.1",
|
|
47
42
|
"tsx": "^4.21.0",
|
|
48
43
|
"typescript": "^7.0.2"
|
|
49
44
|
},
|
|
50
45
|
"peerDependencies": {
|
|
51
|
-
"@yourtechbudstudio/isagi-workflow-sdk": "0.1.
|
|
46
|
+
"@yourtechbudstudio/isagi-workflow-sdk": "0.1.1"
|
|
52
47
|
},
|
|
53
48
|
"engines": {
|
|
54
49
|
"node": ">=22"
|
package/dist/closed-bundle.d.ts
DELETED
package/dist/closed-bundle.js
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
import { parse } from 'acorn';
|
|
2
|
-
import { analyze } from 'eslint-scope';
|
|
3
|
-
/**
|
|
4
|
-
* Checks that a built artifact is closed: everything it executes is already inside it.
|
|
5
|
-
*
|
|
6
|
-
* The canonical build command passes `--log-override:unsupported-dynamic-import=error`, but nothing
|
|
7
|
-
* in the receipt attests to the flags an author actually used — `requirePins` checks package
|
|
8
|
-
* versions, not how the bundle was produced. So the guarantee is checked on the artifact itself.
|
|
9
|
-
*
|
|
10
|
-
* The check parses the module rather than scanning text. Text scanning was wrong in both
|
|
11
|
-
* directions: it misses a residual `import` statement entirely, and it rejects a prompt string or a
|
|
12
|
-
* comment that happens to contain `eval(`.
|
|
13
|
-
*
|
|
14
|
-
* Whether a *call* reaches a loader is a lexical question — `var` hoisting out of blocks,
|
|
15
|
-
* default-parameter scopes, named function expressions, declaration order — and successive
|
|
16
|
-
* hand-written resolvers answered it wrongly in both directions. `eslint-scope` answers it
|
|
17
|
-
* properly, which is why it is a dependency: it resolves each callee to the binding actually
|
|
18
|
-
* visible there, and reports which bindings came from `node:module` in the first place.
|
|
19
|
-
*
|
|
20
|
-
* It covers ordinary residual dependencies and deferred-load constructs, **not** adversarial
|
|
21
|
-
* indirection: computed member access can still reach a loader. Workflow code is trusted,
|
|
22
|
-
* in-process, and unsandboxed, and this check does not change that.
|
|
23
|
-
*/
|
|
24
|
-
const nodeModuleSpecifier = 'node:module';
|
|
25
|
-
/**
|
|
26
|
-
* Assignment operators that can give a binding its right-hand value.
|
|
27
|
-
*
|
|
28
|
-
* The logical forms are conditional — `cr ||= createRequire` assigns only when `cr` is falsy — but
|
|
29
|
-
* which branch a given run takes is not a question this check answers, so a right-hand side that
|
|
30
|
-
* carries a loader makes the target one. That fails closed, and it matches how a plain `=` is
|
|
31
|
-
* already treated. Arithmetic compound operators cannot yield a loader and are not candidates.
|
|
32
|
-
*/
|
|
33
|
-
const aliasingAssignmentOperators = new Set(['=', '||=', '&&=', '??=']);
|
|
34
|
-
/** Exports of `node:module` that hand back a way to load code outside the artifact. */
|
|
35
|
-
const moduleLoaderExports = new Set(['createRequire']);
|
|
36
|
-
/** Methods that load natively, read as `process.<name>(…)`. */
|
|
37
|
-
const processLoaderMethods = new Set(['binding', 'dlopen']);
|
|
38
|
-
/** The single declared exception. Bare `fs`/`path` are not exempt: by specifier alone they are
|
|
39
|
-
* indistinguishable from an unbundled package, and the scaffold and guide use the `node:` form. */
|
|
40
|
-
function isNodeBuiltin(specifier) {
|
|
41
|
-
return specifier.startsWith('node:');
|
|
42
|
-
}
|
|
43
|
-
export function scanDeferredExecutableDependencies(artifactSource) {
|
|
44
|
-
let program;
|
|
45
|
-
try {
|
|
46
|
-
program = parse(artifactSource, {
|
|
47
|
-
ecmaVersion: 'latest',
|
|
48
|
-
sourceType: 'module',
|
|
49
|
-
locations: true,
|
|
50
|
-
ranges: true,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
catch (cause) {
|
|
54
|
-
return [unparseable(cause)];
|
|
55
|
-
}
|
|
56
|
-
let scopeManager;
|
|
57
|
-
try {
|
|
58
|
-
scopeManager = analyze(program, { ecmaVersion: 2024, sourceType: 'module' });
|
|
59
|
-
}
|
|
60
|
-
catch (cause) {
|
|
61
|
-
return [unparseable(cause)];
|
|
62
|
-
}
|
|
63
|
-
const { loaders, resolvedAt } = analyzeBindings(scopeManager, program);
|
|
64
|
-
const diagnostics = [];
|
|
65
|
-
const report = (node, message) => {
|
|
66
|
-
diagnostics.push({
|
|
67
|
-
code: 'deferred_executable_dependency',
|
|
68
|
-
message: `${message} (${position(node)})`,
|
|
69
|
-
at: {},
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
walk(program, (node) => {
|
|
73
|
-
switch (node.type) {
|
|
74
|
-
case 'ImportDeclaration':
|
|
75
|
-
case 'ExportAllDeclaration':
|
|
76
|
-
case 'ExportNamedDeclaration': {
|
|
77
|
-
const source = node.source;
|
|
78
|
-
if (!source || typeof source.value !== 'string')
|
|
79
|
-
return;
|
|
80
|
-
// Importing a `node:` built-in is permitted, including `node:module`. Acquiring a binding is
|
|
81
|
-
// not the failure; calling a loader through it is, and that is checked at the call site.
|
|
82
|
-
if (isNodeBuiltin(source.value))
|
|
83
|
-
return;
|
|
84
|
-
report(source, `dist/index.js still imports "${source.value}" at run time, so the bundle is not closed. Rebuild without --external so every executable dependency is inside the artifact`);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
case 'ImportExpression': {
|
|
88
|
-
const source = node.source;
|
|
89
|
-
if (source?.type === 'Literal' && typeof source.value === 'string') {
|
|
90
|
-
if (isNodeBuiltin(source.value))
|
|
91
|
-
return;
|
|
92
|
-
report(source, `dist/index.js defers loading "${source.value}" through import(), so the bundle is not closed`);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
report(node, 'dist/index.js calls import() with a computed specifier, so the verifier cannot tell what it would load');
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
case 'NewExpression':
|
|
99
|
-
case 'CallExpression': {
|
|
100
|
-
const callee = node.callee;
|
|
101
|
-
if (!callee)
|
|
102
|
-
return;
|
|
103
|
-
const invoked = calledLoader(callee, loaders, resolvedAt);
|
|
104
|
-
if (invoked) {
|
|
105
|
-
report(callee, `dist/index.js calls ${invoked}, which can load code the artifact does not contain`);
|
|
106
|
-
}
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
default:
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
return diagnostics;
|
|
114
|
-
}
|
|
115
|
-
function unparseable(cause) {
|
|
116
|
-
return {
|
|
117
|
-
code: 'deferred_executable_dependency',
|
|
118
|
-
message: `dist/index.js could not be analyzed as an ES module, so the verifier cannot confirm the bundle is closed: ${cause instanceof Error ? cause.message : String(cause)}`,
|
|
119
|
-
at: {},
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
function analyzeBindings(scopeManager, program) {
|
|
123
|
-
const loaders = new Map();
|
|
124
|
-
const resolvedAt = new Map();
|
|
125
|
-
const candidates = [];
|
|
126
|
-
for (const scope of scopeManager.scopes) {
|
|
127
|
-
for (const reference of scope.references) {
|
|
128
|
-
resolvedAt.set(reference.identifier, reference.resolved ?? null);
|
|
129
|
-
}
|
|
130
|
-
for (const variable of scope.variables) {
|
|
131
|
-
for (const def of variable.defs) {
|
|
132
|
-
if (def?.type === 'ImportBinding') {
|
|
133
|
-
const imported = importedLoader(def);
|
|
134
|
-
if (imported)
|
|
135
|
-
loaders.set(variable, imported);
|
|
136
|
-
continue;
|
|
137
|
-
}
|
|
138
|
-
if (def?.type === 'Variable') {
|
|
139
|
-
candidates.push({
|
|
140
|
-
variable,
|
|
141
|
-
init: def.node?.init,
|
|
142
|
-
pattern: def.node?.id,
|
|
143
|
-
name: def.name,
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// A plain assignment is an alias too. `let cr; cr = createRequire;` binds exactly what
|
|
150
|
-
// `const cr = createRequire` binds, and reading only declarator initializers missed it.
|
|
151
|
-
collectAssignmentAliases(program, resolvedAt, candidates);
|
|
152
|
-
// Aliases can be written after the code that uses them, so iterate to a fixpoint. A binding that
|
|
153
|
-
// is ever assigned a loader stays one: if it is later reassigned to something harmless, which of
|
|
154
|
-
// the two a given call sees is not a question this check answers, and it fails closed.
|
|
155
|
-
for (let changed = true; changed;) {
|
|
156
|
-
changed = false;
|
|
157
|
-
for (const candidate of candidates) {
|
|
158
|
-
if (loaders.has(candidate.variable))
|
|
159
|
-
continue;
|
|
160
|
-
const binding = aliasedLoader(candidate, loaders, resolvedAt);
|
|
161
|
-
if (!binding)
|
|
162
|
-
continue;
|
|
163
|
-
loaders.set(candidate.variable, binding);
|
|
164
|
-
changed = true;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return { loaders, resolvedAt };
|
|
168
|
-
}
|
|
169
|
-
/** Every `x = …` write, as an alias candidate resolved the same way a declaration is. */
|
|
170
|
-
function collectAssignmentAliases(program, resolvedAt, into) {
|
|
171
|
-
walk(program, (node) => {
|
|
172
|
-
if (node.type !== 'AssignmentExpression')
|
|
173
|
-
return;
|
|
174
|
-
if (typeof node.operator !== 'string' || !aliasingAssignmentOperators.has(node.operator))
|
|
175
|
-
return;
|
|
176
|
-
const left = node.left;
|
|
177
|
-
const init = node.right;
|
|
178
|
-
const add = (identifier) => {
|
|
179
|
-
const variable = resolvedAt.get(identifier);
|
|
180
|
-
if (variable)
|
|
181
|
-
into.push({ variable, init, pattern: left, name: identifier });
|
|
182
|
-
};
|
|
183
|
-
if (left?.type === 'Identifier') {
|
|
184
|
-
add(left);
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
if (left?.type !== 'ObjectPattern')
|
|
188
|
-
return;
|
|
189
|
-
for (const property of left.properties ?? []) {
|
|
190
|
-
if (property?.computed === true)
|
|
191
|
-
continue;
|
|
192
|
-
const bound = property?.value?.type === 'AssignmentPattern' ? property.value.left : property?.value;
|
|
193
|
-
if (bound?.type === 'Identifier')
|
|
194
|
-
add(bound);
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Whether an expression denotes the `node:module` namespace.
|
|
200
|
-
*
|
|
201
|
-
* Either a name that resolves to a namespace binding, or an awaited `import('node:module')` used
|
|
202
|
-
* directly. The second has no intermediate binding at all, so resolution alone never sees it, and
|
|
203
|
-
* `(await import('node:module')).createRequire(…)` is ordinary syntax rather than indirection.
|
|
204
|
-
*/
|
|
205
|
-
function isNodeModuleNamespace(expression, loaders, resolvedAt) {
|
|
206
|
-
const unwrapped = unwrapAwait(expression);
|
|
207
|
-
if (!unwrapped)
|
|
208
|
-
return false;
|
|
209
|
-
if (unwrapped.type === 'ImportExpression') {
|
|
210
|
-
return unwrapped.source?.type === 'Literal' && unwrapped.source.value === nodeModuleSpecifier;
|
|
211
|
-
}
|
|
212
|
-
if (unwrapped.type !== 'Identifier')
|
|
213
|
-
return false;
|
|
214
|
-
const resolved = resolvedAt.get(unwrapped);
|
|
215
|
-
return resolved ? loaders.get(resolved)?.kind === 'namespace' : false;
|
|
216
|
-
}
|
|
217
|
-
/** A binding introduced by `import … from 'node:module'`, if it carries a loader. */
|
|
218
|
-
function importedLoader(def) {
|
|
219
|
-
const source = def?.parent?.source;
|
|
220
|
-
if (source?.value !== nodeModuleSpecifier)
|
|
221
|
-
return null;
|
|
222
|
-
const specifier = def.node;
|
|
223
|
-
if (specifier?.type === 'ImportSpecifier') {
|
|
224
|
-
const name = specifier.imported?.name;
|
|
225
|
-
return typeof name === 'string' && moduleLoaderExports.has(name)
|
|
226
|
-
? { kind: 'loader', exportName: name }
|
|
227
|
-
: null;
|
|
228
|
-
}
|
|
229
|
-
// A namespace or default import carries every export, loaders included.
|
|
230
|
-
return specifier?.type === 'ImportNamespaceSpecifier' ||
|
|
231
|
-
specifier?.type === 'ImportDefaultSpecifier'
|
|
232
|
-
? { kind: 'namespace' }
|
|
233
|
-
: null;
|
|
234
|
-
}
|
|
235
|
-
/** The ordinary static aliases authors write, resolved through the scope analysis. */
|
|
236
|
-
function aliasedLoader(candidate, loaders, resolvedAt) {
|
|
237
|
-
const init = unwrapAwait(candidate.init);
|
|
238
|
-
if (!init)
|
|
239
|
-
return null;
|
|
240
|
-
const sourceBinding = (identifier) => {
|
|
241
|
-
const resolved = resolvedAt.get(identifier);
|
|
242
|
-
return resolved ? loaders.get(resolved) : undefined;
|
|
243
|
-
};
|
|
244
|
-
// `const m = await import('node:module')`
|
|
245
|
-
if (init.type === 'ImportExpression' && init.source?.value === nodeModuleSpecifier) {
|
|
246
|
-
return patternBinding(candidate, { kind: 'namespace' });
|
|
247
|
-
}
|
|
248
|
-
// `const cr = createRequire` / `const alias = ns` / `const { createRequire: cr } = ns`
|
|
249
|
-
if (init.type === 'Identifier') {
|
|
250
|
-
const binding = sourceBinding(init);
|
|
251
|
-
return binding ? patternBinding(candidate, binding) : null;
|
|
252
|
-
}
|
|
253
|
-
// `const cr = ns.createRequire`, and the same off an awaited import.
|
|
254
|
-
if (init.type === 'MemberExpression' && init.computed !== true) {
|
|
255
|
-
if (!isNodeModuleNamespace(init.object, loaders, resolvedAt))
|
|
256
|
-
return null;
|
|
257
|
-
const name = init.property?.type === 'Identifier' ? init.property.name : undefined;
|
|
258
|
-
return typeof name === 'string' && moduleLoaderExports.has(name)
|
|
259
|
-
? { kind: 'loader', exportName: name }
|
|
260
|
-
: null;
|
|
261
|
-
}
|
|
262
|
-
return null;
|
|
263
|
-
}
|
|
264
|
-
/** Applies a source binding to whichever name of the declaration this variable is. */
|
|
265
|
-
function patternBinding(candidate, source) {
|
|
266
|
-
const pattern = candidate.pattern;
|
|
267
|
-
if (pattern?.type === 'Identifier')
|
|
268
|
-
return source;
|
|
269
|
-
if (source.kind !== 'namespace' || pattern?.type !== 'ObjectPattern')
|
|
270
|
-
return null;
|
|
271
|
-
for (const property of pattern.properties ?? []) {
|
|
272
|
-
if (property?.computed === true)
|
|
273
|
-
continue;
|
|
274
|
-
// `const { createRequire: cr = fallback } = ns` binds `cr` inside an assignment pattern.
|
|
275
|
-
const bound = property?.value?.type === 'AssignmentPattern' ? property.value.left : property?.value;
|
|
276
|
-
if (bound !== candidate.name)
|
|
277
|
-
continue;
|
|
278
|
-
const key = property.key?.type === 'Identifier' ? property.key.name : undefined;
|
|
279
|
-
if (typeof key === 'string' && moduleLoaderExports.has(key)) {
|
|
280
|
-
return { kind: 'loader', exportName: key };
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
return null;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* The value an initializer ultimately takes.
|
|
287
|
-
*
|
|
288
|
-
* `await import(…)` yields the module; `a = b = createRequire` gives `a` the same value as `b`,
|
|
289
|
-
* because assignment is right-associative and evaluates to its right-hand side; a logical
|
|
290
|
-
* assignment is followed the same way and for the same fail-closed reason; a sequence evaluates to
|
|
291
|
-
* its last expression. Each is ordinary non-computed syntax, so each is followed.
|
|
292
|
-
*/
|
|
293
|
-
function unwrapAwait(value) {
|
|
294
|
-
let current = value;
|
|
295
|
-
for (;;) {
|
|
296
|
-
if (current?.type === 'AwaitExpression') {
|
|
297
|
-
current = current.argument;
|
|
298
|
-
continue;
|
|
299
|
-
}
|
|
300
|
-
if (current?.type === 'AssignmentExpression' &&
|
|
301
|
-
aliasingAssignmentOperators.has(current.operator)) {
|
|
302
|
-
current = current.right;
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
if (current?.type === 'SequenceExpression' && Array.isArray(current.expressions)) {
|
|
306
|
-
const last = current.expressions.at(-1);
|
|
307
|
-
if (last) {
|
|
308
|
-
current = last;
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
return current;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* The loader a call invokes, named for the diagnostic, or null.
|
|
317
|
-
*
|
|
318
|
-
* A callee that resolves to a binding is that binding — an author's own `process`, a parameter
|
|
319
|
-
* named `createRequire`, a named function expression called `process`. Only an unresolved name is
|
|
320
|
-
* the global of that name.
|
|
321
|
-
*/
|
|
322
|
-
function calledLoader(callee, loaders, resolvedAt) {
|
|
323
|
-
if (callee.type === 'Identifier') {
|
|
324
|
-
const name = callee.name;
|
|
325
|
-
if (typeof name !== 'string')
|
|
326
|
-
return null;
|
|
327
|
-
const resolved = resolvedAt.get(callee);
|
|
328
|
-
const binding = resolved ? loaders.get(resolved) : undefined;
|
|
329
|
-
if (binding?.kind === 'loader') {
|
|
330
|
-
return binding.exportName === name
|
|
331
|
-
? `"${name}" imported from ${nodeModuleSpecifier}`
|
|
332
|
-
: `"${name}" (${binding.exportName} from ${nodeModuleSpecifier})`;
|
|
333
|
-
}
|
|
334
|
-
if (resolved)
|
|
335
|
-
return null;
|
|
336
|
-
if (name === 'eval')
|
|
337
|
-
return 'the global "eval"';
|
|
338
|
-
if (name === 'Function')
|
|
339
|
-
return 'the Function constructor';
|
|
340
|
-
return null;
|
|
341
|
-
}
|
|
342
|
-
if (callee.type !== 'MemberExpression' || callee.computed === true)
|
|
343
|
-
return null;
|
|
344
|
-
const object = callee.object;
|
|
345
|
-
const property = callee.property;
|
|
346
|
-
if (property?.type !== 'Identifier' || typeof property.name !== 'string')
|
|
347
|
-
return null;
|
|
348
|
-
const propertyName = property.name;
|
|
349
|
-
if (isNodeModuleNamespace(object, loaders, resolvedAt) && moduleLoaderExports.has(propertyName)) {
|
|
350
|
-
const receiver = object?.type === 'Identifier' ? String(object.name) : nodeModuleSpecifier;
|
|
351
|
-
return `"${receiver}.${propertyName}" from ${nodeModuleSpecifier}`;
|
|
352
|
-
}
|
|
353
|
-
if (object?.type !== 'Identifier' || typeof object.name !== 'string')
|
|
354
|
-
return null;
|
|
355
|
-
// Only an unresolved name is the global of that name.
|
|
356
|
-
if (resolvedAt.get(object))
|
|
357
|
-
return null;
|
|
358
|
-
if (object.name === 'process' && processLoaderMethods.has(propertyName)) {
|
|
359
|
-
return `"process.${propertyName}"`;
|
|
360
|
-
}
|
|
361
|
-
return null;
|
|
362
|
-
}
|
|
363
|
-
function position(node) {
|
|
364
|
-
return node.loc
|
|
365
|
-
? `line ${node.loc.start.line}, column ${node.loc.start.column}`
|
|
366
|
-
: `offset ${node.start}`;
|
|
367
|
-
}
|
|
368
|
-
/**
|
|
369
|
-
* A generic AST walk. Strings and comments are not nodes, which is exactly why the parsed check
|
|
370
|
-
* accepts a prompt containing `eval(` that a text scan would reject.
|
|
371
|
-
*/
|
|
372
|
-
function walk(node, visit) {
|
|
373
|
-
visit(node);
|
|
374
|
-
for (const key of Object.keys(node)) {
|
|
375
|
-
if (key === 'loc' || key === 'type')
|
|
376
|
-
continue;
|
|
377
|
-
const value = node[key];
|
|
378
|
-
if (Array.isArray(value)) {
|
|
379
|
-
for (const entry of value)
|
|
380
|
-
if (isNode(entry))
|
|
381
|
-
walk(entry, visit);
|
|
382
|
-
}
|
|
383
|
-
else if (isNode(value)) {
|
|
384
|
-
walk(value, visit);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
function isNode(value) {
|
|
389
|
-
return (typeof value === 'object' &&
|
|
390
|
-
value !== null &&
|
|
391
|
-
typeof value.type === 'string');
|
|
392
|
-
}
|
|
393
|
-
//# sourceMappingURL=closed-bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"closed-bundle.js","sourceRoot":"","sources":["../src/closed-bundle.ts"],"names":[],"mappings":"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"}
|