@flux-lang/core 0.1.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.
Files changed (53) hide show
  1. package/dist/args.d.ts +18 -0
  2. package/dist/args.d.ts.map +1 -0
  3. package/dist/args.js +60 -0
  4. package/dist/args.js.map +1 -0
  5. package/dist/ast.d.ts +194 -0
  6. package/dist/ast.d.ts.map +1 -0
  7. package/dist/ast.js +3 -0
  8. package/dist/ast.js.map +1 -0
  9. package/dist/bin/flux.d.ts +2 -0
  10. package/dist/bin/flux.d.ts.map +1 -0
  11. package/dist/bin/flux.js +157 -0
  12. package/dist/bin/flux.js.map +1 -0
  13. package/dist/checks.d.ts +12 -0
  14. package/dist/checks.d.ts.map +1 -0
  15. package/dist/checks.js +98 -0
  16. package/dist/checks.js.map +1 -0
  17. package/dist/commands/check.d.ts +2 -0
  18. package/dist/commands/check.d.ts.map +1 -0
  19. package/dist/commands/check.js +118 -0
  20. package/dist/commands/check.js.map +1 -0
  21. package/dist/commands/repl.d.ts +2 -0
  22. package/dist/commands/repl.d.ts.map +1 -0
  23. package/dist/commands/repl.js +37 -0
  24. package/dist/commands/repl.js.map +1 -0
  25. package/dist/fs-utils.d.ts +4 -0
  26. package/dist/fs-utils.d.ts.map +1 -0
  27. package/dist/fs-utils.js +34 -0
  28. package/dist/fs-utils.js.map +1 -0
  29. package/dist/index.d.ts +6 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +11 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/parse.d.ts +2 -0
  34. package/dist/parse.d.ts.map +1 -0
  35. package/dist/parse.js +107 -0
  36. package/dist/parse.js.map +1 -0
  37. package/dist/parser.d.ts +3 -0
  38. package/dist/parser.d.ts.map +1 -0
  39. package/dist/parser.js +1452 -0
  40. package/dist/parser.js.map +1 -0
  41. package/dist/runtime/kernel.d.ts +20 -0
  42. package/dist/runtime/kernel.d.ts.map +1 -0
  43. package/dist/runtime/kernel.js +356 -0
  44. package/dist/runtime/kernel.js.map +1 -0
  45. package/dist/runtime/model.d.ts +146 -0
  46. package/dist/runtime/model.d.ts.map +1 -0
  47. package/dist/runtime/model.js +3 -0
  48. package/dist/runtime/model.js.map +1 -0
  49. package/dist/version.d.ts +2 -0
  50. package/dist/version.d.ts.map +1 -0
  51. package/dist/version.js +3 -0
  52. package/dist/version.js.map +1 -0
  53. package/package.json +33 -0
package/dist/args.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export interface FlagMap {
2
+ [key: string]: string | number | boolean;
3
+ }
4
+ export interface ParsedArgs {
5
+ flags: FlagMap;
6
+ positional: string[];
7
+ }
8
+ /**
9
+ * Very small, predictable argv parser.
10
+ * Supports:
11
+ * --flag
12
+ * --flag=value
13
+ * --flag value
14
+ * -q (single-char flags)
15
+ * Everything else is treated as positional.
16
+ */
17
+ export declare function parseArgs(argv: string[]): ParsedArgs;
18
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA2CpD"}
package/dist/args.js ADDED
@@ -0,0 +1,60 @@
1
+ // packages/cli/src/args.ts
2
+ /**
3
+ * Very small, predictable argv parser.
4
+ * Supports:
5
+ * --flag
6
+ * --flag=value
7
+ * --flag value
8
+ * -q (single-char flags)
9
+ * Everything else is treated as positional.
10
+ */
11
+ export function parseArgs(argv) {
12
+ const flags = {};
13
+ const positional = [];
14
+ for (let i = 0; i < argv.length; i++) {
15
+ const arg = argv[i];
16
+ if (arg === "--") {
17
+ positional.push(...argv.slice(i + 1));
18
+ break;
19
+ }
20
+ if (arg.startsWith("--")) {
21
+ const body = arg.slice(2);
22
+ const eqIdx = body.indexOf("=");
23
+ if (eqIdx !== -1) {
24
+ const key = body.slice(0, eqIdx);
25
+ const value = coerce(body.slice(eqIdx + 1));
26
+ flags[key] = value;
27
+ }
28
+ else {
29
+ const next = argv[i + 1];
30
+ if (next && !next.startsWith("-")) {
31
+ flags[body] = coerce(next);
32
+ i++;
33
+ }
34
+ else {
35
+ flags[body] = true;
36
+ }
37
+ }
38
+ continue;
39
+ }
40
+ if (arg.startsWith("-") && arg.length > 1) {
41
+ const letters = arg.slice(1).split("");
42
+ for (const ch of letters) {
43
+ flags[ch] = true;
44
+ }
45
+ continue;
46
+ }
47
+ positional.push(arg);
48
+ }
49
+ return { flags, positional };
50
+ }
51
+ function coerce(raw) {
52
+ if (raw === "true")
53
+ return true;
54
+ if (raw === "false")
55
+ return false;
56
+ if (/^-?\d+(\.\d+)?$/.test(raw))
57
+ return Number(raw);
58
+ return raw;
59
+ }
60
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAW3B;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5C,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,EAAE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/ast.d.ts ADDED
@@ -0,0 +1,194 @@
1
+ export type FluxType = "int" | "float" | "bool" | "string" | "enum";
2
+ export interface FluxParam {
3
+ name: string;
4
+ type: FluxType;
5
+ min?: number | string;
6
+ max?: number | string;
7
+ initial: number | string | boolean;
8
+ }
9
+ export interface FluxState {
10
+ params: FluxParam[];
11
+ }
12
+ export interface FluxMeta {
13
+ title?: string;
14
+ author?: string;
15
+ version: string;
16
+ [key: string]: string | undefined;
17
+ }
18
+ export interface PageSize {
19
+ width: number;
20
+ height: number;
21
+ units: string;
22
+ }
23
+ export interface PageConfig {
24
+ size: PageSize;
25
+ }
26
+ export type Topology = "grid" | "linear" | "graph" | "spatial";
27
+ export type PayloadKind = "none" | "phrase" | "audio_clip" | "image" | "video";
28
+ export interface BasePayload {
29
+ kind: PayloadKind | string;
30
+ }
31
+ export interface PhrasePayload extends BasePayload {
32
+ kind: "phrase";
33
+ instrument?: string;
34
+ pitches: string[];
35
+ durations: number[];
36
+ }
37
+ export interface AudioClipPayload extends BasePayload {
38
+ kind: "audio_clip";
39
+ start: number;
40
+ duration: number;
41
+ gain?: number;
42
+ }
43
+ export interface ImagePayload extends BasePayload {
44
+ kind: "image";
45
+ crop?: {
46
+ x: number;
47
+ y: number;
48
+ w: number;
49
+ h: number;
50
+ };
51
+ opacity?: number;
52
+ }
53
+ export interface VideoPayload extends BasePayload {
54
+ kind: "video";
55
+ start?: number;
56
+ end?: number;
57
+ loop?: boolean;
58
+ }
59
+ export type FluxPayload = BasePayload | PhrasePayload | AudioClipPayload | ImagePayload | VideoPayload | Record<string, any>;
60
+ export interface FluxCell {
61
+ id: string;
62
+ tags: string[];
63
+ content?: string;
64
+ mediaId?: string;
65
+ payload?: FluxPayload;
66
+ dynamic?: number;
67
+ density?: number;
68
+ salience?: number;
69
+ numericFields?: Record<string, number>;
70
+ }
71
+ export interface GridSize {
72
+ rows?: number;
73
+ cols?: number;
74
+ }
75
+ export interface FluxGrid {
76
+ name: string;
77
+ topology: Topology;
78
+ page?: number;
79
+ size?: GridSize;
80
+ cells: FluxCell[];
81
+ }
82
+ export type CanonicalEventType = "transport" | "input" | "sensor";
83
+ export interface FluxEvent {
84
+ type: string;
85
+ source?: string;
86
+ location?: any;
87
+ payload?: any;
88
+ timestamp: number;
89
+ }
90
+ export type EventsApplyPolicy = "immediate" | "deferred" | "cellImmediateParamsDeferred";
91
+ export type DocstepAdvanceKind = "timer" | "transport" | "ruleRequest";
92
+ export type TimerUnit = "s" | "sec" | "secs" | "second" | "seconds" | "ms" | "millisecond" | "milliseconds" | "m" | "min" | "mins" | "minute" | "minutes" | "h" | "hr" | "hrs" | "hour" | "hours" | "bar" | "bars" | "measure" | "measures" | "beat" | "beats" | "sub" | "subs" | "subdivision" | "subdivisions" | "tick" | "ticks";
93
+ export interface DocstepAdvanceTimer {
94
+ kind: "timer";
95
+ amount: number;
96
+ unit: TimerUnit;
97
+ }
98
+ export interface DocstepAdvanceTransport {
99
+ kind: "transport";
100
+ eventName: string;
101
+ }
102
+ export interface DocstepAdvanceRuleRequest {
103
+ kind: "ruleRequest";
104
+ name: string;
105
+ }
106
+ export type DocstepAdvanceSpec = DocstepAdvanceTimer | DocstepAdvanceTransport | DocstepAdvanceRuleRequest;
107
+ export interface FluxRuntimeConfig {
108
+ eventsApply?: EventsApplyPolicy;
109
+ docstepAdvance?: DocstepAdvanceSpec[];
110
+ }
111
+ export type RuleMode = "docstep" | "event" | "timer";
112
+ export interface RuleScope {
113
+ grid?: string;
114
+ }
115
+ export type BinaryOp = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "+" | "-" | "*" | "/" | "and" | "or";
116
+ export type UnaryOp = "-" | "not";
117
+ export type FluxLiteralValue = number | string | boolean;
118
+ export interface LiteralExpr {
119
+ kind: "Literal";
120
+ value: FluxLiteralValue;
121
+ }
122
+ export interface IdentifierExpr {
123
+ kind: "Identifier";
124
+ name: string;
125
+ }
126
+ export interface MemberExpr {
127
+ kind: "MemberExpression";
128
+ object: FluxExpr;
129
+ property: string;
130
+ }
131
+ export interface CallExpr {
132
+ kind: "CallExpression";
133
+ callee: FluxExpr;
134
+ args: FluxExpr[];
135
+ }
136
+ export interface UnaryExpr {
137
+ kind: "UnaryExpression";
138
+ op: UnaryOp;
139
+ argument: FluxExpr;
140
+ }
141
+ export interface BinaryExpr {
142
+ kind: "BinaryExpression";
143
+ op: BinaryOp;
144
+ left: FluxExpr;
145
+ right: FluxExpr;
146
+ }
147
+ export interface NeighborsCallExpr {
148
+ kind: "NeighborsCallExpression";
149
+ namespace: "neighbors";
150
+ method: string;
151
+ args: FluxExpr[];
152
+ }
153
+ export type FluxExpr = LiteralExpr | IdentifierExpr | MemberExpr | CallExpr | UnaryExpr | BinaryExpr | NeighborsCallExpr;
154
+ export interface AssignmentStmt {
155
+ kind: "AssignmentStatement";
156
+ target: FluxExpr;
157
+ value: FluxExpr;
158
+ }
159
+ export interface LetStmt {
160
+ kind: "LetStatement";
161
+ name: string;
162
+ value: FluxExpr;
163
+ }
164
+ export interface AdvanceDocstepStmt {
165
+ kind: "AdvanceDocstepStatement";
166
+ }
167
+ export interface ExpressionStmt {
168
+ kind: "ExpressionStatement";
169
+ expr: FluxExpr;
170
+ }
171
+ export type FluxStmt = AssignmentStmt | LetStmt | AdvanceDocstepStmt | ExpressionStmt;
172
+ export interface RuleBranch {
173
+ condition: FluxExpr;
174
+ thenBranch: FluxStmt[];
175
+ }
176
+ export interface FluxRule {
177
+ name: string;
178
+ mode: RuleMode;
179
+ scope?: RuleScope;
180
+ onEventType?: string;
181
+ branches: RuleBranch[];
182
+ condition: FluxExpr;
183
+ thenBranch: FluxStmt[];
184
+ elseBranch?: FluxStmt[];
185
+ }
186
+ export interface FluxDocument {
187
+ meta: FluxMeta;
188
+ state: FluxState;
189
+ pageConfig?: PageConfig;
190
+ grids: FluxGrid[];
191
+ rules: FluxRule[];
192
+ runtime?: FluxRuntimeConfig;
193
+ }
194
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
package/dist/ast.js ADDED
@@ -0,0 +1,3 @@
1
+ // Flux AST definitions for v0.1.0
2
+ export {};
3
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAAA,kCAAkC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=flux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flux.d.ts","sourceRoot":"","sources":["../../src/bin/flux.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flux.js","sourceRoot":"","sources":["../../src/bin/flux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { FluxDocument } from "./ast.js";
2
+ /**
3
+ * Run basic static checks on a FluxDocument.
4
+ *
5
+ * This is used by the CLI and can also be consumed by editor integrations.
6
+ *
7
+ * @param file - A label for the source (path or "<buffer>").
8
+ * @param doc - Parsed FluxDocument AST.
9
+ * @returns An array of human-readable diagnostic strings.
10
+ */
11
+ export declare function checkDocument(file: string, doc: FluxDocument): string[];
12
+ //# sourceMappingURL=checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,UAAU,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CA6BvE"}
package/dist/checks.js ADDED
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Run basic static checks on a FluxDocument.
3
+ *
4
+ * This is used by the CLI and can also be consumed by editor integrations.
5
+ *
6
+ * @param file - A label for the source (path or "<buffer>").
7
+ * @param doc - Parsed FluxDocument AST.
8
+ * @returns An array of human-readable diagnostic strings.
9
+ */
10
+ export function checkDocument(file, doc) {
11
+ const errors = [];
12
+ const gridNames = new Set(doc.grids.map((g) => g.name));
13
+ for (const rule of doc.rules ?? []) {
14
+ // grid=foo scope must refer to an existing grid
15
+ if (rule.scope?.grid && !gridNames.has(rule.scope.grid)) {
16
+ errors.push(`${file}:0:0: Check error: Rule '${rule.name}' references unknown grid '${rule.scope.grid}'`);
17
+ }
18
+ // Expression-level checks (neighbors.* etc.)
19
+ checkRuleExpressions(file, rule, errors);
20
+ }
21
+ // Runtime timers sanity check
22
+ if (doc.runtime?.docstepAdvance) {
23
+ for (const spec of doc.runtime.docstepAdvance) {
24
+ if (spec.kind === "timer" && spec.amount <= 0) {
25
+ errors.push(`${file}:0:0: Check error: timer(...) amount must be positive (found ${spec.amount})`);
26
+ }
27
+ }
28
+ }
29
+ return errors;
30
+ }
31
+ function checkRuleExpressions(file, rule, errors) {
32
+ if (rule.condition) {
33
+ checkExpr(rule.condition, file, errors);
34
+ }
35
+ for (const stmt of rule.thenBranch ?? []) {
36
+ checkStmt(stmt, file, errors);
37
+ }
38
+ if (rule.elseBranch) {
39
+ for (const stmt of rule.elseBranch) {
40
+ checkStmt(stmt, file, errors);
41
+ }
42
+ }
43
+ // v0.1: some rules may have desugared branches (else-when chains)
44
+ const anyRule = rule;
45
+ if (Array.isArray(anyRule.branches)) {
46
+ for (const branch of anyRule.branches) {
47
+ checkExpr(branch.condition, file, errors);
48
+ for (const stmt of branch.thenBranch) {
49
+ checkStmt(stmt, file, errors);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ function checkExpr(expr, file, errors) {
55
+ switch (expr.kind) {
56
+ case "NeighborsCallExpression":
57
+ if (expr.method !== "all" && expr.method !== "orth") {
58
+ errors.push(`${file}:0:0: Check error: Unsupported neighbors method '${expr.method}'`);
59
+ }
60
+ for (const arg of expr.args) {
61
+ checkExpr(arg, file, errors);
62
+ }
63
+ break;
64
+ case "BinaryExpression":
65
+ checkExpr(expr.left, file, errors);
66
+ checkExpr(expr.right, file, errors);
67
+ break;
68
+ case "UnaryExpression":
69
+ checkExpr(expr.argument, file, errors);
70
+ break;
71
+ case "MemberExpression":
72
+ checkExpr(expr.object, file, errors);
73
+ break;
74
+ case "CallExpression":
75
+ checkExpr(expr.callee, file, errors);
76
+ for (const arg of expr.args) {
77
+ checkExpr(arg, file, errors);
78
+ }
79
+ break;
80
+ default:
81
+ // Literals, Identifiers, etc. are fine.
82
+ break;
83
+ }
84
+ }
85
+ function checkStmt(stmt, file, errors) {
86
+ switch (stmt.kind) {
87
+ case "AssignmentStatement":
88
+ checkExpr(stmt.value, file, errors);
89
+ break;
90
+ case "LetStatement":
91
+ checkExpr(stmt.value, file, errors);
92
+ break;
93
+ default:
94
+ // AdvanceDocstepStatement, ExpressionStatement, etc. — nothing to check yet.
95
+ break;
96
+ }
97
+ }
98
+ //# sourceMappingURL=checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runCheckCommand(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
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"}