@flux-lang/core 0.1.2 → 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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +46 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +363 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +2 -3
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,
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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"}
|
package/dist/runtime.js
ADDED
|
@@ -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.
|
|
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",
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"types": "dist/index.d.ts",
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|
|
16
|
-
"README.md"
|
|
17
|
-
"LICENSE"
|
|
16
|
+
"README.md"
|
|
18
17
|
],
|
|
19
18
|
"exports": {
|
|
20
19
|
".": {
|