@demoscript/cli 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.cjs +43254 -0
- package/dist/index.js +3 -20
- package/dist/ui-dist/assets/index-DFwzKJ81.css +1 -0
- package/dist/ui-dist/assets/index-cngvCrhl.js +177 -0
- package/dist/ui-dist/favicon.svg +10 -0
- package/dist/ui-dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/commands/serve.d.ts +0 -9
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -197
- package/dist/commands/serve.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/executor.d.ts +0 -20
- package/dist/lib/executor.d.ts.map +0 -1
- package/dist/lib/executor.js +0 -185
- package/dist/lib/executor.js.map +0 -1
- package/dist/lib/executor.test.d.ts +0 -2
- package/dist/lib/executor.test.d.ts.map +0 -1
- package/dist/lib/executor.test.js +0 -62
- package/dist/lib/executor.test.js.map +0 -1
- package/dist/lib/loader.d.ts +0 -10
- package/dist/lib/loader.d.ts.map +0 -1
- package/dist/lib/loader.js +0 -109
- package/dist/lib/loader.js.map +0 -1
- package/dist/lib/openapi.d.ts +0 -98
- package/dist/lib/openapi.d.ts.map +0 -1
- package/dist/lib/openapi.js +0 -269
- package/dist/lib/openapi.js.map +0 -1
- package/dist/lib/openapi.test.d.ts +0 -2
- package/dist/lib/openapi.test.d.ts.map +0 -1
- package/dist/lib/openapi.test.js +0 -226
- package/dist/lib/openapi.test.js.map +0 -1
- package/dist/lib/validator.d.ts +0 -12
- package/dist/lib/validator.d.ts.map +0 -1
- package/dist/lib/validator.js +0 -55
- package/dist/lib/validator.js.map +0 -1
- package/dist/server/rest-proxy.d.ts +0 -3
- package/dist/server/rest-proxy.d.ts.map +0 -1
- package/dist/server/rest-proxy.js +0 -34
- package/dist/server/rest-proxy.js.map +0 -1
- package/dist/server/shell-executor.d.ts +0 -3
- package/dist/server/shell-executor.d.ts.map +0 -1
- package/dist/server/shell-executor.js +0 -56
- package/dist/server/shell-executor.js.map +0 -1
- package/dist/types.d.ts +0 -311
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -33
- package/dist/types.js.map +0 -1
- package/dist/ui-dist/assets/index-CtREFkwP.js +0 -175
- package/dist/ui-dist/assets/index-DTJEjfHv.css +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#8b5cf6"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#6366f1"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect width="32" height="32" rx="6" fill="url(#grad)"/>
|
|
9
|
+
<path d="M12 8 L24 16 L12 24 Z" fill="white"/>
|
|
10
|
+
</svg>
|
package/dist/ui-dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>DemoScript</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-cngvCrhl.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DFwzKJ81.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
package/dist/commands/serve.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AA2BA,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAyMlF"}
|
package/dist/commands/serve.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { resolve, dirname, join } from 'path';
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
3
|
-
import { networkInterfaces } from 'os';
|
|
4
|
-
import { existsSync, readFileSync } from 'fs';
|
|
5
|
-
import express from 'express';
|
|
6
|
-
import { WebSocketServer, WebSocket } from 'ws';
|
|
7
|
-
import chokidar from 'chokidar';
|
|
8
|
-
import { loadDemo } from '../lib/loader.js';
|
|
9
|
-
import { createRestProxy } from '../server/rest-proxy.js';
|
|
10
|
-
import { createShellExecutor } from '../server/shell-executor.js';
|
|
11
|
-
import chalk from 'chalk';
|
|
12
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
|
-
function getNetworkUrl(port) {
|
|
14
|
-
const nets = networkInterfaces();
|
|
15
|
-
for (const name of Object.keys(nets)) {
|
|
16
|
-
for (const net of nets[name] || []) {
|
|
17
|
-
if (net.family === 'IPv4' && !net.internal) {
|
|
18
|
-
return `http://${net.address}:${port}`;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
export async function serve(demoPath, options) {
|
|
25
|
-
const { port, host, open, watch } = options;
|
|
26
|
-
// Resolve demo path
|
|
27
|
-
const resolvedPath = resolve(process.cwd(), demoPath);
|
|
28
|
-
const demoDir = resolvedPath.endsWith('.yaml') ? dirname(resolvedPath) : resolvedPath;
|
|
29
|
-
const demoFile = resolvedPath.endsWith('.yaml') ? resolvedPath : resolve(resolvedPath, 'demo.yaml');
|
|
30
|
-
console.log(chalk.blue('Starting DemoScript server...'));
|
|
31
|
-
console.log(chalk.gray(` Demo: ${demoFile}`));
|
|
32
|
-
// Load and validate demo config
|
|
33
|
-
let { config, recordings, openapiSpec } = await loadDemo(demoFile);
|
|
34
|
-
console.log(chalk.green(` Loaded: ${config.title}`));
|
|
35
|
-
console.log(chalk.gray(` Steps: ${config.steps.length}`));
|
|
36
|
-
// Create Express app
|
|
37
|
-
const app = express();
|
|
38
|
-
app.use(express.json());
|
|
39
|
-
// API endpoints for demo data
|
|
40
|
-
app.get('/api/demo', (_req, res) => {
|
|
41
|
-
res.json({ config, recordings, openapiSpec });
|
|
42
|
-
});
|
|
43
|
-
// Track WebSocket clients for live reload
|
|
44
|
-
const wsClients = new Set();
|
|
45
|
-
// REST proxy for live execution
|
|
46
|
-
app.post('/api/execute', createRestProxy());
|
|
47
|
-
// Shell executor for live execution
|
|
48
|
-
app.post('/api/execute-shell', createShellExecutor());
|
|
49
|
-
// Browser opener for browser steps
|
|
50
|
-
app.post('/api/open-browser', async (req, res) => {
|
|
51
|
-
try {
|
|
52
|
-
const { url } = req.body;
|
|
53
|
-
if (!url) {
|
|
54
|
-
return res.status(400).json({ error: 'URL is required' });
|
|
55
|
-
}
|
|
56
|
-
const openModule = await import('open');
|
|
57
|
-
await openModule.default(url);
|
|
58
|
-
res.json({ success: true });
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
res.status(500).json({ error: err instanceof Error ? err.message : 'Failed to open browser' });
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
// Determine UI serving mode:
|
|
65
|
-
// 1. Development (monorepo): Use Vite dev server with HMR
|
|
66
|
-
// 2. Published package: Serve pre-built UI dist statically
|
|
67
|
-
// Try multiple paths for different environments
|
|
68
|
-
const uiSourcePaths = [
|
|
69
|
-
resolve(__dirname, '../../..', 'ui'), // Development (from dist/commands/)
|
|
70
|
-
resolve(__dirname, '../../../..', 'ui'), // Development (from bundled dist/)
|
|
71
|
-
];
|
|
72
|
-
const uiDistPaths = [
|
|
73
|
-
resolve(__dirname, '..', 'ui-dist'), // Development (from dist/commands/)
|
|
74
|
-
resolve(__dirname, 'ui-dist'), // Bundled/installed (from bundle.cjs location)
|
|
75
|
-
];
|
|
76
|
-
const uiSourcePath = uiSourcePaths.find(p => existsSync(resolve(p, 'vite.config.ts'))) || uiSourcePaths[0];
|
|
77
|
-
const uiDistPath = uiDistPaths.find(p => existsSync(resolve(p, 'index.html'))) || uiDistPaths[0];
|
|
78
|
-
const useViteDevServer = existsSync(resolve(uiSourcePath, 'vite.config.ts'));
|
|
79
|
-
let vite = null;
|
|
80
|
-
if (useViteDevServer) {
|
|
81
|
-
// Development mode: use Vite with HMR (dynamically import vite)
|
|
82
|
-
const { createServer: createViteServer } = await import('vite');
|
|
83
|
-
const serverOptions = {
|
|
84
|
-
middlewareMode: true,
|
|
85
|
-
hmr: {
|
|
86
|
-
port: port + 1,
|
|
87
|
-
host: host || 'localhost',
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
vite = await createViteServer({
|
|
91
|
-
root: uiSourcePath,
|
|
92
|
-
configFile: resolve(uiSourcePath, 'vite.config.ts'),
|
|
93
|
-
server: serverOptions,
|
|
94
|
-
appType: 'spa',
|
|
95
|
-
});
|
|
96
|
-
app.use(vite.middlewares);
|
|
97
|
-
}
|
|
98
|
-
else if (existsSync(uiDistPath)) {
|
|
99
|
-
// Published package mode: serve pre-built UI
|
|
100
|
-
// Inject demo config into index.html
|
|
101
|
-
const indexHtml = readFileSync(join(uiDistPath, 'index.html'), 'utf-8');
|
|
102
|
-
const injectedHtml = indexHtml.replace('</head>', `<script>window.__DEMOSCRIPT_API__ = true;</script></head>`);
|
|
103
|
-
app.get('/', (_req, res) => {
|
|
104
|
-
res.type('html').send(injectedHtml);
|
|
105
|
-
});
|
|
106
|
-
app.use(express.static(uiDistPath));
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
console.error(chalk.red('Error: UI files not found. Please rebuild the package.'));
|
|
110
|
-
process.exit(1);
|
|
111
|
-
}
|
|
112
|
-
// Start server
|
|
113
|
-
const listenHost = host || 'localhost';
|
|
114
|
-
const server = app.listen(port, listenHost, async () => {
|
|
115
|
-
console.log();
|
|
116
|
-
console.log(chalk.green.bold(' DemoScript is running!'));
|
|
117
|
-
console.log();
|
|
118
|
-
console.log(` ${chalk.cyan('Local:')} http://localhost:${port}`);
|
|
119
|
-
if (host === '0.0.0.0') {
|
|
120
|
-
const networkUrl = getNetworkUrl(port);
|
|
121
|
-
if (networkUrl) {
|
|
122
|
-
console.log(` ${chalk.cyan('Network:')} ${networkUrl}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
console.log(` ${chalk.cyan('Mode:')} ${chalk.yellow('Live execution enabled')}`);
|
|
126
|
-
if (watch) {
|
|
127
|
-
console.log(` ${chalk.cyan('Watch:')} ${chalk.green('Enabled')}`);
|
|
128
|
-
}
|
|
129
|
-
console.log();
|
|
130
|
-
console.log(chalk.gray(" Press 'q' to quit"));
|
|
131
|
-
console.log();
|
|
132
|
-
if (open) {
|
|
133
|
-
import('open').then((mod) => mod.default(`http://localhost:${port}`)).catch(() => {
|
|
134
|
-
// Ignore if open fails
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
// Set up WebSocket server for live reload
|
|
139
|
-
const wss = new WebSocketServer({ server, path: '/ws' });
|
|
140
|
-
wss.on('connection', (ws) => {
|
|
141
|
-
wsClients.add(ws);
|
|
142
|
-
ws.on('close', () => {
|
|
143
|
-
wsClients.delete(ws);
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
// Set up file watcher if --watch flag is enabled
|
|
147
|
-
let watcher = null;
|
|
148
|
-
if (watch) {
|
|
149
|
-
const recordingsFile = join(demoDir, 'recordings.json');
|
|
150
|
-
const filesToWatch = [demoFile];
|
|
151
|
-
if (existsSync(recordingsFile)) {
|
|
152
|
-
filesToWatch.push(recordingsFile);
|
|
153
|
-
}
|
|
154
|
-
watcher = chokidar.watch(filesToWatch, {
|
|
155
|
-
ignoreInitial: true,
|
|
156
|
-
awaitWriteFinish: {
|
|
157
|
-
stabilityThreshold: 300,
|
|
158
|
-
pollInterval: 100,
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
watcher.on('change', async (changedPath) => {
|
|
162
|
-
console.log(chalk.yellow(` File changed: ${changedPath}`));
|
|
163
|
-
try {
|
|
164
|
-
const reloaded = await loadDemo(demoFile);
|
|
165
|
-
config = reloaded.config;
|
|
166
|
-
recordings = reloaded.recordings;
|
|
167
|
-
openapiSpec = reloaded.openapiSpec;
|
|
168
|
-
console.log(chalk.green(` Reloaded: ${config.title}`));
|
|
169
|
-
// Notify all connected clients
|
|
170
|
-
const message = JSON.stringify({ type: 'reload', config, recordings, openapiSpec });
|
|
171
|
-
for (const client of wsClients) {
|
|
172
|
-
if (client.readyState === WebSocket.OPEN) {
|
|
173
|
-
client.send(message);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
catch (err) {
|
|
178
|
-
console.log(chalk.red(` Reload failed: ${err instanceof Error ? err.message : 'Unknown error'}`));
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
// Handle graceful shutdown
|
|
183
|
-
process.stdin.setRawMode?.(true);
|
|
184
|
-
process.stdin.resume();
|
|
185
|
-
process.stdin.on('data', (data) => {
|
|
186
|
-
const key = data.toString();
|
|
187
|
-
if (key === 'q' || key === '\u0003') {
|
|
188
|
-
console.log(chalk.gray('\nShutting down...'));
|
|
189
|
-
watcher?.close();
|
|
190
|
-
wss.close();
|
|
191
|
-
server.close();
|
|
192
|
-
vite?.close();
|
|
193
|
-
process.exit(0);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
//# sourceMappingURL=serve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,CAAC;KAC5D,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;KACxD,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAkF,EAAE,EAAE;IACjH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/G,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1G,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/lib/executor.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { RestStep, DemoConfig } from '../types.js';
|
|
2
|
-
interface ExecutionResult {
|
|
3
|
-
request: {
|
|
4
|
-
method: string;
|
|
5
|
-
url: string;
|
|
6
|
-
headers?: Record<string, string>;
|
|
7
|
-
body?: unknown;
|
|
8
|
-
};
|
|
9
|
-
status: number;
|
|
10
|
-
body: unknown;
|
|
11
|
-
pollingResult?: {
|
|
12
|
-
attempts: number;
|
|
13
|
-
finalResponse: unknown;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export declare function executeRestStep(step: RestStep, config: DemoConfig, variables: Record<string, unknown>): Promise<ExecutionResult>;
|
|
17
|
-
export declare function evaluateCondition(condition: string, response: unknown): boolean;
|
|
18
|
-
export declare function getNestedValue(obj: unknown, path: string): unknown;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/lib/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAEpE,UAAU,eAAe;IACvB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,CAsF1B;AA0DD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAuC/E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBlE"}
|
package/dist/lib/executor.js
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
export async function executeRestStep(step, config, variables) {
|
|
2
|
-
// Parse method and endpoint
|
|
3
|
-
const [method, ...endpointParts] = step.rest.split(' ');
|
|
4
|
-
const endpoint = endpointParts.join(' ');
|
|
5
|
-
// Substitute variables in endpoint
|
|
6
|
-
const resolvedEndpoint = substituteVariables(endpoint, variables);
|
|
7
|
-
// Build full URL
|
|
8
|
-
const baseUrl = step.base_url || config.settings?.base_url || '';
|
|
9
|
-
const fullUrl = `${baseUrl}${resolvedEndpoint}`;
|
|
10
|
-
// Build headers
|
|
11
|
-
const headers = {
|
|
12
|
-
'Content-Type': 'application/json',
|
|
13
|
-
...substituteInObject(step.headers || {}, variables),
|
|
14
|
-
};
|
|
15
|
-
// Build body from form defaults or body
|
|
16
|
-
let body = undefined;
|
|
17
|
-
if (method !== 'GET') {
|
|
18
|
-
if (step.form) {
|
|
19
|
-
body = Object.fromEntries(step.form.map((field) => {
|
|
20
|
-
const value = field.default ?? '';
|
|
21
|
-
const resolved = typeof value === 'string' ? substituteVariables(value, variables) : value;
|
|
22
|
-
return [field.name, resolved];
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
else if (step.body) {
|
|
26
|
-
body = substituteInObject(step.body, variables);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
// Execute request
|
|
30
|
-
const response = await fetch(fullUrl, {
|
|
31
|
-
method,
|
|
32
|
-
headers,
|
|
33
|
-
body: body ? JSON.stringify(body) : undefined,
|
|
34
|
-
});
|
|
35
|
-
const responseBody = await response.json().catch(() => null);
|
|
36
|
-
const result = {
|
|
37
|
-
request: {
|
|
38
|
-
method,
|
|
39
|
-
url: fullUrl,
|
|
40
|
-
headers,
|
|
41
|
-
body,
|
|
42
|
-
},
|
|
43
|
-
status: response.status,
|
|
44
|
-
body: responseBody,
|
|
45
|
-
};
|
|
46
|
-
// Save variables from initial response BEFORE polling
|
|
47
|
-
// This allows poll endpoint to reference saved variables like $jobId
|
|
48
|
-
// Supported special keywords: _status (HTTP status code)
|
|
49
|
-
if (step.save) {
|
|
50
|
-
for (const [varName, path] of Object.entries(step.save)) {
|
|
51
|
-
if (path === '_status') {
|
|
52
|
-
// Special keyword: capture HTTP status code (200, 404, etc.)
|
|
53
|
-
variables[varName] = response.status;
|
|
54
|
-
}
|
|
55
|
-
else if (responseBody) {
|
|
56
|
-
// JSON path extraction from response body
|
|
57
|
-
const value = getNestedValue(responseBody, path);
|
|
58
|
-
if (value !== undefined) {
|
|
59
|
-
variables[varName] = value;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Handle polling if configured
|
|
65
|
-
if (step.poll) {
|
|
66
|
-
const pollingResult = await executePoll(step.poll, baseUrl, headers, variables, config.settings?.polling);
|
|
67
|
-
result.pollingResult = pollingResult;
|
|
68
|
-
result.body = pollingResult.finalResponse;
|
|
69
|
-
}
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
async function executePoll(pollConfig, baseUrl, headers, variables, defaults) {
|
|
73
|
-
const interval = pollConfig.interval ?? defaults?.interval ?? 2000;
|
|
74
|
-
const maxAttempts = pollConfig.max_attempts ?? defaults?.max_attempts ?? 30;
|
|
75
|
-
const endpoint = substituteVariables(pollConfig.endpoint, variables);
|
|
76
|
-
// If endpoint is already an absolute URL, don't prepend baseUrl
|
|
77
|
-
const pollUrl = endpoint.startsWith('http://') || endpoint.startsWith('https://')
|
|
78
|
-
? endpoint
|
|
79
|
-
: `${baseUrl}${endpoint}`;
|
|
80
|
-
let attempts = 0;
|
|
81
|
-
let lastResponse = null;
|
|
82
|
-
while (attempts < maxAttempts) {
|
|
83
|
-
attempts++;
|
|
84
|
-
const response = await fetch(pollUrl, {
|
|
85
|
-
method: 'GET',
|
|
86
|
-
headers,
|
|
87
|
-
});
|
|
88
|
-
lastResponse = await response.json().catch(() => null);
|
|
89
|
-
// Check success condition
|
|
90
|
-
if (evaluateCondition(pollConfig.success_when, lastResponse)) {
|
|
91
|
-
return { attempts, finalResponse: lastResponse };
|
|
92
|
-
}
|
|
93
|
-
// Check failure condition if specified
|
|
94
|
-
if (pollConfig.failure_when && evaluateCondition(pollConfig.failure_when, lastResponse)) {
|
|
95
|
-
throw new Error(`Polling failed: ${pollConfig.failure_when} matched after ${attempts} attempts`);
|
|
96
|
-
}
|
|
97
|
-
// Wait before next attempt
|
|
98
|
-
await sleep(interval);
|
|
99
|
-
}
|
|
100
|
-
throw new Error(`Polling timed out after ${maxAttempts} attempts`);
|
|
101
|
-
}
|
|
102
|
-
export function evaluateCondition(condition, response) {
|
|
103
|
-
// Parse conditions like "response.status == 'complete'" or "status == 'confirmed'"
|
|
104
|
-
// Support both with and without "response." prefix
|
|
105
|
-
let match = condition.match(/^response\.(.+?)\s*(==|!=)\s*(.+)$/);
|
|
106
|
-
if (!match) {
|
|
107
|
-
// Try without response. prefix
|
|
108
|
-
match = condition.match(/^(.+?)\s*(==|!=)\s*(.+)$/);
|
|
109
|
-
}
|
|
110
|
-
if (!match) {
|
|
111
|
-
console.warn(`Unable to parse condition: ${condition}`);
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
const [, path, operator, expectedRaw] = match;
|
|
115
|
-
const actualValue = getNestedValue(response, path);
|
|
116
|
-
// Parse expected value
|
|
117
|
-
let expectedValue;
|
|
118
|
-
if (expectedRaw === 'true') {
|
|
119
|
-
expectedValue = true;
|
|
120
|
-
}
|
|
121
|
-
else if (expectedRaw === 'false') {
|
|
122
|
-
expectedValue = false;
|
|
123
|
-
}
|
|
124
|
-
else if (expectedRaw === 'null') {
|
|
125
|
-
expectedValue = null;
|
|
126
|
-
}
|
|
127
|
-
else if (/^['"](.*)['"]$/.test(expectedRaw)) {
|
|
128
|
-
expectedValue = expectedRaw.slice(1, -1);
|
|
129
|
-
}
|
|
130
|
-
else if (!isNaN(Number(expectedRaw))) {
|
|
131
|
-
expectedValue = Number(expectedRaw);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
expectedValue = expectedRaw;
|
|
135
|
-
}
|
|
136
|
-
if (operator === '==') {
|
|
137
|
-
return actualValue === expectedValue;
|
|
138
|
-
}
|
|
139
|
-
else if (operator === '!=') {
|
|
140
|
-
return actualValue !== expectedValue;
|
|
141
|
-
}
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
export function getNestedValue(obj, path) {
|
|
145
|
-
const parts = path.split('.');
|
|
146
|
-
let current = obj;
|
|
147
|
-
for (const part of parts) {
|
|
148
|
-
if (current === null || current === undefined) {
|
|
149
|
-
return undefined;
|
|
150
|
-
}
|
|
151
|
-
if (typeof current === 'object') {
|
|
152
|
-
current = current[part];
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return undefined;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return current;
|
|
159
|
-
}
|
|
160
|
-
function sleep(ms) {
|
|
161
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
162
|
-
}
|
|
163
|
-
function substituteVariables(str, variables) {
|
|
164
|
-
return str.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g, (_, name) => {
|
|
165
|
-
const value = variables[name];
|
|
166
|
-
return value !== undefined ? String(value) : `$${name}`;
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
function substituteInObject(obj, variables) {
|
|
170
|
-
if (typeof obj === 'string') {
|
|
171
|
-
return substituteVariables(obj, variables);
|
|
172
|
-
}
|
|
173
|
-
if (Array.isArray(obj)) {
|
|
174
|
-
return obj.map((item) => substituteInObject(item, variables));
|
|
175
|
-
}
|
|
176
|
-
if (obj && typeof obj === 'object') {
|
|
177
|
-
const result = {};
|
|
178
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
179
|
-
result[key] = substituteInObject(value, variables);
|
|
180
|
-
}
|
|
181
|
-
return result;
|
|
182
|
-
}
|
|
183
|
-
return obj;
|
|
184
|
-
}
|
|
185
|
-
//# sourceMappingURL=executor.js.map
|
package/dist/lib/executor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/lib/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/lib/executor.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { evaluateCondition, getNestedValue } from './executor.js';
|
|
3
|
-
describe('evaluateCondition', () => {
|
|
4
|
-
it('evaluates string equality', () => {
|
|
5
|
-
const response = { status: 'complete' };
|
|
6
|
-
expect(evaluateCondition("response.status == 'complete'", response)).toBe(true);
|
|
7
|
-
expect(evaluateCondition("response.status == 'pending'", response)).toBe(false);
|
|
8
|
-
});
|
|
9
|
-
it('evaluates string inequality', () => {
|
|
10
|
-
const response = { status: 'pending' };
|
|
11
|
-
expect(evaluateCondition("response.status != 'complete'", response)).toBe(true);
|
|
12
|
-
expect(evaluateCondition("response.status != 'pending'", response)).toBe(false);
|
|
13
|
-
});
|
|
14
|
-
it('evaluates boolean values', () => {
|
|
15
|
-
const response = { ready: true, done: false };
|
|
16
|
-
expect(evaluateCondition('response.ready == true', response)).toBe(true);
|
|
17
|
-
expect(evaluateCondition('response.done == false', response)).toBe(true);
|
|
18
|
-
expect(evaluateCondition('response.ready == false', response)).toBe(false);
|
|
19
|
-
});
|
|
20
|
-
it('evaluates numeric values', () => {
|
|
21
|
-
const response = { count: 42, value: 0 };
|
|
22
|
-
expect(evaluateCondition('response.count == 42', response)).toBe(true);
|
|
23
|
-
expect(evaluateCondition('response.value == 0', response)).toBe(true);
|
|
24
|
-
expect(evaluateCondition('response.count == 43', response)).toBe(false);
|
|
25
|
-
});
|
|
26
|
-
it('evaluates nested paths', () => {
|
|
27
|
-
const response = { data: { job: { status: 'done' } } };
|
|
28
|
-
expect(evaluateCondition("response.data.job.status == 'done'", response)).toBe(true);
|
|
29
|
-
});
|
|
30
|
-
it('evaluates null values', () => {
|
|
31
|
-
const response = { error: null };
|
|
32
|
-
expect(evaluateCondition('response.error == null', response)).toBe(true);
|
|
33
|
-
});
|
|
34
|
-
it('returns false for invalid conditions', () => {
|
|
35
|
-
expect(evaluateCondition('invalid condition', {})).toBe(false);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
describe('getNestedValue', () => {
|
|
39
|
-
it('extracts simple property', () => {
|
|
40
|
-
expect(getNestedValue({ name: 'test' }, 'name')).toBe('test');
|
|
41
|
-
});
|
|
42
|
-
it('extracts deeply nested property', () => {
|
|
43
|
-
const obj = { a: { b: { c: { d: 'value' } } } };
|
|
44
|
-
expect(getNestedValue(obj, 'a.b.c.d')).toBe('value');
|
|
45
|
-
});
|
|
46
|
-
it('returns undefined for missing path', () => {
|
|
47
|
-
expect(getNestedValue({ name: 'test' }, 'missing')).toBeUndefined();
|
|
48
|
-
});
|
|
49
|
-
it('handles null in path', () => {
|
|
50
|
-
const obj = { data: null };
|
|
51
|
-
expect(getNestedValue(obj, 'data.name')).toBeUndefined();
|
|
52
|
-
});
|
|
53
|
-
it('handles undefined in path', () => {
|
|
54
|
-
const obj = { data: undefined };
|
|
55
|
-
expect(getNestedValue(obj, 'data.name')).toBeUndefined();
|
|
56
|
-
});
|
|
57
|
-
it('extracts array element by index', () => {
|
|
58
|
-
const obj = { items: ['a', 'b', 'c'] };
|
|
59
|
-
expect(getNestedValue(obj, 'items.1')).toBe('b');
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=executor.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.test.js","sourceRoot":"","sources":["../../src/lib/executor.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/loader.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { DemoConfig, DemoRecordings } from '../types.js';
|
|
2
|
-
import { type OpenApiSpec } from './openapi.js';
|
|
3
|
-
interface LoadedDemo {
|
|
4
|
-
config: DemoConfig;
|
|
5
|
-
recordings: DemoRecordings | null;
|
|
6
|
-
openapiSpec: OpenApiSpec | null;
|
|
7
|
-
}
|
|
8
|
-
export declare function loadDemo(demoFile: string, skipValidation?: boolean): Promise<LoadedDemo>;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=loader.d.ts.map
|
package/dist/lib/loader.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAiD,MAAM,aAAa,CAAC;AAG7G,OAAO,EAAyD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvG,UAAU,UAAU;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA+C5F"}
|