@ecsia/core 0.1.0 → 0.4.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 (44) hide show
  1. package/README.md +20 -12
  2. package/dist/component/define.d.ts.map +1 -1
  3. package/dist/component/define.js +9 -2
  4. package/dist/component/define.js.map +1 -1
  5. package/dist/component/descriptors.d.ts +1 -1
  6. package/dist/component/descriptors.d.ts.map +1 -1
  7. package/dist/component/descriptors.js +6 -1
  8. package/dist/component/descriptors.js.map +1 -1
  9. package/dist/index.d.ts +5 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/query/compile.d.ts.map +1 -1
  14. package/dist/query/compile.js +12 -1
  15. package/dist/query/compile.js.map +1 -1
  16. package/dist/query/engine.js +1 -1
  17. package/dist/query/engine.js.map +1 -1
  18. package/dist/query/live-query.d.ts +62 -3
  19. package/dist/query/live-query.d.ts.map +1 -1
  20. package/dist/query/live-query.js +190 -2
  21. package/dist/query/live-query.js.map +1 -1
  22. package/dist/serialize-surface.d.ts +2 -0
  23. package/dist/serialize-surface.d.ts.map +1 -1
  24. package/dist/topics/codec.d.ts +23 -0
  25. package/dist/topics/codec.d.ts.map +1 -0
  26. package/dist/topics/codec.js +113 -0
  27. package/dist/topics/codec.js.map +1 -0
  28. package/dist/topics/define.d.ts +44 -0
  29. package/dist/topics/define.d.ts.map +1 -0
  30. package/dist/topics/define.js +61 -0
  31. package/dist/topics/define.js.map +1 -0
  32. package/dist/topics/index.d.ts +7 -0
  33. package/dist/topics/index.d.ts.map +1 -0
  34. package/dist/topics/index.js +4 -0
  35. package/dist/topics/index.js.map +1 -0
  36. package/dist/topics/store.d.ts +83 -0
  37. package/dist/topics/store.d.ts.map +1 -0
  38. package/dist/topics/store.js +416 -0
  39. package/dist/topics/store.js.map +1 -0
  40. package/dist/world.d.ts +17 -0
  41. package/dist/world.d.ts.map +1 -1
  42. package/dist/world.js +30 -2
  43. package/dist/world.js.map +1 -1
  44. package/package.json +2 -2
@@ -17,22 +17,38 @@ export class LiveQuery {
17
17
  current;
18
18
  #byId;
19
19
  #deps;
20
+ #queryFn;
20
21
  #bindings = new Map();
21
22
  #delta = null;
22
23
  #reactivity = null;
23
24
  #changedDeclared = false;
24
25
  #chunk = null;
25
26
  lastMatchTick = 0;
26
- constructor(compiled, terms, current, byId, deps) {
27
+ constructor(compiled, terms, current, byId, deps, queryFn = null) {
27
28
  this.compiled = compiled;
28
29
  this.terms = terms;
29
30
  this.current = current;
30
31
  this.#byId = byId;
31
32
  this.#deps = deps;
33
+ this.#queryFn = queryFn;
32
34
  }
33
35
  get count() {
34
36
  return this.current.size;
35
37
  }
38
+ /**
39
+ * Derive a narrower query: sugar over `world.query([...this.terms, ...terms])`, riding the same
40
+ * canonical-hash dedup — deriving is REFERENCE-identical to writing the combined query directly
41
+ * (the hash is order-independent AND duplicate-tolerant, so chaining order is irrelevant too).
42
+ * No new matching machinery; flavors (.added/.removed/.changed) are per cached query state, NOT
43
+ * inherited from this one. Re-deriving a term already present collapses in the hash — deriving
44
+ * write(P) from [read(P)] IS the cached query for [write(P)] (one shared LiveQuery; the
45
+ * read/write role split stays per value-signature binding).
46
+ */
47
+ derive(...terms) {
48
+ if (this.#queryFn === null)
49
+ throw new Error('LiveQuery.derive: not attached to a query engine');
50
+ return this.#queryFn([...this.terms, ...terms]);
51
+ }
36
52
  // --- flavor declaration ----------------------------------
37
53
  #ensureDelta() {
38
54
  if (this.#delta === null) {
@@ -264,6 +280,178 @@ export class LiveQuery {
264
280
  fn(chunk);
265
281
  }
266
282
  }
283
+ /**
284
+ * Pinned columns (the persistent-closure fast path). Where {@link eachChunk} re-resolves column
285
+ * views every call, `bindColumns` resolves each `[ComponentDef, fieldName]` spec ONCE per matched
286
+ * hot archetype and invokes `factory(views, meta)` to mint that archetype's runner — a persistent
287
+ * closure capturing the views as constants, which V8 context-specializes. The returned `run()`
288
+ * walks the bindings (matching `eachChunk` iteration order: cold archetypes never visited, empty
289
+ * ones skipped) with one cheap safety check per binding per call.
290
+ *
291
+ * The two load-bearing contract points:
292
+ * 1. The runner takes ZERO arguments (a `count` parameter measures 2× slower).
293
+ * 2. `meta` is identity-stable across rebinds; read `meta.count` (the archetype's live row count)
294
+ * inside the runner — population churn (spawn/despawn) never re-invokes the factory.
295
+ *
296
+ * ```ts
297
+ * const run = q.bindColumns(
298
+ * [Position, 'x'], [Velocity, 'dx'],
299
+ * ([px, dx], meta) => () => {
300
+ * const count = meta.count
301
+ * for (let i = 0; i < count; i++) px[i] += dx[i] * dt
302
+ * },
303
+ * )
304
+ * run() // per frame
305
+ * ```
306
+ *
307
+ * The factory is re-invoked ONLY when a bound column re-backs (growth replaced its view) or when
308
+ * the matched-archetype set changes (a new archetype matched, or a matched cold archetype was
309
+ * warm-promoted) — never on population change. V8 only context-specializes SINGLETON closures, so
310
+ * the first re-invocation after binding disables specialization for that binding permanently
311
+ * (~1.7 ns/entity vs ~1.0 steady-state on the canonical bench): pre-size to peak capacity (spawn
312
+ * or reserve rows BEFORE binding) so growth never lands in a hot phase — growth before the first
313
+ * bind is free.
314
+ *
315
+ * Vec fields hand their raw view through: row `r` occupies `[r*stride, (r+1)*stride)` where the
316
+ * stride is the declared vec arity (`vec3()` → 3) — a compile-time constant in the caller's loop.
317
+ * Rich fields (`'string'`/`object<T>`) carry no column and throw at bind time, as do row-filtered
318
+ * queries (a pinned runner cannot skip rows; `eachChunk` silently skips, but a silently-skipping
319
+ * pinned runner is a footgun) and specs naming a component the query does not REQUIRE (an
320
+ * optional or unreferenced component may be absent from a future matching archetype, which would
321
+ * only surface mid-run). Writes through pinned views are NOT recorded in the reactivity
322
+ * write log: a `.changed`/observer consumer will not see them — use `each` when reactivity must
323
+ * observe the write. Structural changes during `run()` follow the `eachChunk` discipline: collect,
324
+ * then mutate after the loop (despawn swap-removes rows under the runner's feet).
325
+ */
326
+ bindColumns(...args) {
327
+ const factory = args[args.length - 1];
328
+ const specs = args.slice(0, -1);
329
+ if (this.compiled.rowFilters.length !== 0) {
330
+ throw new Error('bindColumns: row-filtered queries are not supported (a pinned runner cannot skip rows); use each()');
331
+ }
332
+ // Specs must name REQUIRED components: an optional/unreferenced component may be absent from a
333
+ // FUTURE matching archetype, which would surface as a rebuild() throw mid-run. Required ids are
334
+ // recovered from the packed with-words (single-bit entries) + the non-negated residual terms.
335
+ const requiredIds = new Set();
336
+ for (const w of this.compiled.withWords) {
337
+ requiredIds.add(w.wordIndex * 32 + (31 - Math.clz32(w.mask)));
338
+ }
339
+ for (const r of this.compiled.residualWith) {
340
+ if (!r.negate)
341
+ requiredIds.add(r.componentId);
342
+ }
343
+ for (const [def] of specs) {
344
+ if (!requiredIds.has(def.id)) {
345
+ throw new Error(`bindColumns: '${def.name}' is not a required component of this query — a future matching archetype may lack it`);
346
+ }
347
+ }
348
+ // Per-spec column index within the component's ColumnSet (rich fields contribute no column, so
349
+ // the index counts only ctor-backed fields — same skip rule as the ColumnSet build order).
350
+ const colIndices = specs.map(([def, field]) => {
351
+ let idx = 0;
352
+ for (const f of def.fields) {
353
+ if (f.name === field) {
354
+ if (f.ctor === null) {
355
+ throw new Error(`bindColumns: '${def.name}.${field}' is a rich field ('string'/object<T>) and has no column`);
356
+ }
357
+ return idx;
358
+ }
359
+ if (f.ctor !== null)
360
+ idx += 1;
361
+ }
362
+ throw new Error(`bindColumns: component '${def.name}' has no column-backed field '${field}'`);
363
+ });
364
+ // Bindings are keyed by archetype id and PRESERVED across rebuilds: a rebuild only mints
365
+ // bindings for archetypes it has not seen, so an archetype-set change never re-invokes the
366
+ // factories of already-bound archetypes (re-invocation would disable their specialization).
367
+ const byArch = new Map();
368
+ let bindings = [];
369
+ // The matched cold archetypes at last rebuild: warm promotion flips `arch.cold` IN PLACE
370
+ // (same object, same matchingArchetypes slot), so neither the array length nor element identity
371
+ // signals it — the promoted archetype's own flag is the only observable.
372
+ let coldMatched = [];
373
+ let boundMatchCount = -1;
374
+ const reinvoke = (b) => {
375
+ b.views = b.cols.map((c) => c.view);
376
+ b.runner = factory(b.views, b.meta);
377
+ };
378
+ const makeBinding = (arch) => {
379
+ const cols = specs.map(([def, field], i) => {
380
+ const cs = arch.columnSets.get(def.id);
381
+ if (cs === undefined) {
382
+ throw new Error(`bindColumns: archetype lacks component '${def.name}' (not in this query?)`);
383
+ }
384
+ const col = cs.columns[colIndices[i]];
385
+ if (col === undefined)
386
+ throw new Error(`bindColumns: missing column for '${def.name}.${field}'`);
387
+ return col;
388
+ });
389
+ const views = cols.map((c) => c.view);
390
+ const meta = {
391
+ get count() {
392
+ return arch.count;
393
+ },
394
+ };
395
+ return { arch, cols, views, runner: factory(views, meta), meta };
396
+ };
397
+ // Builds into locals and commits at the end so a makeBinding throw (defensive backstop; the
398
+ // bind-time required-component check makes it unreachable for absent-component causes) never
399
+ // leaves bindings/coldMatched/boundMatchCount mutually inconsistent.
400
+ const rebuild = () => {
401
+ const archs = this.matchingArchetypes;
402
+ const nextBindings = [];
403
+ const nextColdMatched = [];
404
+ for (let ai = 0; ai < archs.length; ai++) {
405
+ const arch = archs[ai];
406
+ if (arch.cold) {
407
+ nextColdMatched.push(arch);
408
+ continue;
409
+ }
410
+ let b = byArch.get(arch.id);
411
+ if (b === undefined) {
412
+ b = makeBinding(arch);
413
+ byArch.set(arch.id, b);
414
+ }
415
+ nextBindings.push(b);
416
+ }
417
+ bindings = nextBindings;
418
+ coldMatched = nextColdMatched;
419
+ boundMatchCount = archs.length;
420
+ };
421
+ rebuild();
422
+ return () => {
423
+ // Archetype-set check: matchingArchetypes is append-only (lastMatchTick is never bumped), so
424
+ // a length change is the complete new-match signal; the cold flags cover warm promotion.
425
+ if (this.matchingArchetypes.length !== boundMatchCount) {
426
+ rebuild();
427
+ }
428
+ else {
429
+ for (let i = 0; i < coldMatched.length; i++) {
430
+ if (!coldMatched[i].cold) {
431
+ rebuild();
432
+ break;
433
+ }
434
+ }
435
+ }
436
+ const bs = bindings;
437
+ for (let bi = 0; bi < bs.length; bi++) {
438
+ const b = bs[bi];
439
+ // View-identity check: Column records are stable; only a fallback grow replaces `.view`
440
+ // (the resizable primary path auto-widens the SAME view, and the SAB #growGeneration never
441
+ // bumps on the serial grow-patch path — col.view identity is the one correct signal).
442
+ const cols = b.cols;
443
+ const views = b.views;
444
+ for (let i = 0; i < cols.length; i++) {
445
+ if (cols[i].view !== views[i]) {
446
+ reinvoke(b);
447
+ break;
448
+ }
449
+ }
450
+ if (b.arch.count !== 0)
451
+ b.runner();
452
+ }
453
+ };
454
+ }
267
455
  *[Symbol.iterator]() {
268
456
  // A simple eager collection of (archetype,row) snapshots would allocate; instead drive `each`
269
457
  // through a buffered generator that yields the SAME pooled element per archetype. Single active
@@ -472,7 +660,7 @@ _a = LiveQuery;
472
660
  * q.eachChunk((c) => {
473
661
  * const px = c.column(Position, 'x'), py = c.column(Position, 'y')
474
662
  * const dx = c.column(Velocity, 'dx'), dy = c.column(Velocity, 'dy')
475
- * for (let i = 0; i < c.count; i) { px[i] += dx[i] * dt; py[i] += dy[i] * dt }
663
+ * for (let i = 0; i < c.count; i++) { px[i] += dx[i] * dt; py[i] += dy[i] * dt }
476
664
  * })
477
665
  * ```
478
666
  *
@@ -1 +1 @@
1
- {"version":3,"file":"live-query.js","sourceRoot":"","sources":["../../src/query/live-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-query.js","sourceRoot":"","sources":["../../src/query/live-query.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,8 @@ export interface SerializeRichField {
46
46
  readonly fieldIndex: number;
47
47
  readonly name: string;
48
48
  readonly kind: 'string' | 'object';
49
+ /** false ⇒ the snapshot/delta writers skip this field (it re-defaults on load). */
50
+ readonly persist: boolean;
49
51
  }
50
52
  /** Component-registry metadata for the snapshot registry section. */
51
53
  export interface SerializeComponentMeta {
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-surface.d.ts","sourceRoot":"","sources":["../src/serialize-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize-surface.d.ts","sourceRoot":"","sources":["../src/serialize-surface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { FieldDescriptor } from '@ecsia/schema';
2
+ export interface TopicFieldCodec {
3
+ readonly name: string;
4
+ /** Words this field occupies in a row. */
5
+ readonly words: number;
6
+ /** Word offset of this field within the row's payload section. */
7
+ readonly offset: number;
8
+ readonly encode: (value: unknown, out: {
9
+ [i: number]: number;
10
+ }, at: number) => void;
11
+ readonly decode: (words: ArrayLike<number>, at: number) => unknown;
12
+ }
13
+ export interface TopicCodec {
14
+ /** Total payload words per event row (sum of field words; 0 for a payload-less topic). */
15
+ readonly fieldWords: number;
16
+ readonly fields: readonly TopicFieldCodec[];
17
+ /** Encode an init object into `out[at..at+fieldWords)`; missing fields take schema defaults. */
18
+ encode(init: Record<string, unknown> | undefined, out: {
19
+ [i: number]: number;
20
+ }, at: number): void;
21
+ }
22
+ export declare function buildTopicCodec(fields: readonly FieldDescriptor[]): TopicCodec;
23
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/topics/codec.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAUpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACnF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;CACnE;AAED,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;IAC3C,gGAAgG;IAChG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClG;AAkFD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,UAAU,CAoB9E"}
@@ -0,0 +1,113 @@
1
+ // Topic payload ↔ u32 field-word codec. An event encodes to fixed-width field words by the exact
2
+ // rules of the command-buffer field encoding (f64 two-word low/high, f32 stored as its bit-pattern,
3
+ // eid as the full handle word, vec as N consecutive slots, every sub-word integer widened to one
4
+ // word) so the worker-side OP_PUBLISH payload and the main-thread `publish()` staging produce
5
+ // byte-identical rows — the precondition for the byte-identical canonical stream.
6
+ // Shared scratch for f32-bit aliasing and the f64 two-word split (host-native byte order,
7
+ // consistent within a process; buffers are shared/transferred, never re-serialized).
8
+ const scratch = new ArrayBuffer(8);
9
+ const scratchF32 = new Float32Array(scratch);
10
+ const scratchF64 = new Float64Array(scratch);
11
+ const scratchU32 = new Uint32Array(scratch);
12
+ const scratchI32 = new Int32Array(scratch);
13
+ function scalarParts(token, d) {
14
+ if (token === 'f32') {
15
+ return {
16
+ words: 1,
17
+ encode: (v, out, at) => {
18
+ scratchF32[0] = +v;
19
+ out[at] = scratchU32[0];
20
+ },
21
+ decode: (w, at) => {
22
+ scratchU32[0] = w[at];
23
+ return scratchF32[0];
24
+ },
25
+ };
26
+ }
27
+ if (token === 'f64') {
28
+ return {
29
+ words: 2,
30
+ encode: (v, out, at) => {
31
+ scratchF64[0] = +v;
32
+ out[at] = scratchU32[0];
33
+ out[at + 1] = scratchU32[1];
34
+ },
35
+ decode: (w, at) => {
36
+ scratchU32[0] = w[at];
37
+ scratchU32[1] = w[at + 1];
38
+ return scratchF64[0];
39
+ },
40
+ };
41
+ }
42
+ // Integer / bool / eid / staticString: one word, round-tripped through the descriptor's own
43
+ // encode/decode so values read back exactly as a component column read would present them.
44
+ return {
45
+ words: 1,
46
+ encode: (v, out, at) => {
47
+ out[at] = d.encode(v) >>> 0;
48
+ },
49
+ decode: (w, at) => {
50
+ // i32-class slots round-trip through a signed reinterpret before the descriptor decode.
51
+ scratchU32[0] = w[at];
52
+ return d.decode(scratchI32[0]);
53
+ },
54
+ };
55
+ }
56
+ function fieldCodec(d, offset) {
57
+ const token = d.token;
58
+ if (typeof token === 'string') {
59
+ return { name: d.name, offset, ...scalarParts(token, d) };
60
+ }
61
+ const kind = token.kind;
62
+ if (kind === 'vec') {
63
+ const elem = token.elem;
64
+ const len = token.len;
65
+ const per = scalarParts(elem, d);
66
+ return {
67
+ name: d.name,
68
+ offset,
69
+ words: per.words * len,
70
+ encode: (v, out, at) => {
71
+ const arr = v;
72
+ for (let i = 0; i < len; i++)
73
+ per.encode(arr[i], out, at + i * per.words);
74
+ },
75
+ decode: (w, at) => {
76
+ const arr = [];
77
+ for (let i = 0; i < len; i++)
78
+ arr.push(per.decode(w, at + i * per.words));
79
+ return arr;
80
+ },
81
+ };
82
+ }
83
+ if (kind === 'staticString') {
84
+ // Any non-f32/non-f64 token takes scalarParts' descriptor fallback (one word via d.encode /
85
+ // d.decode — the choice-index mapping); 'u32' only signals "one unsigned word" to the reader.
86
+ return { name: d.name, offset, ...scalarParts('u32', d) };
87
+ }
88
+ // Unreachable for a def produced by defineTopic (object/'string' rejected there).
89
+ throw new Error(`topics: field '${d.name}' is not encodable in a topic ring`);
90
+ }
91
+ export function buildTopicCodec(fields) {
92
+ const codecs = [];
93
+ let offset = 0;
94
+ for (const d of fields) {
95
+ const c = fieldCodec(d, offset);
96
+ codecs.push(c);
97
+ offset += c.words;
98
+ }
99
+ const defaults = new Map();
100
+ for (const d of fields)
101
+ defaults.set(d.name, d.default);
102
+ return {
103
+ fieldWords: offset,
104
+ fields: codecs,
105
+ encode(init, out, at) {
106
+ for (const f of codecs) {
107
+ const value = init?.[f.name] ?? defaults.get(f.name);
108
+ f.encode(value, out, at + f.offset);
109
+ }
110
+ },
111
+ };
112
+ }
113
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/topics/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { ComponentId, FieldDescriptor, FieldToken, FieldValue, ScalarToken, ScalarValue, Schema, TokenOf, VecToken } from '@ecsia/schema';
2
+ /**
3
+ * A typed inter-system message queue ("this happened"), as opposed to an observer ("this component
4
+ * changed"). Define once at module scope with `defineTopic`; systems declare interest with the
5
+ * `publish:` / `consume:` keys on `defineSystem`, and code outside systems publishes between frames
6
+ * via `world.publish`. `id` is the topic's virtual ComponentId, minted when a world registers it.
7
+ */
8
+ export interface TopicDef<S extends Schema = Schema, N extends string = string> {
9
+ readonly name: N;
10
+ readonly schema: S;
11
+ readonly fields: readonly FieldDescriptor[];
12
+ /** The dense virtual ComponentId once registered with a world; -1 (UNREGISTERED) before. */
13
+ id: ComponentId;
14
+ readonly __ecsiaTopic: true;
15
+ }
16
+ /**
17
+ * The value an event field decodes to on the consume side. Scalars decode like component reads;
18
+ * `vec` fields decode to a plain readonly number array (events are copied rows, not live views).
19
+ */
20
+ export type TopicFieldValue<F extends FieldToken> = TokenOf<F> extends VecToken<infer E, number> ? readonly ScalarValue<E>[] : FieldValue<TokenOf<F>>;
21
+ /** One delivered event: a typed read view over the payload schema. Pooled — never store it. */
22
+ export type TopicEvent<S extends Schema> = {
23
+ readonly [K in keyof S]: TopicFieldValue<S[K]>;
24
+ };
25
+ /** The payload accepted by `publish` — missing fields take their schema defaults. */
26
+ export type TopicEventInit<S extends Schema> = {
27
+ readonly [K in keyof S]?: TokenOf<S[K]> extends VecToken<ScalarToken, number> ? ArrayLike<number> : FieldValue<TokenOf<S[K]>>;
28
+ };
29
+ /**
30
+ * Define a typed event queue. `schema` uses the component field tokens (`'f32'`, `'eid'`, `vec`,
31
+ * `staticString`, ...); `object<T>` and `'string'` fields are rejected — event rows are fixed-width
32
+ * u32 words so the stream is shareable, byte-deterministic, and serializable.
33
+ *
34
+ * `eid` payload fields carry the full generational handle with NO liveness validation on delivery:
35
+ * an event is a fact about the past, and the referenced entity may legitimately be dead by the time
36
+ * a consumer reads it (especially on next-frame delivery). Check `world.isAlive(ev.target)` if the
37
+ * consumer needs the entity.
38
+ *
39
+ * Like a `defineComponent` def, a topic def binds to ONE world: registration writes the minted id
40
+ * into the def, so a second world (another test, an HMR cycle) must call `defineTopic` afresh
41
+ * rather than reuse the module-scope def — reuse throws "already registered with another world".
42
+ */
43
+ export declare function defineTopic<const S extends Schema, const N extends string>(name: N, schema: S): TopicDef<S, N>;
44
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/topics/define.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,QAAQ,EACT,MAAM,eAAe,CAAA;AAGtB;;;;;GAKG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAC5E,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;IAC3C,4FAA4F;IAC5F,EAAE,EAAE,WAAW,CAAA;IACf,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAC9C,OAAO,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnG,+FAA+F;AAC/F,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IACzC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,qFAAqF;AACrF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI;IAC7C,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,GACzE,SAAS,CAAC,MAAM,CAAC,GACjB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAA;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAuC9G"}
@@ -0,0 +1,61 @@
1
+ // `defineTopic` — module-scope definition of a typed event queue, mirroring `defineComponent`:
2
+ // a pure descriptor with no world attached, interned (id minted) when a world first sees it.
3
+ // Topic payloads are schema'd rows: the same field-token set as components, MINUS the non-shareable
4
+ // tokens (`object<T>`, `'string'`) — an event row must be encodable to plain u32 words so it can
5
+ // live in the SAB-backed canonical ring and cross the worker boundary byte-deterministically.
6
+ import { resolveDescriptor, UNREGISTERED } from '../component/index.js';
7
+ const IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
8
+ function isFieldSpec(token) {
9
+ return typeof token === 'object' && token !== null && token.__fieldSpec === true;
10
+ }
11
+ /**
12
+ * Define a typed event queue. `schema` uses the component field tokens (`'f32'`, `'eid'`, `vec`,
13
+ * `staticString`, ...); `object<T>` and `'string'` fields are rejected — event rows are fixed-width
14
+ * u32 words so the stream is shareable, byte-deterministic, and serializable.
15
+ *
16
+ * `eid` payload fields carry the full generational handle with NO liveness validation on delivery:
17
+ * an event is a fact about the past, and the referenced entity may legitimately be dead by the time
18
+ * a consumer reads it (especially on next-frame delivery). Check `world.isAlive(ev.target)` if the
19
+ * consumer needs the entity.
20
+ *
21
+ * Like a `defineComponent` def, a topic def binds to ONE world: registration writes the minted id
22
+ * into the def, so a second world (another test, an HMR cycle) must call `defineTopic` afresh
23
+ * rather than reuse the module-scope def — reuse throws "already registered with another world".
24
+ */
25
+ export function defineTopic(name, schema) {
26
+ if (typeof name !== 'string' || name.length === 0) {
27
+ throw new Error('defineTopic: a non-empty topic name is required');
28
+ }
29
+ if (typeof schema !== 'object' || schema === null || Array.isArray(schema)) {
30
+ throw new Error(`defineTopic('${name}'): schema must be a plain object`);
31
+ }
32
+ const fields = [];
33
+ for (const fieldName of Object.keys(schema)) {
34
+ if (!IDENT.test(fieldName) || fieldName.startsWith('__')) {
35
+ throw new Error(`defineTopic('${name}'): invalid field name '${fieldName}' (reserved __ prefix or non-identifier)`);
36
+ }
37
+ const raw = schema[fieldName];
38
+ const token = isFieldSpec(raw) ? raw.token : raw;
39
+ if (typeof token === 'object' && token !== null && token.kind === 'object') {
40
+ throw new Error(`defineTopic('${name}'): field '${fieldName}' is an object<T> field — object fields cannot live in a topic ring or cross the worker boundary (v1)`);
41
+ }
42
+ if (token === 'string') {
43
+ throw new Error(`defineTopic('${name}'): field '${fieldName}' is a free-form 'string' field — rich fields are sidecar-backed and cannot live in a topic ring (v1); use staticString(...) for enumerated strings`);
44
+ }
45
+ const descriptor = isFieldSpec(raw)
46
+ ? resolveDescriptor(fieldName, raw.token, raw.default)
47
+ : resolveDescriptor(fieldName, raw);
48
+ fields.push(descriptor);
49
+ }
50
+ const def = {
51
+ name,
52
+ schema,
53
+ fields: Object.freeze(fields),
54
+ __ecsiaTopic: true,
55
+ };
56
+ // `id` is the registry's single commit point (mirrors ComponentRuntime): mutable so a world (or a
57
+ // worker aligning ids from the boot manifest) can intern the def after construction.
58
+ Object.defineProperty(def, 'id', { value: UNREGISTERED, enumerable: true, writable: true, configurable: true });
59
+ return Object.preventExtensions(def);
60
+ }
61
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/topics/define.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,6FAA6F;AAC7F,oGAAoG;AACpG,iGAAiG;AACjG,8FAA8F;AAa9F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAoCvE,MAAM,KAAK,GAAG,4BAA4B,CAAA;AAE1C,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAAmC,CAAC,WAAW,KAAK,IAAI,CAAA;AACjH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAiD,IAAO,EAAE,MAAS;IAC5F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,mCAAmC,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,MAAM,GAAsB,EAAE,CAAA;IACpC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,2BAA2B,SAAS,0CAA0C,CAAC,CAAA;QACrH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAe,CAAA;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClG,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,cAAc,SAAS,uGAAuG,CACnJ,CAAA;QACH,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,cAAc,SAAS,qJAAqJ,CACjM,CAAA;QACH,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;YACjC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;YACtD,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACrC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,GAAG,GAAG;QACV,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,YAAY,EAAE,IAAa;KACV,CAAA;IACnB,kGAAkG;IAClG,qFAAqF;IACrF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/G,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { defineTopic } from './define.js';
2
+ export type { TopicDef, TopicEvent, TopicEventInit, TopicFieldValue } from './define.js';
3
+ export { buildTopicCodec } from './codec.js';
4
+ export type { TopicCodec, TopicFieldCodec } from './codec.js';
5
+ export { Topics, TOPIC_HEADER_WORDS } from './store.js';
6
+ export type { TopicsConfig } from './store.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/topics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { defineTopic } from './define.js';
2
+ export { buildTopicCodec } from './codec.js';
3
+ export { Topics, TOPIC_HEADER_WORDS } from './store.js';
4
+ //# sourceMappingURL=index.js.map