@flux-lang/core 0.1.29 → 0.1.32
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/render.d.ts +7 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +42 -18
- package/dist/render.js.map +1 -1
- package/dist/runtime/kernel.d.ts +12 -4
- package/dist/runtime/kernel.d.ts.map +1 -1
- package/dist/runtime/kernel.js +201 -74
- package/dist/runtime/kernel.js.map +1 -1
- package/dist/runtime/model.d.ts +12 -0
- package/dist/runtime/model.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/args.d.ts +0 -18
- package/dist/args.d.ts.map +0 -1
- package/dist/args.js +0 -60
- package/dist/args.js.map +0 -1
- package/dist/bin/flux.d.ts +0 -2
- package/dist/bin/flux.d.ts.map +0 -1
- package/dist/bin/flux.js +0 -157
- package/dist/bin/flux.js.map +0 -1
- package/dist/commands/check.d.ts +0 -2
- package/dist/commands/check.d.ts.map +0 -1
- package/dist/commands/check.js +0 -118
- package/dist/commands/check.js.map +0 -1
- package/dist/commands/repl.d.ts +0 -2
- package/dist/commands/repl.d.ts.map +0 -1
- package/dist/commands/repl.js +0 -37
- package/dist/commands/repl.js.map +0 -1
- package/dist/fs-utils.d.ts +0 -4
- package/dist/fs-utils.d.ts.map +0 -1
- package/dist/fs-utils.js +0 -34
- package/dist/fs-utils.js.map +0 -1
- package/dist/parse.d.ts +0 -2
- package/dist/parse.d.ts.map +0 -1
- package/dist/parse.js +0 -107
- package/dist/parse.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
package/dist/bin/flux.js
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
!/usr/bin / env;
|
|
2
|
-
node;
|
|
3
|
-
import { FLUX_CLI_VERSION } from "../version.js";
|
|
4
|
-
import { runParseCommand } from "../commands/parse.js";
|
|
5
|
-
import { runCheckCommand } from "../commands/check.js";
|
|
6
|
-
import { runRepl } from "../commands/repl.js";
|
|
7
|
-
function printGlobalHelp() {
|
|
8
|
-
// Keep in sync with the spec we agreed on
|
|
9
|
-
// (you can factor this into a template if needed)
|
|
10
|
-
const text = `
|
|
11
|
-
Flux language CLI v0.1
|
|
12
|
-
|
|
13
|
-
Usage:
|
|
14
|
-
flux <command> [options]
|
|
15
|
-
|
|
16
|
-
Commands:
|
|
17
|
-
parse Parse one or more .flux files and print their IR
|
|
18
|
-
check Parse and statically check .flux files
|
|
19
|
-
repl Interactive Flux scratchpad (paste snippets, see IR)
|
|
20
|
-
help Show help for a command
|
|
21
|
-
|
|
22
|
-
Global options:
|
|
23
|
-
-h, --help Show this help and exit
|
|
24
|
-
-V, --version Show version and exit
|
|
25
|
-
--color Force colored output
|
|
26
|
-
--no-color Disable colored output
|
|
27
|
-
|
|
28
|
-
Run \`flux help <command>\` for more details on a specific command.
|
|
29
|
-
If run with no arguments, \`flux\` starts the interactive \`repl\` mode.
|
|
30
|
-
`.trimStart();
|
|
31
|
-
// eslint-disable-next-line no-console
|
|
32
|
-
console.log(text);
|
|
33
|
-
}
|
|
34
|
-
function printCommandHelp(command) {
|
|
35
|
-
switch (command) {
|
|
36
|
-
case "parse": {
|
|
37
|
-
const text = `
|
|
38
|
-
Usage:
|
|
39
|
-
flux parse [options] <file...>
|
|
40
|
-
|
|
41
|
-
Description:
|
|
42
|
-
Parse one or more Flux source files and print their canonical IR.
|
|
43
|
-
|
|
44
|
-
For a single file, the default output is pretty-printed JSON to stdout.
|
|
45
|
-
For multiple files, the default output is NDJSON:
|
|
46
|
-
{"file":"path/to/file1.flux","doc":{...}}
|
|
47
|
-
{"file":"path/to/file2.flux","doc":{...}}
|
|
48
|
-
|
|
49
|
-
Options:
|
|
50
|
-
-o, --output <path> Write output to a file instead of stdout
|
|
51
|
-
--compact Emit compact JSON (no pretty-printing)
|
|
52
|
-
--ndjson Force NDJSON output even for a single file
|
|
53
|
-
--summary Print a human-readable summary instead of JSON
|
|
54
|
-
--stdin Read source from stdin (file list is ignored)
|
|
55
|
-
`.trimStart();
|
|
56
|
-
console.log(text);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
case "check": {
|
|
60
|
-
const text = `
|
|
61
|
-
Usage:
|
|
62
|
-
flux check [options] [paths...]
|
|
63
|
-
|
|
64
|
-
Description:
|
|
65
|
-
Parse and statically check Flux source files.
|
|
66
|
-
|
|
67
|
-
By default, checks all *.flux files under the given paths.
|
|
68
|
-
If no paths are provided, '.' is assumed.
|
|
69
|
-
|
|
70
|
-
Options:
|
|
71
|
-
-q, --quiet Suppress normal output; use exit code only
|
|
72
|
-
--json Emit machine-readable diagnostics as JSON
|
|
73
|
-
--max-errors N Stop after reporting N errors (default: unlimited)
|
|
74
|
-
--no-recursive Do not recurse into subdirectories
|
|
75
|
-
--stdin Read a single Flux source from stdin
|
|
76
|
-
|
|
77
|
-
Exit codes:
|
|
78
|
-
0 All files parsed and checked successfully
|
|
79
|
-
1 Parse/check errors in at least one file
|
|
80
|
-
2 Internal CLI error
|
|
81
|
-
`.trimStart();
|
|
82
|
-
console.log(text);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
case "repl": {
|
|
86
|
-
const text = `
|
|
87
|
-
Usage:
|
|
88
|
-
flux repl
|
|
89
|
-
|
|
90
|
-
Description:
|
|
91
|
-
Interactive Flux scratchpad.
|
|
92
|
-
|
|
93
|
-
- Paste or type a Flux document and press Ctrl+D (EOF) to parse.
|
|
94
|
-
- On success, prints a summary and optionally the IR.
|
|
95
|
-
- On failure, prints the parse error with location.
|
|
96
|
-
|
|
97
|
-
Notes:
|
|
98
|
-
Running \`flux\` with no arguments is equivalent to \`flux repl\`.
|
|
99
|
-
`.trimStart();
|
|
100
|
-
console.log(text);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
default:
|
|
104
|
-
console.error(`Unknown command '${command}' for 'flux help'.`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
async function main() {
|
|
108
|
-
const [, , ...argv] = process.argv;
|
|
109
|
-
if (argv.length === 0) {
|
|
110
|
-
await runRepl();
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const first = argv[0];
|
|
114
|
-
if (first === "-h" || first === "--help") {
|
|
115
|
-
printGlobalHelp();
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (first === "-V" || first === "--version") {
|
|
119
|
-
console.log(`flux v${FLUX_CLI_VERSION}`);
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (first === "help") {
|
|
123
|
-
const sub = argv[1];
|
|
124
|
-
if (!sub) {
|
|
125
|
-
printGlobalHelp();
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
printCommandHelp(sub);
|
|
129
|
-
}
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const command = first;
|
|
133
|
-
const commandArgs = argv.slice(1);
|
|
134
|
-
try {
|
|
135
|
-
switch (command) {
|
|
136
|
-
case "parse":
|
|
137
|
-
await runParseCommand(commandArgs);
|
|
138
|
-
break;
|
|
139
|
-
case "check":
|
|
140
|
-
await runCheckCommand(commandArgs);
|
|
141
|
-
break;
|
|
142
|
-
case "repl":
|
|
143
|
-
await runRepl();
|
|
144
|
-
break;
|
|
145
|
-
default:
|
|
146
|
-
console.error(`Unknown command '${command}'.`);
|
|
147
|
-
printGlobalHelp();
|
|
148
|
-
process.exitCode = 1;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch (err) {
|
|
152
|
-
console.error(`flux: internal error: ${err.message}`);
|
|
153
|
-
process.exitCode = 2;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
void main();
|
|
157
|
-
//# sourceMappingURL=flux.js.map
|
package/dist/bin/flux.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flux.js","sourceRoot":"","sources":["../../src/bin/flux.ts"],"names":[],"mappings":"AACC,CAAC,QAAQ,GAAC,GAAG,CAAA;AAAC,IAAI,CAAA;AAEnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,SAAS,eAAe;IACtB,0CAA0C;IAC1C,kDAAkD;IAClD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;CAoBd,CAAC,SAAS,EAAE,CAAC;IACZ,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;CAkBlB,CAAC,SAAS,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC,SAAS,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG;;;;;;;;;;;;;CAalB,CAAC,SAAS,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,oBAAoB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,eAAe,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO;gBACV,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,OAAO,EAAE,CAAC;gBAChB,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;gBAC/C,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
|
package/dist/commands/check.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAwBA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDnE"}
|
package/dist/commands/check.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
// packages/cli/src/commands/check.ts
|
|
2
|
-
import { parseArgs } from "../args.js";
|
|
3
|
-
import { collectFluxFiles, readFileText } from "../fs-utils.js";
|
|
4
|
-
import { parseDocument } from "@flux-lang/core"; // adjust path if needed
|
|
5
|
-
export async function runCheckCommand(argv) {
|
|
6
|
-
const { flags, positional } = parseArgs(argv);
|
|
7
|
-
const options = {
|
|
8
|
-
quiet: Boolean(flags.q || flags.quiet),
|
|
9
|
-
json: Boolean(flags.json),
|
|
10
|
-
maxErrors: typeof flags["max-errors"] === "number" ? flags["max-errors"] : undefined,
|
|
11
|
-
recursive: !Boolean(flags["no-recursive"]),
|
|
12
|
-
stdin: Boolean(flags.stdin),
|
|
13
|
-
};
|
|
14
|
-
const diags = [];
|
|
15
|
-
if (options.stdin) {
|
|
16
|
-
const src = await readAllStdin();
|
|
17
|
-
collectDiagnostics("<stdin>", src, diags, options);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const roots = positional.length > 0 ? positional : ["."];
|
|
21
|
-
for (const root of roots) {
|
|
22
|
-
const files = collectFluxFiles(root, options.recursive);
|
|
23
|
-
for (const file of files) {
|
|
24
|
-
const src = readFileText(file);
|
|
25
|
-
collectDiagnostics(file, src, diags, options);
|
|
26
|
-
if (options.maxErrors && diags.length >= options.maxErrors) {
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (options.maxErrors && diags.length >= options.maxErrors) {
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (options.json) {
|
|
36
|
-
process.stdout.write(JSON.stringify(diags, null, 2) + "\n");
|
|
37
|
-
}
|
|
38
|
-
else if (!options.quiet) {
|
|
39
|
-
for (const d of diags) {
|
|
40
|
-
const loc = d.line != null && d.column != null ? `${d.file}:${d.line}:${d.column}` : d.file;
|
|
41
|
-
console.error(`${loc} [${d.severity.toUpperCase()} ${d.code}] ${d.message}`);
|
|
42
|
-
}
|
|
43
|
-
if (diags.length === 0) {
|
|
44
|
-
console.log("flux check: no issues found.");
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (diags.some((d) => d.severity === "error")) {
|
|
48
|
-
process.exitCode = 1;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async function readAllStdin() {
|
|
52
|
-
return new Promise((resolve, reject) => {
|
|
53
|
-
let data = "";
|
|
54
|
-
process.stdin.setEncoding("utf8");
|
|
55
|
-
process.stdin.on("data", (chunk) => (data += chunk));
|
|
56
|
-
process.stdin.on("end", () => resolve(data));
|
|
57
|
-
process.stdin.on("error", (err) => reject(err));
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
function collectDiagnostics(file, src, diags, opts) {
|
|
61
|
-
try {
|
|
62
|
-
const doc = parseDocument(src);
|
|
63
|
-
// Minimal static checks, "as robust as possible for this spec" without overreaching.
|
|
64
|
-
// 1. meta.version should be "0.1.0"
|
|
65
|
-
if (!doc.meta?.version) {
|
|
66
|
-
diags.push({
|
|
67
|
-
file,
|
|
68
|
-
severity: "warning",
|
|
69
|
-
code: "W_META_VERSION_MISSING",
|
|
70
|
-
message: "meta.version is missing; expected '0.1.0' for v0.1 documents.",
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
else if (doc.meta.version !== "0.1.0") {
|
|
74
|
-
diags.push({
|
|
75
|
-
file,
|
|
76
|
-
severity: "warning",
|
|
77
|
-
code: "W_META_VERSION_MISMATCH",
|
|
78
|
-
message: `meta.version is '${doc.meta.version}', expected '0.1.0' for v0.1 documents.`,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
// 2. docstep rules should have a docstep param if you want to enforce that.
|
|
82
|
-
const hasDocstepParam = doc.state.params?.some((p) => p.name === "docstep" && p.type === "int") ?? false;
|
|
83
|
-
const hasDocstepRules = doc.rules?.some((r) => r.mode === "docstep") ?? false;
|
|
84
|
-
if (hasDocstepRules && !hasDocstepParam) {
|
|
85
|
-
diags.push({
|
|
86
|
-
file,
|
|
87
|
-
severity: "warning",
|
|
88
|
-
code: "W_DOCSTEP_PARAM_MISSING",
|
|
89
|
-
message: "Document defines docstep rules but no 'docstep : int [...]' param was found in state.",
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
// (Many of the other invariants are already enforced at parse-time.)
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
const e = err;
|
|
96
|
-
const { line, column } = extractLocationFromMessage(e.message);
|
|
97
|
-
diags.push({
|
|
98
|
-
file,
|
|
99
|
-
line,
|
|
100
|
-
column,
|
|
101
|
-
severity: "error",
|
|
102
|
-
code: "E_PARSE",
|
|
103
|
-
message: e.message,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
function extractLocationFromMessage(message) {
|
|
108
|
-
// Parser error format:
|
|
109
|
-
// "Parse error at 33:40 near '{': Expected expression"
|
|
110
|
-
const match = /at\s+(\d+):(\d+)/.exec(message);
|
|
111
|
-
if (!match)
|
|
112
|
-
return {};
|
|
113
|
-
return {
|
|
114
|
-
line: Number(match[1]),
|
|
115
|
-
column: Number(match[2]),
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=check.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/repl.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/commands/repl.ts"],"names":[],"mappings":"AAGA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7C"}
|
package/dist/commands/repl.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// packages/cli/src/commands/repl.ts
|
|
2
|
-
import { parseDocument } from "@flux-lang/core";
|
|
3
|
-
export async function runRepl() {
|
|
4
|
-
// For v0.1, this is a single-shot "paste and parse" mode.
|
|
5
|
-
// Later you can make it interactive line-by-line if you want.
|
|
6
|
-
const src = await readAllStdin();
|
|
7
|
-
if (!src.trim()) {
|
|
8
|
-
console.error("flux repl: no input received on stdin.");
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
try {
|
|
12
|
-
const doc = parseDocument(src);
|
|
13
|
-
console.log("Parse succeeded.");
|
|
14
|
-
const title = doc.meta?.title ?? "<unnamed>";
|
|
15
|
-
const rules = doc.rules?.length ?? 0;
|
|
16
|
-
const grids = doc.grids?.length ?? 0;
|
|
17
|
-
console.log(` title : ${JSON.stringify(title)}`);
|
|
18
|
-
console.log(` grids : ${grids}`);
|
|
19
|
-
console.log(` rules : ${rules}`);
|
|
20
|
-
// Optional: pretty-print IR
|
|
21
|
-
console.log("\nIR:");
|
|
22
|
-
console.log(JSON.stringify(doc, null, 2));
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
console.error(`flux repl: parse error: ${err.message}`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
async function readAllStdin() {
|
|
29
|
-
return new Promise((resolve, reject) => {
|
|
30
|
-
let data = "";
|
|
31
|
-
process.stdin.setEncoding("utf8");
|
|
32
|
-
process.stdin.on("data", (chunk) => (data += chunk));
|
|
33
|
-
process.stdin.on("end", () => resolve(data));
|
|
34
|
-
process.stdin.on("error", (err) => reject(err));
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=repl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/commands/repl.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,0DAA0D;IAC1D,8DAA8D;IAC9D,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,WAAW,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QAElC,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/fs-utils.d.ts
DELETED
package/dist/fs-utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,UAAO,GACf,MAAM,EAAE,CAuBV"}
|
package/dist/fs-utils.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// packages/cli/src/fs-utils.ts
|
|
2
|
-
import fs from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
export function readFileText(filePath) {
|
|
5
|
-
return fs.readFileSync(filePath, "utf8");
|
|
6
|
-
}
|
|
7
|
-
export function writeFileText(filePath, text) {
|
|
8
|
-
fs.writeFileSync(filePath, text, "utf8");
|
|
9
|
-
}
|
|
10
|
-
export function collectFluxFiles(root, recursive = true) {
|
|
11
|
-
const result = [];
|
|
12
|
-
function walk(dir) {
|
|
13
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
14
|
-
for (const entry of entries) {
|
|
15
|
-
const full = path.join(dir, entry.name);
|
|
16
|
-
if (entry.isDirectory()) {
|
|
17
|
-
if (recursive)
|
|
18
|
-
walk(full);
|
|
19
|
-
}
|
|
20
|
-
else if (entry.isFile() && full.endsWith(".flux")) {
|
|
21
|
-
result.push(full);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const stat = fs.statSync(root);
|
|
26
|
-
if (stat.isDirectory()) {
|
|
27
|
-
walk(root);
|
|
28
|
-
}
|
|
29
|
-
else if (stat.isFile() && root.endsWith(".flux")) {
|
|
30
|
-
result.push(root);
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=fs-utils.js.map
|
package/dist/fs-utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAY;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,SAAS,GAAG,IAAI;IAEhB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,SAAS,IAAI,CAAC,GAAW;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,SAAS;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/parse.d.ts
DELETED
package/dist/parse.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAoBA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DnE"}
|
package/dist/parse.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { parseArgs } from "../args.js";
|
|
3
|
-
import { readFileText, writeFileText } from "../fs-utils.js";
|
|
4
|
-
import { parseDocument } from "@flux-lang/core"; // adjust path if needed
|
|
5
|
-
export async function runParseCommand(argv) {
|
|
6
|
-
const { flags, positional } = parseArgs(argv);
|
|
7
|
-
const options = {
|
|
8
|
-
outputPath: flags.o ?? flags.output ?? undefined,
|
|
9
|
-
compact: Boolean(flags.compact),
|
|
10
|
-
ndjson: Boolean(flags.ndjson),
|
|
11
|
-
summary: Boolean(flags.summary),
|
|
12
|
-
stdin: Boolean(flags.stdin),
|
|
13
|
-
};
|
|
14
|
-
const outputs = [];
|
|
15
|
-
let hadError = false;
|
|
16
|
-
if (options.stdin) {
|
|
17
|
-
const src = await readAllStdin();
|
|
18
|
-
try {
|
|
19
|
-
const doc = parseDocument(src);
|
|
20
|
-
outputs.push({ file: "<stdin>", doc });
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
hadError = true;
|
|
24
|
-
printParseError("<stdin>", err);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
if (positional.length === 0) {
|
|
29
|
-
console.error("flux parse: expected at least one <file> or --stdin");
|
|
30
|
-
process.exitCode = 1;
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
for (const file of positional) {
|
|
34
|
-
let src;
|
|
35
|
-
try {
|
|
36
|
-
src = readFileText(file);
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
hadError = true;
|
|
40
|
-
console.error(`flux parse: failed to read ${file}: ${err.message}`);
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
const doc = parseDocument(src);
|
|
45
|
-
outputs.push({ file: path.resolve(file), doc });
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
hadError = true;
|
|
49
|
-
printParseError(file, err);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (outputs.length > 0) {
|
|
54
|
-
const json = formatOutput(outputs, options);
|
|
55
|
-
if (options.outputPath) {
|
|
56
|
-
writeFileText(options.outputPath, json);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
process.stdout.write(json + "\n");
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (hadError) {
|
|
63
|
-
process.exitCode = 1;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
async function readAllStdin() {
|
|
67
|
-
return new Promise((resolve, reject) => {
|
|
68
|
-
let data = "";
|
|
69
|
-
process.stdin.setEncoding("utf8");
|
|
70
|
-
process.stdin.on("data", (chunk) => (data += chunk));
|
|
71
|
-
process.stdin.on("end", () => resolve(data));
|
|
72
|
-
process.stdin.on("error", (err) => reject(err));
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function printParseError(file, err) {
|
|
76
|
-
// Your parser errors already include line/column info in the message string.
|
|
77
|
-
console.error(`flux parse: ${file}: ${err.message}`);
|
|
78
|
-
}
|
|
79
|
-
function formatOutput(files, opts) {
|
|
80
|
-
if (opts.summary) {
|
|
81
|
-
return files.map((f) => summarizeDoc(f.file, f.doc)).join("\n\n");
|
|
82
|
-
}
|
|
83
|
-
if (files.length === 1 && !opts.ndjson) {
|
|
84
|
-
const doc = files[0].doc;
|
|
85
|
-
return JSON.stringify(doc, null, opts.compact ? 0 : 2);
|
|
86
|
-
}
|
|
87
|
-
// NDJSON
|
|
88
|
-
return files
|
|
89
|
-
.map((f) => JSON.stringify({ file: f.file, doc: f.doc }))
|
|
90
|
-
.join("\n");
|
|
91
|
-
}
|
|
92
|
-
function summarizeDoc(file, doc) {
|
|
93
|
-
const title = doc?.meta?.title ?? "<unnamed>";
|
|
94
|
-
const version = doc?.meta?.version ?? "<unknown>";
|
|
95
|
-
const params = doc?.state?.params?.length ?? 0;
|
|
96
|
-
const grids = doc?.grids?.length ?? 0;
|
|
97
|
-
const rules = doc?.rules?.length ?? 0;
|
|
98
|
-
return [
|
|
99
|
-
file,
|
|
100
|
-
` title : ${JSON.stringify(title)}`,
|
|
101
|
-
` version : ${version}`,
|
|
102
|
-
` params : ${params}`,
|
|
103
|
-
` grids : ${grids}`,
|
|
104
|
-
` rules : ${rules}`,
|
|
105
|
-
].join("\n");
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=parse.js.map
|
package/dist/parse.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
DELETED
package/dist/version.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,UAAU,CAAC"}
|
package/dist/version.js
DELETED
package/dist/version.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC"}
|