@flux-lang/core 0.1.6 → 0.1.8

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/runtime.js CHANGED
@@ -1,412 +1,143 @@
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(),
1
+ import { initRuntimeState, runDocstepOnce, handleEvent } from "./runtime/kernel.js";
2
+ export function getDocstepIntervalHint(doc, state) {
3
+ const spec = (doc.runtime?.docstepAdvance ?? []).find((advance) => advance.kind === "timer");
4
+ if (!spec) {
5
+ return { ms: null, reason: "No timer-based docstepAdvance in runtime config." };
6
+ }
7
+ const multiplier = timerUnitToMs(spec.unit);
8
+ if (multiplier == null) {
9
+ return {
10
+ ms: null,
11
+ reason: `Timer unit '${spec.unit}' is not supported for interval hinting.`,
12
+ };
13
+ }
14
+ return {
15
+ ms: spec.amount * multiplier,
16
+ reason: `Derived from runtime.docstepAdvance timer(${spec.amount} ${spec.unit})`,
8
17
  };
9
- const clock = options.clock ?? "manual";
10
- const timerOverrideMs = options.timerOverrideMs ?? null;
11
- const onEvent = options.onEvent;
18
+ }
19
+ export function createRuntime(doc, options = {}) {
20
+ let state = initRuntimeState(doc);
21
+ let docstep = state.docstepIndex ?? 0;
22
+ const opts = { clock: "manual", ...options };
12
23
  let timer = null;
13
- const materialKeys = new Set((doc.materials?.materials ?? []).map((m) => m.name));
14
- function getSnapshot() {
15
- return buildSnapshot(state);
16
- }
17
- function emit(events) {
18
- if (!onEvent)
19
- return;
20
- for (const ev of events) {
21
- onEvent(ev);
22
- }
23
- }
24
- function stepDocstep() {
25
- const prevSnapshot = buildSnapshot(state);
26
- const patches = [];
27
- const rules = (state.doc.rules ?? []).filter((rule) => rule.mode === "docstep");
28
- for (const grid of state.grids.values()) {
29
- const gridRules = rules.filter((rule) => rule.scope?.grid === grid.name);
30
- if (gridRules.length === 0)
31
- continue;
32
- for (let row = 0; row < grid.rows; row++) {
33
- for (let col = 0; col < grid.cols; col++) {
34
- const idx = row * grid.cols + col;
35
- const cell = grid.cells[idx];
36
- if (!cell)
37
- continue;
38
- for (const rule of gridRules) {
39
- const ctx = {
40
- state,
41
- grid,
42
- cell,
43
- row,
44
- col,
45
- };
46
- const condition = evalExpr(rule.condition, ctx);
47
- if (condition) {
48
- const assignments = rule.thenBranch ?? [];
49
- for (const stmt of assignments) {
50
- if (stmt.kind !== "AssignmentStatement")
51
- continue;
52
- const target = resolveAssignmentTarget(stmt.target, ctx);
53
- if (!target)
54
- continue;
55
- const value = evalExpr(stmt.value, ctx);
56
- patches.push({
57
- gridName: grid.name,
58
- cellId: cell.id,
59
- property: target,
60
- value,
61
- });
62
- }
63
- }
64
- }
65
- }
66
- }
67
- }
68
- applyPatches(state, patches);
69
- state.docstep += 1;
70
- const snapshot = buildSnapshot(state);
71
- const events = [
72
- { kind: "docstep", docstep: snapshot.docstep, timestamp: Date.now() },
73
- ];
74
- const prevGridMap = new Map(prevSnapshot.grids.map((g) => [g.name, g]));
75
- for (const grid of snapshot.grids) {
76
- const prevGrid = prevGridMap.get(grid.name);
77
- for (const cell of grid.cells) {
78
- const prevCell = prevGrid?.cells[cell.row * grid.cols + cell.col];
79
- const prevContent = prevCell?.content ?? "";
80
- if (prevContent !== cell.content) {
81
- events.push({
82
- kind: "cellChanged",
83
- docstep: snapshot.docstep,
84
- grid: grid.name,
85
- cellId: cell.id,
86
- prevContent,
87
- nextContent: cell.content,
88
- dynamic: cell.dynamic,
89
- });
90
- if (materialKeys.has(cell.content)) {
91
- events.push({
92
- kind: "materialTrigger",
93
- docstep: snapshot.docstep,
94
- grid: grid.name,
95
- cellId: cell.id,
96
- materialKey: cell.content,
97
- dynamic: cell.dynamic,
98
- params: { ...snapshot.params },
99
- });
100
- }
101
- }
102
- }
103
- }
104
- emit(events);
105
- return { snapshot, events };
106
- }
107
- function start() {
108
- if (clock !== "internal")
24
+ const snapshot = () => buildSnapshot(doc, state, docstep);
25
+ const step = () => {
26
+ state = runDocstepOnce(doc, state);
27
+ docstep = state.docstepIndex;
28
+ const snap = snapshot();
29
+ return snap;
30
+ };
31
+ const reset = () => {
32
+ state = initRuntimeState(doc);
33
+ docstep = 0;
34
+ return snapshot();
35
+ };
36
+ const applyEvent = (event) => {
37
+ const kernelEvent = {
38
+ type: event.type,
39
+ location: event.location,
40
+ payload: event.payload,
41
+ };
42
+ state = handleEvent(doc, state, kernelEvent);
43
+ docstep = state.docstepIndex ?? docstep;
44
+ };
45
+ const start = () => {
46
+ if (opts.clock !== "timer")
109
47
  return;
110
48
  if (timer)
111
49
  return;
112
- const hint = getDocstepIntervalHint(doc);
113
- const interval = timerOverrideMs ?? hint?.millis ?? 1000;
50
+ const hint = getDocstepIntervalHint(doc, state);
51
+ const interval = opts.docstepIntervalMs ?? hint.ms ?? 1000;
114
52
  timer = setInterval(() => {
115
- stepDocstep();
53
+ const snap = step();
54
+ opts.onDocstep?.(snap);
116
55
  }, interval);
117
- }
118
- function stop() {
56
+ };
57
+ const stop = () => {
119
58
  if (!timer)
120
59
  return;
121
60
  clearInterval(timer);
122
61
  timer = null;
123
- }
124
- function isRunning() {
125
- return timer !== null;
126
- }
127
- function setParam(name, value) {
128
- state.params.set(name, value);
129
- }
62
+ };
130
63
  return {
131
- getSnapshot,
132
- stepDocstep,
64
+ get doc() {
65
+ return doc;
66
+ },
67
+ get state() {
68
+ return state;
69
+ },
70
+ get docstep() {
71
+ return docstep;
72
+ },
73
+ get options() {
74
+ return opts;
75
+ },
76
+ step,
77
+ reset,
78
+ applyEvent,
79
+ snapshot,
133
80
  start,
134
81
  stop,
135
- isRunning,
136
- setParam,
137
82
  };
138
83
  }
139
- function buildParams(doc) {
140
- const params = new Map();
141
- for (const param of doc.state.params ?? []) {
142
- if (typeof param.initial === "number") {
143
- params.set(param.name, param.initial);
144
- }
145
- }
146
- return params;
147
- }
148
- function buildGrids(doc) {
149
- const grids = new Map();
150
- for (const grid of doc.grids ?? []) {
151
- const rows = grid.size?.rows ?? 0;
152
- const cols = grid.size?.cols ?? 0;
84
+ function buildSnapshot(doc, state, docstep) {
85
+ const params = { ...state.params };
86
+ const grids = [];
87
+ for (const gridDef of doc.grids ?? []) {
88
+ const runtimeGrid = state.grids[gridDef.name];
89
+ const rows = runtimeGrid?.rows ?? gridDef.size?.rows;
90
+ const cols = runtimeGrid?.cols ?? gridDef.size?.cols;
91
+ const runtimeCells = runtimeGrid?.cells ?? [];
92
+ const cellCount = Math.max(runtimeCells.length, gridDef.cells.length);
153
93
  const cells = [];
154
- const cellIndex = new Map();
155
- let idx = 0;
156
- for (let r = 0; r < rows; r++) {
157
- for (let c = 0; c < cols; c++) {
158
- const cellDef = grid.cells[idx];
159
- const cellState = {
160
- id: cellDef?.id ?? `r${r}c${c}`,
161
- tags: [...(cellDef?.tags ?? [])],
162
- content: cellDef?.content ?? "",
163
- dynamic: typeof cellDef?.dynamic === "number" ? cellDef.dynamic : 0,
164
- };
165
- cells.push(cellState);
166
- cellIndex.set(cellState.id, idx);
167
- idx += 1;
168
- }
94
+ for (let idx = 0; idx < cellCount; idx++) {
95
+ const def = gridDef.cells[idx];
96
+ const cellState = runtimeCells[idx];
97
+ const id = cellState?.id ?? def?.id ?? `cell${idx}`;
98
+ const tags = cellState?.tags ?? def?.tags ?? [];
99
+ const content = cellState?.content ?? def?.content;
100
+ const mediaId = def?.mediaId;
101
+ const dynamic = cellState?.dynamic ?? def?.dynamic;
102
+ const density = def?.density;
103
+ const salience = def?.salience;
104
+ const numericFields = def?.numericFields;
105
+ cells.push({ id, tags, content, mediaId, dynamic, density, salience, numericFields });
169
106
  }
170
- grids.set(grid.name, { name: grid.name, rows, cols, cells, cellIndex });
171
- }
172
- return grids;
173
- }
174
- function makeRandom() {
175
- let s = Date.now() >>> 0;
176
- return function next() {
177
- s ^= s << 13;
178
- s ^= s >>> 17;
179
- s ^= s << 5;
180
- return (s >>> 0) / 0xffffffff;
181
- };
182
- }
183
- function evalExpr(expr, ctx) {
184
- switch (expr.kind) {
185
- case "Literal":
186
- return expr.value;
187
- case "Identifier":
188
- return evalIdentifier(expr.name, ctx);
189
- case "UnaryExpression":
190
- return evalUnary(expr.op, expr.argument, ctx);
191
- case "BinaryExpression":
192
- return evalBinary(expr.op, expr.left, expr.right, ctx);
193
- case "MemberExpression":
194
- return evalMember(expr.object, expr.property, ctx);
195
- case "CallExpression":
196
- return evalCall(expr, ctx);
197
- case "NeighborsCallExpression":
198
- return evalNeighborsCall(expr, ctx);
199
- default:
200
- return undefined;
201
- }
202
- }
203
- function evalIdentifier(name, ctx) {
204
- if (name === "cell")
205
- return ctx.cell;
206
- if (name === "neighbors")
207
- return neighborsNamespace;
208
- if (name === "random")
209
- return ctx.state.random;
210
- if (ctx.state.params.has(name))
211
- return ctx.state.params.get(name);
212
- return undefined;
213
- function neighborsNamespace(method) {
214
- if (method === "all" || method === "orth") {
215
- return evalNeighborsCall({ kind: "NeighborsCallExpression", namespace: "neighbors", method, args: [] }, ctx);
216
- }
217
- return [];
218
- }
219
- }
220
- function evalUnary(op, argument, ctx) {
221
- const value = evalExpr(argument, ctx);
222
- switch (op) {
223
- case "not":
224
- return !value;
225
- case "-":
226
- return -value;
227
- default:
228
- return undefined;
229
- }
230
- }
231
- function evalBinary(op, left, right, ctx) {
232
- switch (op) {
233
- case "and":
234
- return Boolean(evalExpr(left, ctx)) && Boolean(evalExpr(right, ctx));
235
- case "or":
236
- return Boolean(evalExpr(left, ctx)) || Boolean(evalExpr(right, ctx));
237
- case "==":
238
- return evalExpr(left, ctx) === evalExpr(right, ctx);
239
- case "!=":
240
- return evalExpr(left, ctx) !== evalExpr(right, ctx);
241
- case "<":
242
- return evalExpr(left, ctx) < evalExpr(right, ctx);
243
- case "<=":
244
- return evalExpr(left, ctx) <= evalExpr(right, ctx);
245
- case ">":
246
- return evalExpr(left, ctx) > evalExpr(right, ctx);
247
- case ">=":
248
- return evalExpr(left, ctx) >= evalExpr(right, ctx);
249
- case "+":
250
- return evalExpr(left, ctx) + evalExpr(right, ctx);
251
- case "-":
252
- return evalExpr(left, ctx) - evalExpr(right, ctx);
253
- case "*":
254
- return evalExpr(left, ctx) * evalExpr(right, ctx);
255
- case "/":
256
- return evalExpr(left, ctx) / evalExpr(right, ctx);
257
- default:
258
- return undefined;
259
- }
260
- }
261
- function evalMember(objectExpr, property, ctx) {
262
- if (objectExpr.kind === "NeighborsCallExpression") {
263
- const neighbors = evalNeighborsCall(objectExpr, ctx);
264
- if (property === "dynamic") {
265
- let max = 0;
266
- for (const cell of neighbors) {
267
- if (typeof cell.dynamic === "number" && cell.dynamic > max) {
268
- max = cell.dynamic;
269
- }
270
- }
271
- return max;
272
- }
273
- return undefined;
274
- }
275
- const obj = evalExpr(objectExpr, ctx);
276
- if (obj == null)
277
- return undefined;
278
- return obj[property];
279
- }
280
- function evalCall(expr, ctx) {
281
- if (expr.callee.kind === "Identifier" && expr.callee.name === "random") {
282
- return ctx.state.random();
283
- }
284
- if (expr.callee.kind === "Identifier" && expr.callee.name === "max") {
285
- const [a, b] = expr.args;
286
- return Math.max(Number(evalExpr(a, ctx)), Number(evalExpr(b, ctx)));
287
- }
288
- if (expr.callee.kind === "MemberExpression" &&
289
- expr.callee.property === "contains") {
290
- const target = evalExpr(expr.callee.object, ctx);
291
- const arg = expr.args[0] ? evalExpr(expr.args[0], ctx) : undefined;
292
- if (Array.isArray(target)) {
293
- return target.includes(arg);
294
- }
295
- }
296
- const callee = evalExpr(expr.callee, ctx);
297
- if (typeof callee === "function") {
298
- const args = expr.args.map((a) => evalExpr(a, ctx));
299
- return callee(...args);
300
- }
301
- return undefined;
302
- }
303
- function evalNeighborsCall(expr, ctx) {
304
- const offsets = expr.method === "orth" ? orthogonalOffsets : allOffsets;
305
- const neighbors = [];
306
- for (const [dr, dc] of offsets) {
307
- const rr = ctx.row + dr;
308
- const cc = ctx.col + dc;
309
- if (rr < 0 || rr >= ctx.grid.rows || cc < 0 || cc >= ctx.grid.cols)
310
- continue;
311
- const idx = rr * ctx.grid.cols + cc;
312
- const neighbor = ctx.grid.cells[idx];
313
- if (neighbor)
314
- neighbors.push(neighbor);
315
- }
316
- return neighbors;
317
- }
318
- const allOffsets = [
319
- [-1, -1],
320
- [-1, 0],
321
- [-1, 1],
322
- [0, -1],
323
- [0, 1],
324
- [1, -1],
325
- [1, 0],
326
- [1, 1],
327
- ];
328
- const orthogonalOffsets = [
329
- [-1, 0],
330
- [1, 0],
331
- [0, -1],
332
- [0, 1],
333
- ];
334
- function resolveAssignmentTarget(target, _ctx) {
335
- if (target.kind === "MemberExpression" && target.object.kind === "Identifier" && target.object.name === "cell") {
336
- if (target.property === "content" || target.property === "dynamic") {
337
- return target.property;
338
- }
339
- }
340
- return null;
341
- }
342
- function applyPatches(state, patches) {
343
- for (const patch of patches) {
344
- const grid = state.grids.get(patch.gridName);
345
- if (!grid)
346
- continue;
347
- const idx = grid.cellIndex.get(patch.cellId);
348
- if (idx === undefined)
349
- continue;
350
- const cell = grid.cells[idx];
351
- if (!cell)
352
- continue;
353
- cell[patch.property] = patch.value;
354
- }
355
- }
356
- function buildSnapshot(state) {
357
- const params = {};
358
- for (const [key, value] of state.params) {
359
- if (typeof value === "number") {
360
- params[key] = value;
361
- }
362
- }
363
- const grids = [];
364
- for (const grid of state.grids.values()) {
365
- const cells = grid.cells.map((cell, idx) => ({
366
- id: cell.id,
367
- row: Math.floor(idx / grid.cols),
368
- col: idx % grid.cols,
369
- tags: [...cell.tags],
370
- content: cell.content,
371
- dynamic: cell.dynamic,
372
- }));
373
107
  grids.push({
374
- name: grid.name,
375
- rows: grid.rows,
376
- cols: grid.cols,
108
+ name: gridDef.name,
109
+ topology: gridDef.topology,
110
+ rows,
111
+ cols,
377
112
  cells,
378
113
  });
379
114
  }
380
- return { docstep: state.docstep, params, grids };
381
- }
382
- export function getDocstepIntervalHint(doc) {
383
- const spec = doc.runtime?.docstepAdvance?.find((advance) => advance.kind === "timer");
384
- if (!spec)
385
- return null;
386
- const unit = normalizeUnit(spec.unit);
387
- if (!unit)
388
- return null;
389
- const multiplier = unit === "ms" ? 1 : unit === "s" ? 1000 : 60000;
390
- return { millis: spec.amount * multiplier, source: `timer(${spec.amount} ${spec.unit})` };
115
+ return { docstep, params, grids };
391
116
  }
392
- function normalizeUnit(unit) {
117
+ function timerUnitToMs(unit) {
393
118
  switch (unit) {
394
119
  case "ms":
395
120
  case "millisecond":
396
121
  case "milliseconds":
397
- return "ms";
122
+ return 1;
398
123
  case "s":
399
124
  case "sec":
400
125
  case "secs":
401
126
  case "second":
402
127
  case "seconds":
403
- return "s";
128
+ return 1000;
404
129
  case "m":
405
130
  case "min":
406
131
  case "mins":
407
132
  case "minute":
408
133
  case "minutes":
409
- return "m";
134
+ return 60_000;
135
+ case "h":
136
+ case "hr":
137
+ case "hrs":
138
+ case "hour":
139
+ case "hours":
140
+ return 3_600_000;
410
141
  default:
411
142
  return null;
412
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { FluxDocument } from "./ast.js";
2
+ export type SlotFitPolicy = "clip" | "ellipsis" | "shrink" | "scaleDown";
3
+ export type AddTransformKind = "title" | "page" | "section" | "paragraph" | "figure" | "callout" | "table" | "slot" | "inline-slot" | "bibliography-stub";
4
+ export interface AddTransformOptions {
5
+ kind: AddTransformKind;
6
+ text?: string;
7
+ heading?: string;
8
+ label?: string;
9
+ noHeading?: boolean;
10
+ bankName?: string;
11
+ tags?: string[];
12
+ caption?: string;
13
+ reserve?: string | {
14
+ width: number;
15
+ height?: number;
16
+ units?: string;
17
+ };
18
+ fit?: SlotFitPolicy | string;
19
+ }
20
+ export declare function applyAddTransform(source: string, doc: FluxDocument, options: AddTransformOptions): string;
21
+ export declare function formatFluxSource(source: string): string;
22
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,MAAM,GACN,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,aAAa,GACb,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC9B;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA4BzG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD"}