flow-lang 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -9
- package/dist/analyzer/index.d.ts.map +1 -1
- package/dist/analyzer/index.js +26 -0
- package/dist/analyzer/index.js.map +1 -1
- package/dist/cli/index.js +158 -42
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/input-file.d.ts +2 -0
- package/dist/cli/input-file.d.ts.map +1 -0
- package/dist/cli/input-file.js +31 -0
- package/dist/cli/input-file.js.map +1 -0
- package/dist/lexer/index.d.ts.map +1 -1
- package/dist/lexer/index.js +5 -3
- package/dist/lexer/index.js.map +1 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +76 -10
- package/dist/parser/index.js.map +1 -1
- package/dist/runtime/index.d.ts +17 -11
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +160 -47
- package/dist/runtime/index.js.map +1 -1
- package/dist/server/index.d.ts +20 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +226 -0
- package/dist/server/index.js.map +1 -0
- package/dist/types/index.d.ts +29 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +13 -4
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ config:
|
|
|
11
11
|
|
|
12
12
|
services:
|
|
13
13
|
Inventory is an API at "https://inventory.example.com/api"
|
|
14
|
+
with headers:
|
|
15
|
+
Authorization: "Bearer {env.INVENTORY_KEY}"
|
|
14
16
|
Stripe is a plugin "stripe-payments"
|
|
15
17
|
Notifier is an AI using "openai/gpt-4o"
|
|
16
18
|
|
|
@@ -32,6 +34,7 @@ workflow:
|
|
|
32
34
|
|
|
33
35
|
step ChargePayment:
|
|
34
36
|
charge payment using Stripe with amount total and currency "usd"
|
|
37
|
+
save the status as payment-status
|
|
35
38
|
on failure:
|
|
36
39
|
retry 3 times waiting 5 seconds
|
|
37
40
|
if still failing:
|
|
@@ -71,14 +74,17 @@ flow run my-workflow.flow --input '{"order": {"id": "123", "items": ["A", "B"],
|
|
|
71
74
|
## CLI Commands
|
|
72
75
|
|
|
73
76
|
```bash
|
|
74
|
-
flow check <file>
|
|
75
|
-
flow run <file>
|
|
76
|
-
flow run <file> --input '<json>'
|
|
77
|
-
flow run <file> --
|
|
78
|
-
flow run <file> --
|
|
79
|
-
flow run <file> --
|
|
80
|
-
flow
|
|
81
|
-
flow test <file>
|
|
77
|
+
flow check <file> # Parse and validate (no execution)
|
|
78
|
+
flow run <file> # Execute a .flow file
|
|
79
|
+
flow run <file> --input '<json>' # Pass trigger data as JSON
|
|
80
|
+
flow run <file> --input-file data.csv # Load input from JSON, CSV, or Excel file
|
|
81
|
+
flow run <file> --verbose # Show detailed execution log
|
|
82
|
+
flow run <file> --mock # Use mock services instead of real APIs
|
|
83
|
+
flow run <file> --strict-env # Error on missing environment variables
|
|
84
|
+
flow test <file> # Dry-run with mock services
|
|
85
|
+
flow test <file> --verbose # Mock dry-run with execution log
|
|
86
|
+
flow serve <file-or-dir> # Start webhook server
|
|
87
|
+
flow serve <file-or-dir> --port 4000 # Custom port (default: 3000)
|
|
82
88
|
```
|
|
83
89
|
|
|
84
90
|
## Language Overview
|
|
@@ -93,6 +99,9 @@ Call real REST APIs, AI models, webhooks, or plugins:
|
|
|
93
99
|
verify email using EmailVerifier with address email
|
|
94
100
|
get user using GitHub at "/users/octocat"
|
|
95
101
|
charge payment using Stripe with amount total and currency "usd"
|
|
102
|
+
save the result as payment
|
|
103
|
+
save the status as status-code
|
|
104
|
+
save the response headers as resp-headers
|
|
96
105
|
```
|
|
97
106
|
|
|
98
107
|
### Conditions
|
|
@@ -189,6 +198,9 @@ Flow connects to real external services:
|
|
|
189
198
|
services:
|
|
190
199
|
# REST APIs — verb inference maps English to HTTP methods
|
|
191
200
|
GitHub is an API at "https://api.github.com"
|
|
201
|
+
with headers:
|
|
202
|
+
Authorization: "token {env.GITHUB_TOKEN}"
|
|
203
|
+
Accept: "application/vnd.github.v3+json"
|
|
192
204
|
|
|
193
205
|
# AI agents — OpenAI and Anthropic supported
|
|
194
206
|
Analyst is an AI using "openai/gpt-4o"
|
|
@@ -201,6 +213,33 @@ services:
|
|
|
201
213
|
Stripe is a plugin "stripe-payments"
|
|
202
214
|
```
|
|
203
215
|
|
|
216
|
+
### HTTP Headers
|
|
217
|
+
|
|
218
|
+
Services can include custom headers for authentication and other needs. Header values support string interpolation with environment variables:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
services:
|
|
222
|
+
Stripe is an API at "https://api.stripe.com/v1"
|
|
223
|
+
with headers:
|
|
224
|
+
Authorization: "Bearer {env.STRIPE_SECRET_KEY}"
|
|
225
|
+
Content-Type: "application/x-www-form-urlencoded"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Response Metadata
|
|
229
|
+
|
|
230
|
+
After a service call, you can inspect the HTTP status code and response headers:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
get user using GitHub at "/users/{username}"
|
|
234
|
+
save the result as user
|
|
235
|
+
save the status as status-code
|
|
236
|
+
save the response headers as resp-headers
|
|
237
|
+
|
|
238
|
+
if status-code is 200:
|
|
239
|
+
log "Found user: {user.name}"
|
|
240
|
+
log "Rate limit remaining: {resp-headers.x-ratelimit-remaining}"
|
|
241
|
+
```
|
|
242
|
+
|
|
204
243
|
### API Keys
|
|
205
244
|
|
|
206
245
|
Create a `.env` file in your project root:
|
|
@@ -208,6 +247,7 @@ Create a `.env` file in your project root:
|
|
|
208
247
|
```
|
|
209
248
|
OPENAI_API_KEY=sk-...
|
|
210
249
|
ANTHROPIC_API_KEY=sk-ant-...
|
|
250
|
+
GITHUB_TOKEN=ghp_...
|
|
211
251
|
```
|
|
212
252
|
|
|
213
253
|
Flow loads `.env` automatically via dotenv. Access any environment variable with `env.VARIABLE_NAME`.
|
|
@@ -238,6 +278,7 @@ The `examples/` directory has complete workflows:
|
|
|
238
278
|
- **email-verification.flow** — Validates a submitted email address
|
|
239
279
|
- **order-processing.flow** — Inventory check, payment, and confirmation
|
|
240
280
|
- **loan-application.flow** — Full pipeline: identity, credit, AI risk assessment, fraud screening, and approval
|
|
281
|
+
- **github-api.flow** — Authenticated GitHub API calls with custom headers
|
|
241
282
|
|
|
242
283
|
## Contributing
|
|
243
284
|
|
|
@@ -249,7 +290,7 @@ npm run build
|
|
|
249
290
|
npm run test
|
|
250
291
|
```
|
|
251
292
|
|
|
252
|
-
The test suite uses [Vitest](https://vitest.dev/) with
|
|
293
|
+
The test suite uses [Vitest](https://vitest.dev/) with 449 tests across all pipeline stages.
|
|
253
294
|
|
|
254
295
|
## License
|
|
255
296
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,SAAS,EAOrB,MAAM,mBAAmB,CAAC;AAO3B,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,SAAS,EAOrB,MAAM,mBAAmB,CAAC;AAO3B,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,SAAS,EAAE,CAwWnG"}
|
package/dist/analyzer/index.js
CHANGED
|
@@ -83,6 +83,20 @@ export function analyze(program, source, fileName = "<input>") {
|
|
|
83
83
|
addError(decl.loc, `Duplicate service name "${decl.name}". Each service must have a unique name.`);
|
|
84
84
|
}
|
|
85
85
|
seen.add(decl.name);
|
|
86
|
+
// Validate headers
|
|
87
|
+
if (decl.headers.length > 0) {
|
|
88
|
+
if (decl.serviceType === "ai" || decl.serviceType === "plugin") {
|
|
89
|
+
addWarning(decl.headers[0].loc, `Headers are not supported on ${decl.serviceType} services. They will be ignored.`, `Remove the "with headers:" block from "${decl.name}".`);
|
|
90
|
+
}
|
|
91
|
+
const seenHeaders = new Set();
|
|
92
|
+
for (const header of decl.headers) {
|
|
93
|
+
const lowerName = header.name.toLowerCase();
|
|
94
|
+
if (seenHeaders.has(lowerName)) {
|
|
95
|
+
addWarning(header.loc, `Duplicate header "${header.name}" on service "${decl.name}". The last value will be used.`);
|
|
96
|
+
}
|
|
97
|
+
seenHeaders.add(lowerName);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
86
100
|
}
|
|
87
101
|
}
|
|
88
102
|
// --------------------------------------------------------
|
|
@@ -217,6 +231,18 @@ export function analyze(program, source, fileName = "<input>") {
|
|
|
217
231
|
for (const param of stmt.parameters) {
|
|
218
232
|
checkExpression(param.value, scope);
|
|
219
233
|
}
|
|
234
|
+
if (stmt.path) {
|
|
235
|
+
checkExpression(stmt.path, scope);
|
|
236
|
+
}
|
|
237
|
+
if (stmt.resultVar) {
|
|
238
|
+
defineVar(scope, stmt.resultVar);
|
|
239
|
+
}
|
|
240
|
+
if (stmt.statusVar) {
|
|
241
|
+
defineVar(scope, stmt.statusVar);
|
|
242
|
+
}
|
|
243
|
+
if (stmt.headersVar) {
|
|
244
|
+
defineVar(scope, stmt.headersVar);
|
|
245
|
+
}
|
|
220
246
|
if (stmt.errorHandler) {
|
|
221
247
|
analyzeErrorHandler(stmt.errorHandler, scope);
|
|
222
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { readFileSync } from "fs";
|
|
2
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
3
3
|
import { config as loadDotenv } from "dotenv";
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import chalk from "chalk";
|
|
6
6
|
import { tokenize } from "../lexer/index.js";
|
|
7
7
|
import { parse } from "../parser/index.js";
|
|
8
8
|
import { analyze } from "../analyzer/index.js";
|
|
9
|
-
import { execute, toDisplay, flowValueToJson,
|
|
9
|
+
import { execute, toDisplay, flowValueToJson, buildConnectors, } from "../runtime/index.js";
|
|
10
|
+
import { startServer } from "../server/index.js";
|
|
10
11
|
import { formatErrors } from "../errors/index.js";
|
|
12
|
+
import { parseInputFile } from "./input-file.js";
|
|
11
13
|
function runPipeline(filePath) {
|
|
12
14
|
let source;
|
|
13
15
|
try {
|
|
@@ -52,50 +54,42 @@ function printErrors(errors) {
|
|
|
52
54
|
console.error("\n" + parts.join(", ") + " found.");
|
|
53
55
|
}
|
|
54
56
|
function printLog(log, verbose) {
|
|
55
|
-
if (!verbose)
|
|
56
|
-
return;
|
|
57
57
|
if (log.length === 0)
|
|
58
58
|
return;
|
|
59
|
-
|
|
59
|
+
// Always print user log statements
|
|
60
60
|
for (const entry of log) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const resultLabel = resultColor(entry.result);
|
|
64
|
-
let detail = "";
|
|
65
|
-
if (entry.details["message"]) {
|
|
66
|
-
detail = ` ${entry.details["message"]}`;
|
|
61
|
+
if (entry.action === "log" && entry.details["message"]) {
|
|
62
|
+
console.log(`[LOG] ${entry.details["message"]}`);
|
|
67
63
|
}
|
|
68
|
-
console.log(chalk.gray(` ${stepLabel}${entry.action} ${resultLabel}${detail}`));
|
|
69
64
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
case "plugin":
|
|
83
|
-
connectors.set(decl.name, new PluginStubConnector());
|
|
84
|
-
break;
|
|
85
|
-
case "ai":
|
|
86
|
-
if (decl.target.startsWith("anthropic/")) {
|
|
87
|
-
connectors.set(decl.name, new AnthropicConnector(decl.target, process.env.ANTHROPIC_API_KEY));
|
|
88
|
-
}
|
|
89
|
-
else if (decl.target.startsWith("openai/")) {
|
|
90
|
-
connectors.set(decl.name, new OpenAIConnector(decl.target, process.env.OPENAI_API_KEY));
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
connectors.set(decl.name, createMockConnector("ai"));
|
|
94
|
-
}
|
|
95
|
-
break;
|
|
65
|
+
// In verbose mode, print the full execution log
|
|
66
|
+
if (verbose) {
|
|
67
|
+
console.log(chalk.gray("\n--- Execution Log ---"));
|
|
68
|
+
for (const entry of log) {
|
|
69
|
+
const stepLabel = entry.step ? chalk.cyan(`[${entry.step}]`) + " " : "";
|
|
70
|
+
const resultColor = entry.result === "success" ? chalk.green : entry.result === "failure" ? chalk.red : chalk.yellow;
|
|
71
|
+
const resultLabel = resultColor(entry.result);
|
|
72
|
+
let detail = "";
|
|
73
|
+
if (entry.details["message"]) {
|
|
74
|
+
detail = ` ${entry.details["message"]}`;
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.gray(` ${stepLabel}${entry.action} ${resultLabel}${detail}`));
|
|
96
77
|
}
|
|
78
|
+
console.log(chalk.gray("--- End Log ---"));
|
|
97
79
|
}
|
|
98
|
-
|
|
80
|
+
}
|
|
81
|
+
// ============================================================
|
|
82
|
+
// Structured log writer
|
|
83
|
+
// ============================================================
|
|
84
|
+
function serializeLogEntries(entries) {
|
|
85
|
+
return entries.map(e => ({
|
|
86
|
+
timestamp: e.timestamp.toISOString(),
|
|
87
|
+
step: e.step,
|
|
88
|
+
action: e.action,
|
|
89
|
+
result: e.result,
|
|
90
|
+
durationMs: e.durationMs,
|
|
91
|
+
details: e.details,
|
|
92
|
+
}));
|
|
99
93
|
}
|
|
100
94
|
// ============================================================
|
|
101
95
|
// Commands
|
|
@@ -115,7 +109,7 @@ function checkCommand(filePath) {
|
|
|
115
109
|
}
|
|
116
110
|
async function runCommand(filePath, options) {
|
|
117
111
|
// Load .env file into process.env
|
|
118
|
-
loadDotenv();
|
|
112
|
+
loadDotenv({ quiet: true });
|
|
119
113
|
const pipeline = runPipeline(filePath);
|
|
120
114
|
if (!pipeline.success) {
|
|
121
115
|
if (pipeline.errors.length > 0)
|
|
@@ -123,8 +117,13 @@ async function runCommand(filePath, options) {
|
|
|
123
117
|
process.exitCode = 1;
|
|
124
118
|
return;
|
|
125
119
|
}
|
|
126
|
-
// Parse input
|
|
120
|
+
// Parse input — from --input (JSON string) or --input-file (file path)
|
|
127
121
|
let input = {};
|
|
122
|
+
if (options.input && options.inputFile) {
|
|
123
|
+
console.error(chalk.red("Error: Use either --input or --input-file, not both."));
|
|
124
|
+
process.exitCode = 1;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
128
127
|
if (options.input) {
|
|
129
128
|
try {
|
|
130
129
|
input = JSON.parse(options.input);
|
|
@@ -135,12 +134,25 @@ async function runCommand(filePath, options) {
|
|
|
135
134
|
return;
|
|
136
135
|
}
|
|
137
136
|
}
|
|
137
|
+
if (options.inputFile) {
|
|
138
|
+
try {
|
|
139
|
+
input = parseInputFile(options.inputFile);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
143
|
+
console.error(chalk.red(`Error reading input file: ${message}`));
|
|
144
|
+
process.exitCode = 1;
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
138
148
|
// Build connectors: real by default, mock with --mock flag
|
|
139
149
|
let connectors;
|
|
140
150
|
if (!options.mock && pipeline.program.services) {
|
|
141
151
|
connectors = buildConnectors(pipeline.program.services.declarations);
|
|
142
152
|
}
|
|
143
|
-
// Execute
|
|
153
|
+
// Execute with timing
|
|
154
|
+
const startedAt = new Date();
|
|
155
|
+
const startTime = performance.now();
|
|
144
156
|
const result = await execute(pipeline.program, pipeline.source, {
|
|
145
157
|
input,
|
|
146
158
|
connectors,
|
|
@@ -148,6 +160,8 @@ async function runCommand(filePath, options) {
|
|
|
148
160
|
verbose: options.verbose,
|
|
149
161
|
strictEnv: options.strictEnv,
|
|
150
162
|
});
|
|
163
|
+
const totalMs = Math.round(performance.now() - startTime);
|
|
164
|
+
const completedAt = new Date();
|
|
151
165
|
// Print log
|
|
152
166
|
printLog(result.log, options.verbose ?? false);
|
|
153
167
|
// Print result
|
|
@@ -173,6 +187,47 @@ async function runCommand(filePath, options) {
|
|
|
173
187
|
process.exitCode = 1;
|
|
174
188
|
break;
|
|
175
189
|
}
|
|
190
|
+
// Write structured log file if requested
|
|
191
|
+
if (options.outputLog) {
|
|
192
|
+
const configEntries = pipeline.program.config?.entries;
|
|
193
|
+
const nameEntry = configEntries?.find(e => e.key === "name")?.value;
|
|
194
|
+
const workflowName = nameEntry ? String(nameEntry) : filePath;
|
|
195
|
+
const versionEntry = configEntries?.find(e => e.key === "version")?.value;
|
|
196
|
+
const version = versionEntry ? parseInt(String(versionEntry), 10) : null;
|
|
197
|
+
let outputs = null;
|
|
198
|
+
let error = null;
|
|
199
|
+
if (result.result.status === "completed") {
|
|
200
|
+
outputs = {};
|
|
201
|
+
for (const [k, v] of Object.entries(result.result.outputs)) {
|
|
202
|
+
outputs[k] = flowValueToJson(v);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else if (result.result.status === "rejected") {
|
|
206
|
+
error = result.result.message;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
error = result.result.error.message;
|
|
210
|
+
}
|
|
211
|
+
const structuredLog = {
|
|
212
|
+
workflow: workflowName,
|
|
213
|
+
version: Number.isNaN(version) ? null : version,
|
|
214
|
+
status: result.result.status,
|
|
215
|
+
startedAt: startedAt.toISOString(),
|
|
216
|
+
completedAt: completedAt.toISOString(),
|
|
217
|
+
durationMs: totalMs,
|
|
218
|
+
outputs,
|
|
219
|
+
error,
|
|
220
|
+
entries: serializeLogEntries(result.log),
|
|
221
|
+
};
|
|
222
|
+
try {
|
|
223
|
+
writeFileSync(options.outputLog, JSON.stringify(structuredLog, null, 2), "utf-8");
|
|
224
|
+
console.log(chalk.gray(`\nLog written to ${options.outputLog}`));
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
228
|
+
console.error(chalk.yellow(`Warning: Could not write log file: ${message}`));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
176
231
|
}
|
|
177
232
|
async function testCommand(filePath, options) {
|
|
178
233
|
const pipeline = runPipeline(filePath);
|
|
@@ -183,11 +238,15 @@ async function testCommand(filePath, options) {
|
|
|
183
238
|
return;
|
|
184
239
|
}
|
|
185
240
|
console.log(chalk.blue(`Testing ${filePath} with mock services...\n`));
|
|
241
|
+
const startedAt = new Date();
|
|
242
|
+
const startTime = performance.now();
|
|
186
243
|
const result = await execute(pipeline.program, pipeline.source, {
|
|
187
244
|
input: {},
|
|
188
245
|
envVars: { API_KEY: "mock-api-key", SECRET: "mock-secret" },
|
|
189
246
|
verbose: options.verbose,
|
|
190
247
|
});
|
|
248
|
+
const totalMs = Math.round(performance.now() - startTime);
|
|
249
|
+
const completedAt = new Date();
|
|
191
250
|
printLog(result.log, options.verbose ?? false);
|
|
192
251
|
switch (result.result.status) {
|
|
193
252
|
case "completed": {
|
|
@@ -210,6 +269,47 @@ async function testCommand(filePath, options) {
|
|
|
210
269
|
process.exitCode = 1;
|
|
211
270
|
break;
|
|
212
271
|
}
|
|
272
|
+
// Write structured log file if requested
|
|
273
|
+
if (options.outputLog) {
|
|
274
|
+
const configEntries = pipeline.program.config?.entries;
|
|
275
|
+
const nameEntry = configEntries?.find(e => e.key === "name")?.value;
|
|
276
|
+
const workflowName = nameEntry ? String(nameEntry) : filePath;
|
|
277
|
+
const versionEntry = configEntries?.find(e => e.key === "version")?.value;
|
|
278
|
+
const version = versionEntry ? parseInt(String(versionEntry), 10) : null;
|
|
279
|
+
let outputs = null;
|
|
280
|
+
let error = null;
|
|
281
|
+
if (result.result.status === "completed") {
|
|
282
|
+
outputs = {};
|
|
283
|
+
for (const [k, v] of Object.entries(result.result.outputs)) {
|
|
284
|
+
outputs[k] = flowValueToJson(v);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else if (result.result.status === "rejected") {
|
|
288
|
+
error = result.result.message;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
error = result.result.error.message;
|
|
292
|
+
}
|
|
293
|
+
const structuredLog = {
|
|
294
|
+
workflow: workflowName,
|
|
295
|
+
version: Number.isNaN(version) ? null : version,
|
|
296
|
+
status: result.result.status,
|
|
297
|
+
startedAt: startedAt.toISOString(),
|
|
298
|
+
completedAt: completedAt.toISOString(),
|
|
299
|
+
durationMs: totalMs,
|
|
300
|
+
outputs,
|
|
301
|
+
error,
|
|
302
|
+
entries: serializeLogEntries(result.log),
|
|
303
|
+
};
|
|
304
|
+
try {
|
|
305
|
+
writeFileSync(options.outputLog, JSON.stringify(structuredLog, null, 2), "utf-8");
|
|
306
|
+
console.log(chalk.gray(`\nLog written to ${options.outputLog}`));
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
310
|
+
console.error(chalk.yellow(`Warning: Could not write log file: ${message}`));
|
|
311
|
+
}
|
|
312
|
+
}
|
|
213
313
|
}
|
|
214
314
|
// ============================================================
|
|
215
315
|
// CLI setup
|
|
@@ -227,15 +327,31 @@ program
|
|
|
227
327
|
.command("run <file>")
|
|
228
328
|
.description("Execute a .flow file")
|
|
229
329
|
.option("--input <json>", "JSON string with input data for the workflow")
|
|
330
|
+
.option("--input-file <path>", "Read input from a file (.json, .csv, .xlsx, .xls)")
|
|
230
331
|
.option("--verbose", "Show detailed execution log")
|
|
231
332
|
.option("--strict-env", "Error on missing environment variables instead of using empty")
|
|
232
333
|
.option("--mock", "Use mock services instead of real HTTP calls")
|
|
334
|
+
.option("--output-log <path>", "Write structured JSON log to a file")
|
|
233
335
|
.action(runCommand);
|
|
234
336
|
program
|
|
235
337
|
.command("test <file>")
|
|
236
338
|
.description("Test a .flow file with mock services")
|
|
237
339
|
.option("--dry-run", "Use mock services (default)")
|
|
238
340
|
.option("--verbose", "Show detailed execution log")
|
|
341
|
+
.option("--output-log <path>", "Write structured JSON log to a file")
|
|
239
342
|
.action(testCommand);
|
|
343
|
+
program
|
|
344
|
+
.command("serve <target>")
|
|
345
|
+
.description("Start an HTTP server to trigger workflows via webhook")
|
|
346
|
+
.option("--port <number>", "Port to listen on", "3000")
|
|
347
|
+
.option("--verbose", "Log each request")
|
|
348
|
+
.option("--mock", "Use mock services instead of real connectors")
|
|
349
|
+
.action((target, options) => {
|
|
350
|
+
startServer(target, {
|
|
351
|
+
port: parseInt(options.port, 10),
|
|
352
|
+
verbose: options.verbose ?? false,
|
|
353
|
+
mock: options.mock ?? false,
|
|
354
|
+
});
|
|
355
|
+
});
|
|
240
356
|
program.parse();
|
|
241
357
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACH,OAAO,EAAE,SAAS,EAAE,eAAe,EACnC,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EACvD,kBAAkB,EAAE,eAAe,EACnC,mBAAmB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD,SAAS,WAAW,CAAC,QAAgB;IACjC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,WAAW;IACX,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACD,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,QAAQ;IACR,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzE,UAAU;IACV,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,+DAA+D;AAC/D,iBAAiB;AACjB,+DAA+D;AAE/D,SAAS,WAAW,CAAC,MAAmB;IACpC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/F,IAAI,SAAS,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,WAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAe,EAAE,OAAgB;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACrH,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,YAAkC;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,KAAK;gBACN,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7D,MAAM;YACV,KAAK,SAAS;gBACV,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7D,MAAM;YACV,KAAK,QAAQ;gBACT,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;gBACrD,MAAM;YACV,KAAK,IAAI;gBACL,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBACvC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAClG,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC5F,CAAC;qBAAM,CAAC;oBACJ,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM;QACd,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D,SAAS,YAAY,CAAC,QAAgB;IAClC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAmF;IAC3H,kCAAkC;IAClC,UAAU,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,cAAc;IACd,IAAI,KAAK,GAA4B,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAA4B,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,IAAI,UAAqD,CAAC;IAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAQ,CAAC,QAAQ,EAAE,CAAC;QAC9C,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU;IACV,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAQ,EAAE,QAAQ,CAAC,MAAO,EAAE;QAC9D,KAAK;QACL,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,GAA6B;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC/B,CAAC,CAAC;IAEH,YAAY;IACZ,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAE/C,eAAe;IACf,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,UAAU;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,MAAM;QACV,KAAK,OAAO;YACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,MAAM;IACd,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,OAA8B;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,0BAA0B,CAAC,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAQ,EAAE,QAAQ,CAAC,MAAO,EAAE;QAC9D,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE;QAC3D,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAE/C,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnF,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,UAAU;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzF,MAAM;QACV,KAAK,OAAO;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,MAAM;IACd,CAAC;AACL,CAAC;AAED,+DAA+D;AAC/D,YAAY;AACZ,+DAA+D;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,OAAO;KACF,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;KACvF,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC;KAChE,MAAM,CAAC,UAAU,CAAC,CAAC;AAExB,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;KAClD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;KAClD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-file.d.ts","sourceRoot":"","sources":["../../src/cli/input-file.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCxE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { extname } from "path";
|
|
3
|
+
import XLSX from "xlsx";
|
|
4
|
+
const SUPPORTED_EXTENSIONS = new Set([".json", ".csv", ".xlsx", ".xls"]);
|
|
5
|
+
export function parseInputFile(filePath) {
|
|
6
|
+
const ext = extname(filePath).toLowerCase();
|
|
7
|
+
if (!SUPPORTED_EXTENSIONS.has(ext)) {
|
|
8
|
+
throw new Error(`Unsupported file type "${ext}". Supported types: .json, .csv, .xlsx, .xls`);
|
|
9
|
+
}
|
|
10
|
+
if (ext === ".json") {
|
|
11
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
12
|
+
return JSON.parse(raw);
|
|
13
|
+
}
|
|
14
|
+
// CSV, XLSX, XLS — use SheetJS
|
|
15
|
+
const workbook = XLSX.readFile(filePath);
|
|
16
|
+
const sheetName = workbook.SheetNames[0];
|
|
17
|
+
if (!sheetName) {
|
|
18
|
+
throw new Error("The file has no sheets.");
|
|
19
|
+
}
|
|
20
|
+
const sheet = workbook.Sheets[sheetName];
|
|
21
|
+
const rows = XLSX.utils.sheet_to_json(sheet);
|
|
22
|
+
if (rows.length === 0) {
|
|
23
|
+
throw new Error("The file has no data rows.");
|
|
24
|
+
}
|
|
25
|
+
// Single row → flat record; multiple rows → { rows: [...], count: N }
|
|
26
|
+
if (rows.length === 1) {
|
|
27
|
+
return rows[0];
|
|
28
|
+
}
|
|
29
|
+
return { rows, count: rows.length };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=input-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-file.js","sourceRoot":"","sources":["../../src/cli/input-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACX,0BAA0B,GAAG,8CAA8C,CAC9E,CAAC;IACN,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACtD,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA0B,KAAK,CAAC,CAAC;IAEtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,CAAC,CAAE,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA8EhE,qBAAa,UAAW,SAAQ,KAAK;IACjC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAEzB,SAAS,EAAE,SAAS;CAKnC;AAMD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,KAAK,EAAE,CAkc9E"}
|
package/dist/lexer/index.js
CHANGED
|
@@ -5,14 +5,18 @@ import { createError } from "../errors/index.js";
|
|
|
5
5
|
// ============================================================
|
|
6
6
|
// Multi-word keywords, sorted longest-first for greedy matching
|
|
7
7
|
const COMPOUND_KEYWORDS = [
|
|
8
|
+
"save the response headers as",
|
|
9
|
+
"save the confidence as",
|
|
10
|
+
"save the result as",
|
|
11
|
+
"save the status as",
|
|
8
12
|
"does not exist",
|
|
13
|
+
"if still failing",
|
|
9
14
|
"is not empty",
|
|
10
15
|
"otherwise if",
|
|
11
16
|
"divided by",
|
|
12
17
|
"rounded to",
|
|
13
18
|
"on failure",
|
|
14
19
|
"on timeout",
|
|
15
|
-
"if still failing",
|
|
16
20
|
"is at least",
|
|
17
21
|
"is at most",
|
|
18
22
|
"is not",
|
|
@@ -20,8 +24,6 @@ const COMPOUND_KEYWORDS = [
|
|
|
20
24
|
"is below",
|
|
21
25
|
"is empty",
|
|
22
26
|
"for each",
|
|
23
|
-
"save the result as",
|
|
24
|
-
"save the confidence as",
|
|
25
27
|
];
|
|
26
28
|
const SINGLE_KEYWORDS = new Set([
|
|
27
29
|
"workflow",
|