@flux-lang/core 0.1.1 → 0.1.3

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 ADDED
@@ -0,0 +1,117 @@
1
+ # @flux-lang/core
2
+
3
+ Core library for the **Flux** score language: AST types, parser, canonical IR, and the v0.1 runtime kernel.
4
+
5
+ Flux is a small, declarative language for **procedurally evolving music scores and parts**. The `@flux-lang/core` package is the reference implementation of:
6
+
7
+ - The **Flux v0.1 grammar**.
8
+ - The **FluxDocument IR** (canonical JSON representation).
9
+ - A minimal **runtime kernel** with `docstep` rules and `neighbors.*` semantics.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @flux-lang/core
17
+ # or
18
+ pnpm add @flux-lang/core
19
+ # or
20
+ yarn add @flux-lang/core
21
+ ````
22
+
23
+ ---
24
+
25
+ ## Basic usage
26
+
27
+ ### Parse source → IR
28
+
29
+ ```ts
30
+ import { parseDocument } from "@flux-lang/core";
31
+
32
+ const source = `
33
+ document {
34
+ meta {
35
+ version = "0.1.0";
36
+ title = "Example";
37
+ }
38
+
39
+ state {
40
+ param tempo : float [40, 72] @ 60;
41
+ }
42
+ }
43
+ `;
44
+
45
+ const doc = parseDocument(source);
46
+ // doc is a FluxDocument (Flux v0.1 IR)
47
+ ```
48
+
49
+ ### Runtime kernel: docstep + neighbors
50
+
51
+ ```ts
52
+ import {
53
+ parseDocument,
54
+ initRuntimeState,
55
+ runDocstepOnce,
56
+ } from "@flux-lang/core";
57
+
58
+ const doc = parseDocument(source);
59
+
60
+ // Build initial RuntimeState from the document
61
+ const state0 = initRuntimeState(doc);
62
+
63
+ // Advance one docstep (applies all mode=docstep rules)
64
+ const state1 = runDocstepOnce(doc, state0);
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Static checks
70
+
71
+ `@flux-lang/core` also exposes a small static checker used by the CLI and VS Code extension:
72
+
73
+ ```ts
74
+ import { parseDocument, checkDocument } from "@flux-lang/core";
75
+
76
+ const doc = parseDocument(source);
77
+ const errors = checkDocument("example.flux", doc);
78
+
79
+ if (errors.length > 0) {
80
+ for (const line of errors) {
81
+ console.error(line);
82
+ }
83
+ }
84
+ ```
85
+
86
+ Typical diagnostics include:
87
+
88
+ * Unknown grid references in `rule ... (grid = main)`.
89
+ * Unsupported `neighbors.*` methods.
90
+ * Obvious runtime timer issues (e.g. non-positive `timer(...)` amounts).
91
+
92
+ ---
93
+
94
+ ## Flux IR contract
95
+
96
+ The canonical IR is the `FluxDocument` type exported from `@flux-lang/core`. It is:
97
+
98
+ * Produced by `parseDocument(source)`.
99
+ * Safe to serialize as JSON and pass across process boundaries.
100
+ * Used by the CLI (`flux parse`) and editor tooling.
101
+
102
+ See the Flux IR spec in the main repo for the full shape and semantics:
103
+
104
+ * GitHub: `https://github.com/cbassuarez/flux` (IR docs live under `packages/core/docs/`)
105
+
106
+ ---
107
+
108
+ ## Related tooling
109
+
110
+ * **CLI:** `@flux-lang/cli` — `flux parse` / `flux check` built on top of this package.
111
+ * **VS Code:** `@flux-lang/vscode-flux` — syntax highlighting + diagnostics using `@flux-lang/core`.
112
+
113
+ ---
114
+
115
+ ## License
116
+
117
+ MIT – see the LICENSE file in the repo root.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./ast.js";
2
2
  export { parseDocument } from "./parser.js";
3
- export type { RuntimeState, GridRuntimeState, RuntimeCellState, NeighborRef, NeighborsNamespace, } from "./runtime/model.js";
3
+ export type { RuntimeState, GridRuntimeState, NeighborRef, NeighborsNamespace } from "./runtime/model.js";
4
4
  export { initRuntimeState, runDocstepOnce, handleEvent } from "./runtime/kernel.js";
5
+ export { createRuntime, type FluxRuntime, type RuntimeSnapshot, type RuntimeGridSnapshot, type RuntimeCellState, type RuntimeOptions, type CreateRuntimeOptions, type DocstepIntervalHint, getDocstepIntervalHint, } from "./runtime.js";
5
6
  export { checkDocument } from "./checks.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1G,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACH,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,sBAAsB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from "./ast.js";
6
6
  export { parseDocument } from "./parser.js";
7
7
  // Runtime kernel entry points
8
8
  export { initRuntimeState, runDocstepOnce, handleEvent } from "./runtime/kernel.js";
9
+ export { createRuntime, getDocstepIntervalHint, } from "./runtime.js";
9
10
  // Static checks
10
11
  export { checkDocument } from "./checks.js";
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qCAAqC;AAErC,iBAAiB;AACjB,cAAc,UAAU,CAAC;AAEzB,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAW5C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qCAAqC;AAErC,iBAAiB;AACjB,cAAc,UAAU,CAAC;AAEzB,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACH,aAAa,EAQb,sBAAsB,GACzB,MAAM,cAAc,CAAC;AAEtB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { FluxDocument } from "./ast.js";
2
+ export interface RuntimeCellState {
3
+ id: string;
4
+ tags: string[];
5
+ content: string;
6
+ dynamic: number;
7
+ }
8
+ export interface RuntimeGridSnapshot {
9
+ name: string;
10
+ rows: number;
11
+ cols: number;
12
+ cells: RuntimeCellState[];
13
+ }
14
+ export interface RuntimeSnapshot {
15
+ docstep: number;
16
+ params: Record<string, number>;
17
+ grids: RuntimeGridSnapshot[];
18
+ }
19
+ export interface RuntimeOptions {
20
+ seed?: number;
21
+ }
22
+ export interface FluxRuntime {
23
+ /** Return the original parsed IR (whatever parseDocument returns). */
24
+ getDocument(): FluxDocument;
25
+ /** Get the current docstep index (starting at 0). */
26
+ getDocstep(): number;
27
+ /** Get a deep-cloned snapshot of the current runtime state. */
28
+ getSnapshot(): RuntimeSnapshot;
29
+ /** Advance the document by one docstep, applying all docstep rules. */
30
+ stepDocstep(): RuntimeSnapshot;
31
+ /** Get current param values. */
32
+ getParams(): Record<string, number>;
33
+ /** Set one or more param values. Unknown names are ignored or rejected. */
34
+ setParams(values: Record<string, number>): void;
35
+ /** Convenience: set a single param. */
36
+ setParam(name: string, value: number): void;
37
+ }
38
+ export interface CreateRuntimeOptions extends RuntimeOptions {
39
+ }
40
+ export declare function createRuntime(doc: FluxDocument, options?: CreateRuntimeOptions): FluxRuntime;
41
+ export interface DocstepIntervalHint {
42
+ millis: number;
43
+ source?: string;
44
+ }
45
+ export declare function getDocstepIntervalHint(doc: FluxDocument): DocstepIntervalHint | null;
46
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,UAAU,CAAC;AAG5E,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,WAAW,IAAI,YAAY,CAAC;IAE5B,qDAAqD;IACrD,UAAU,IAAI,MAAM,CAAC;IAErB,+DAA+D;IAC/D,WAAW,IAAI,eAAe,CAAC;IAE/B,uEAAuE;IACvE,WAAW,IAAI,eAAe,CAAC;IAE/B,gCAAgC;IAChC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAEhD,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;CAAG;AAE/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,oBAAyB,GAAG,WAAW,CAmGhG;AAySD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,mBAAmB,GAAG,IAAI,CAWpF"}
@@ -0,0 +1,363 @@
1
+ export function createRuntime(doc, options = {}) {
2
+ const state = {
3
+ doc,
4
+ docstep: 0,
5
+ params: buildParams(doc),
6
+ grids: buildGrids(doc),
7
+ random: makeRandom(options.seed),
8
+ };
9
+ function getSnapshot() {
10
+ return buildSnapshot(state);
11
+ }
12
+ function setParam(name, value) {
13
+ if (!state.params.has(name))
14
+ return;
15
+ state.params.set(name, value);
16
+ }
17
+ function setParams(values) {
18
+ for (const [key, value] of Object.entries(values)) {
19
+ setParam(key, value);
20
+ }
21
+ }
22
+ function getParams() {
23
+ const result = {};
24
+ for (const [key, value] of state.params) {
25
+ result[key] = value;
26
+ }
27
+ return result;
28
+ }
29
+ function getDocstep() {
30
+ return state.docstep;
31
+ }
32
+ function getDocument() {
33
+ return state.doc;
34
+ }
35
+ function stepDocstep() {
36
+ const patches = [];
37
+ const rules = (state.doc.rules ?? []).filter((rule) => rule.mode === "docstep");
38
+ for (const grid of state.grids.values()) {
39
+ const gridRules = rules.filter((rule) => rule.scope?.grid === grid.name);
40
+ if (gridRules.length === 0)
41
+ continue;
42
+ for (let row = 0; row < grid.rows; row++) {
43
+ for (let col = 0; col < grid.cols; col++) {
44
+ const idx = row * grid.cols + col;
45
+ const cell = grid.cells[idx];
46
+ if (!cell)
47
+ continue;
48
+ for (const rule of gridRules) {
49
+ const ctx = {
50
+ state,
51
+ grid,
52
+ cell,
53
+ row,
54
+ col,
55
+ };
56
+ const condition = evalExpr(rule.condition, ctx);
57
+ if (condition) {
58
+ const assignments = rule.thenBranch ?? [];
59
+ for (const stmt of assignments) {
60
+ if (stmt.kind !== "AssignmentStatement")
61
+ continue;
62
+ const target = resolveAssignmentTarget(stmt.target, ctx);
63
+ if (!target)
64
+ continue;
65
+ const value = evalExpr(stmt.value, ctx);
66
+ patches.push({
67
+ gridName: grid.name,
68
+ cellId: cell.id,
69
+ property: target,
70
+ value,
71
+ });
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ applyPatches(state, patches);
79
+ state.docstep += 1;
80
+ return buildSnapshot(state);
81
+ }
82
+ return {
83
+ getDocument,
84
+ getDocstep,
85
+ getSnapshot,
86
+ stepDocstep,
87
+ getParams,
88
+ setParams,
89
+ setParam,
90
+ };
91
+ }
92
+ function buildParams(doc) {
93
+ const params = new Map();
94
+ for (const param of doc.state.params ?? []) {
95
+ if (typeof param.initial === "number") {
96
+ params.set(param.name, param.initial);
97
+ }
98
+ }
99
+ return params;
100
+ }
101
+ function buildGrids(doc) {
102
+ const grids = new Map();
103
+ for (const grid of doc.grids ?? []) {
104
+ const rows = grid.size?.rows ?? 0;
105
+ const cols = grid.size?.cols ?? 0;
106
+ const cells = [];
107
+ const cellIndex = new Map();
108
+ let idx = 0;
109
+ for (let r = 0; r < rows; r++) {
110
+ for (let c = 0; c < cols; c++) {
111
+ const cellDef = grid.cells[idx];
112
+ const cellState = {
113
+ id: cellDef?.id ?? `r${r}c${c}`,
114
+ tags: [...(cellDef?.tags ?? [])],
115
+ content: cellDef?.content ?? "",
116
+ dynamic: typeof cellDef?.dynamic === "number" ? cellDef.dynamic : 0,
117
+ };
118
+ cells.push(cellState);
119
+ cellIndex.set(cellState.id, idx);
120
+ idx += 1;
121
+ }
122
+ }
123
+ grids.set(grid.name, { name: grid.name, rows, cols, cells, cellIndex });
124
+ }
125
+ return grids;
126
+ }
127
+ function makeRandom(seed) {
128
+ let s = (seed ?? Date.now()) >>> 0;
129
+ return function next() {
130
+ s ^= s << 13;
131
+ s ^= s >>> 17;
132
+ s ^= s << 5;
133
+ return (s >>> 0) / 0xffffffff;
134
+ };
135
+ }
136
+ function evalExpr(expr, ctx) {
137
+ switch (expr.kind) {
138
+ case "Literal":
139
+ return expr.value;
140
+ case "Identifier":
141
+ return evalIdentifier(expr.name, ctx);
142
+ case "UnaryExpression":
143
+ return evalUnary(expr.op, expr.argument, ctx);
144
+ case "BinaryExpression":
145
+ return evalBinary(expr.op, expr.left, expr.right, ctx);
146
+ case "MemberExpression":
147
+ return evalMember(expr.object, expr.property, ctx);
148
+ case "CallExpression":
149
+ return evalCall(expr, ctx);
150
+ case "NeighborsCallExpression":
151
+ return evalNeighborsCall(expr, ctx);
152
+ default:
153
+ return undefined;
154
+ }
155
+ }
156
+ function evalIdentifier(name, ctx) {
157
+ if (name === "cell")
158
+ return ctx.cell;
159
+ if (name === "neighbors")
160
+ return neighborsNamespace;
161
+ if (name === "random")
162
+ return ctx.state.random;
163
+ if (ctx.state.params.has(name))
164
+ return ctx.state.params.get(name);
165
+ return undefined;
166
+ function neighborsNamespace(method) {
167
+ if (method === "all" || method === "orth") {
168
+ return evalNeighborsCall({ kind: "NeighborsCallExpression", namespace: "neighbors", method, args: [] }, ctx);
169
+ }
170
+ return [];
171
+ }
172
+ }
173
+ function evalUnary(op, argument, ctx) {
174
+ const value = evalExpr(argument, ctx);
175
+ switch (op) {
176
+ case "not":
177
+ return !value;
178
+ case "-":
179
+ return -value;
180
+ default:
181
+ return undefined;
182
+ }
183
+ }
184
+ function evalBinary(op, left, right, ctx) {
185
+ switch (op) {
186
+ case "and":
187
+ return Boolean(evalExpr(left, ctx)) && Boolean(evalExpr(right, ctx));
188
+ case "or":
189
+ return Boolean(evalExpr(left, ctx)) || Boolean(evalExpr(right, ctx));
190
+ case "==":
191
+ return evalExpr(left, ctx) === evalExpr(right, ctx);
192
+ case "!=":
193
+ return evalExpr(left, ctx) !== evalExpr(right, ctx);
194
+ case "<":
195
+ return evalExpr(left, ctx) < evalExpr(right, ctx);
196
+ case "<=":
197
+ return evalExpr(left, ctx) <= evalExpr(right, ctx);
198
+ case ">":
199
+ return evalExpr(left, ctx) > evalExpr(right, ctx);
200
+ case ">=":
201
+ return evalExpr(left, ctx) >= evalExpr(right, ctx);
202
+ case "+":
203
+ return evalExpr(left, ctx) + evalExpr(right, ctx);
204
+ case "-":
205
+ return evalExpr(left, ctx) - evalExpr(right, ctx);
206
+ case "*":
207
+ return evalExpr(left, ctx) * evalExpr(right, ctx);
208
+ case "/":
209
+ return evalExpr(left, ctx) / evalExpr(right, ctx);
210
+ default:
211
+ return undefined;
212
+ }
213
+ }
214
+ function evalMember(objectExpr, property, ctx) {
215
+ if (objectExpr.kind === "NeighborsCallExpression") {
216
+ const neighbors = evalNeighborsCall(objectExpr, ctx);
217
+ if (property === "dynamic") {
218
+ let max = 0;
219
+ for (const cell of neighbors) {
220
+ if (typeof cell.dynamic === "number" && cell.dynamic > max) {
221
+ max = cell.dynamic;
222
+ }
223
+ }
224
+ return max;
225
+ }
226
+ return undefined;
227
+ }
228
+ const obj = evalExpr(objectExpr, ctx);
229
+ if (obj == null)
230
+ return undefined;
231
+ return obj[property];
232
+ }
233
+ function evalCall(expr, ctx) {
234
+ if (expr.callee.kind === "Identifier" && expr.callee.name === "random") {
235
+ return ctx.state.random();
236
+ }
237
+ if (expr.callee.kind === "Identifier" && expr.callee.name === "max") {
238
+ const [a, b] = expr.args;
239
+ return Math.max(Number(evalExpr(a, ctx)), Number(evalExpr(b, ctx)));
240
+ }
241
+ if (expr.callee.kind === "MemberExpression" &&
242
+ expr.callee.property === "contains") {
243
+ const target = evalExpr(expr.callee.object, ctx);
244
+ const arg = expr.args[0] ? evalExpr(expr.args[0], ctx) : undefined;
245
+ if (Array.isArray(target)) {
246
+ return target.includes(arg);
247
+ }
248
+ }
249
+ const callee = evalExpr(expr.callee, ctx);
250
+ if (typeof callee === "function") {
251
+ const args = expr.args.map((a) => evalExpr(a, ctx));
252
+ return callee(...args);
253
+ }
254
+ return undefined;
255
+ }
256
+ function evalNeighborsCall(expr, ctx) {
257
+ const offsets = expr.method === "orth" ? orthogonalOffsets : allOffsets;
258
+ const neighbors = [];
259
+ for (const [dr, dc] of offsets) {
260
+ const rr = ctx.row + dr;
261
+ const cc = ctx.col + dc;
262
+ if (rr < 0 || rr >= ctx.grid.rows || cc < 0 || cc >= ctx.grid.cols)
263
+ continue;
264
+ const idx = rr * ctx.grid.cols + cc;
265
+ const neighbor = ctx.grid.cells[idx];
266
+ if (neighbor)
267
+ neighbors.push(neighbor);
268
+ }
269
+ return neighbors;
270
+ }
271
+ const allOffsets = [
272
+ [-1, -1],
273
+ [-1, 0],
274
+ [-1, 1],
275
+ [0, -1],
276
+ [0, 1],
277
+ [1, -1],
278
+ [1, 0],
279
+ [1, 1],
280
+ ];
281
+ const orthogonalOffsets = [
282
+ [-1, 0],
283
+ [1, 0],
284
+ [0, -1],
285
+ [0, 1],
286
+ ];
287
+ function resolveAssignmentTarget(target, _ctx) {
288
+ if (target.kind === "MemberExpression" && target.object.kind === "Identifier" && target.object.name === "cell") {
289
+ if (target.property === "content" || target.property === "dynamic") {
290
+ return target.property;
291
+ }
292
+ }
293
+ return null;
294
+ }
295
+ function applyPatches(state, patches) {
296
+ for (const patch of patches) {
297
+ const grid = state.grids.get(patch.gridName);
298
+ if (!grid)
299
+ continue;
300
+ const idx = grid.cellIndex.get(patch.cellId);
301
+ if (idx === undefined)
302
+ continue;
303
+ const cell = grid.cells[idx];
304
+ if (!cell)
305
+ continue;
306
+ cell[patch.property] = patch.value;
307
+ }
308
+ }
309
+ function buildSnapshot(state) {
310
+ const params = {};
311
+ for (const [key, value] of state.params) {
312
+ params[key] = value;
313
+ }
314
+ const grids = [];
315
+ for (const grid of state.grids.values()) {
316
+ const cells = grid.cells.map((cell) => ({
317
+ id: cell.id,
318
+ tags: [...cell.tags],
319
+ content: cell.content,
320
+ dynamic: cell.dynamic,
321
+ }));
322
+ grids.push({
323
+ name: grid.name,
324
+ rows: grid.rows,
325
+ cols: grid.cols,
326
+ cells,
327
+ });
328
+ }
329
+ return { docstep: state.docstep, params, grids };
330
+ }
331
+ export function getDocstepIntervalHint(doc) {
332
+ const spec = doc.runtime?.docstepAdvance?.find((advance) => advance.kind === "timer");
333
+ if (!spec)
334
+ return null;
335
+ const unit = normalizeUnit(spec.unit);
336
+ if (!unit)
337
+ return null;
338
+ const multiplier = unit === "ms" ? 1 : unit === "s" ? 1000 : 60000;
339
+ return { millis: spec.amount * multiplier, source: `timer(${spec.amount} ${spec.unit})` };
340
+ }
341
+ function normalizeUnit(unit) {
342
+ switch (unit) {
343
+ case "ms":
344
+ case "millisecond":
345
+ case "milliseconds":
346
+ return "ms";
347
+ case "s":
348
+ case "sec":
349
+ case "secs":
350
+ case "second":
351
+ case "seconds":
352
+ return "s";
353
+ case "m":
354
+ case "min":
355
+ case "mins":
356
+ case "minute":
357
+ case "minutes":
358
+ return "m";
359
+ default:
360
+ return null;
361
+ }
362
+ }
363
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flux-lang/core",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Core AST, parser, and evaluator for the Flux score language.",
5
5
  "license": "MIT",
6
6
  "author": "Sebastian Suarez-Solis",