@vworlds/vecs 1.0.25 → 1.0.27

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 (87) hide show
  1. package/README.md +29 -778
  2. package/dist/component.d.ts +1 -1
  3. package/dist/component.js +1 -1
  4. package/dist/component.js.map +1 -1
  5. package/dist/component_meta.d.ts +5 -1
  6. package/dist/component_meta.js +10 -0
  7. package/dist/component_meta.js.map +1 -1
  8. package/dist/dsl.d.ts +23 -2
  9. package/dist/dsl.js +21 -18
  10. package/dist/dsl.js.map +1 -1
  11. package/dist/entity/entity.base.d.ts +2 -18
  12. package/dist/entity/entity.base.js +2 -20
  13. package/dist/entity/entity.base.js.map +1 -1
  14. package/dist/entity/entity.components.d.ts +1 -0
  15. package/dist/entity/entity.components.js +50 -0
  16. package/dist/entity/entity.components.js.map +1 -1
  17. package/dist/entity/entity.d.ts +8 -0
  18. package/dist/entity/entity.js +21 -0
  19. package/dist/entity/entity.js.map +1 -1
  20. package/dist/entity/entity.lifecycle.d.ts +3 -3
  21. package/dist/entity/entity.lifecycle.js +6 -9
  22. package/dist/entity/entity.lifecycle.js.map +1 -1
  23. package/dist/entity/entity.relationships.d.ts +1 -1
  24. package/dist/entity/entity.relationships.js +3 -3
  25. package/dist/entity/entity.relationships.js.map +1 -1
  26. package/dist/filter.d.ts +1 -0
  27. package/dist/filter.js +3 -2
  28. package/dist/filter.js.map +1 -1
  29. package/dist/index.d.ts +4 -2
  30. package/dist/index.js +4 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/inject.d.ts +3 -2
  33. package/dist/inject.js.map +1 -1
  34. package/dist/modules/implements.d.ts +14 -0
  35. package/dist/modules/implements.js +98 -0
  36. package/dist/modules/implements.js.map +1 -0
  37. package/dist/modules/relationships.d.ts +1 -1
  38. package/dist/modules/relationships.js +2 -2
  39. package/dist/package.json +1 -4
  40. package/dist/query/callbacks.d.ts +6 -2
  41. package/dist/query/callbacks.js +5 -2
  42. package/dist/query/callbacks.js.map +1 -1
  43. package/dist/query/grouped_query.js +1 -1
  44. package/dist/query/query.d.ts +14 -1
  45. package/dist/query/query.js +26 -15
  46. package/dist/query/query.js.map +1 -1
  47. package/dist/system.d.ts +5 -4
  48. package/dist/system.js +17 -6
  49. package/dist/system.js.map +1 -1
  50. package/dist/terms/build.js +7 -5
  51. package/dist/terms/build.js.map +1 -1
  52. package/dist/util/array_map.d.ts +70 -12
  53. package/dist/util/array_map.js +113 -26
  54. package/dist/util/array_map.js.map +1 -1
  55. package/dist/util/bitset.js +0 -17
  56. package/dist/util/bitset.js.map +1 -1
  57. package/dist/util/events.d.ts +42 -12
  58. package/dist/util/events.js +94 -43
  59. package/dist/util/events.js.map +1 -1
  60. package/dist/util/ordered_set.js +43 -19
  61. package/dist/util/ordered_set.js.map +1 -1
  62. package/dist/world/world.deferred.js +2 -0
  63. package/dist/world/world.deferred.js.map +1 -1
  64. package/dist/world/world.entities.d.ts +8 -1
  65. package/dist/world/world.entities.js +25 -6
  66. package/dist/world/world.entities.js.map +1 -1
  67. package/dist/world/world.js +8 -1
  68. package/dist/world/world.js.map +1 -1
  69. package/dist/world/world.queries.js +6 -1
  70. package/dist/world/world.queries.js.map +1 -1
  71. package/dist/world/world.storage.d.ts +2 -2
  72. package/dist/world/world.storage.js +6 -3
  73. package/dist/world/world.storage.js.map +1 -1
  74. package/docs/README.md +50 -0
  75. package/docs/components.md +267 -0
  76. package/docs/concepts.md +86 -0
  77. package/docs/design-guide.md +506 -0
  78. package/docs/entities.md +177 -0
  79. package/docs/execution-model.md +173 -0
  80. package/docs/getting-started.md +215 -0
  81. package/docs/glossary.md +113 -0
  82. package/docs/modules.md +108 -0
  83. package/docs/queries-and-filters.md +187 -0
  84. package/docs/relationships.md +149 -0
  85. package/docs/systems.md +311 -0
  86. package/docs/utilities.md +139 -0
  87. package/package.json +1 -4
@@ -157,7 +157,9 @@ export class Query {
157
157
  orderBy(arg0, arg1, arg2) {
158
158
  this._assertConfigurable();
159
159
  this._tracking = true;
160
- this._entities = makeSortedEntitySet(this.world, arg0, arg1, arg2);
160
+ const { set, watchEids } = makeSortedEntitySet(this.world, arg0, arg1, arg2);
161
+ this._entities = set;
162
+ this._watchOrderBy(watchEids);
161
163
  return this;
162
164
  }
163
165
  cascade(rel, compare) {
@@ -177,9 +179,7 @@ export class Query {
177
179
  const db = depths.get(b) ?? -1;
178
180
  return da - db || compare?.(a, b) || 0;
179
181
  });
180
- this.update(relMeta.Class, (entity) => {
181
- this._reSortCascade(entity, relMeta.eid);
182
- });
182
+ this._watchOrderBy([relMeta.eid]);
183
183
  return this;
184
184
  }
185
185
  groupBy(arg0, arg1) {
@@ -211,12 +211,13 @@ export class Query {
211
211
  update(arg0, arg1, arg2, arg3) {
212
212
  this._assertConfigurable();
213
213
  const { componentEid, callback } = makeUpdateRegistration(this.world, arg0, arg1, arg2, arg3);
214
+ if (this._componentUpdateCallbacks.has(componentEid)) {
215
+ const componentName = this.world.entity(componentEid).meta.Class.name;
216
+ throw new Error(`query '${this.name}' already has an update callback for component ${componentName}`);
217
+ }
214
218
  this._componentUpdateCallbacks.set(componentEid, callback);
215
219
  this._watchlistBitmask.add(componentEid);
216
- if (!this._hasExplicitQuery) {
217
- this._dsl = this._watchlistBitmask.indices();
218
- }
219
- return this;
220
+ return this.with(componentEid);
220
221
  }
221
222
  /* -------------------------------------------------------------------------
222
223
  * World Registration And Routing Hooks
@@ -299,6 +300,9 @@ export class Query {
299
300
  if (!this._watchlistBitmask.has(ceid)) {
300
301
  return;
301
302
  }
303
+ if (this._orderByWatch?.has(ceid) && this._entities instanceof OrderedSet) {
304
+ this._entities.markDirty();
305
+ }
302
306
  if (this._isSourceSilenced()) {
303
307
  return;
304
308
  }
@@ -324,7 +328,7 @@ export class Query {
324
328
  }
325
329
  /** @internal */
326
330
  _watchesUpdates() {
327
- return this._componentUpdateCallbacks.size > 0;
331
+ return this._componentUpdateCallbacks.size > 0 || (this._orderByWatch?.size ?? 0) > 0;
328
332
  }
329
333
  /** @internal Throw when a builder method is called after registration. */
330
334
  _assertConfigurable() {
@@ -371,13 +375,20 @@ export class Query {
371
375
  q.entity.childOf(this.entity);
372
376
  return q;
373
377
  }
374
- _reSortCascade(entity, relEid) {
375
- const entities = this._entities;
376
- if (entities instanceof OrderedSet) {
377
- entities.reSort(entity);
378
+ /**
379
+ * @internal Register `eids` as `orderBy`-relevant: a change to any of them
380
+ * on a tracked entity marks `_entities` (an `OrderedSet`) dirty so the next
381
+ * ordered read re-sorts. Also adds them to `_watchlistBitmask` so
382
+ * `_notifyModified` is reachable for them.
383
+ */
384
+ _watchOrderBy(eids) {
385
+ if (eids.length === 0) {
386
+ return;
378
387
  }
379
- for (const child of entity._childrenByEid(relEid) ?? []) {
380
- this._reSortCascade(child, relEid);
388
+ this._orderByWatch ?? (this._orderByWatch = new Set());
389
+ for (const eid of eids) {
390
+ this._orderByWatch.add(eid);
391
+ this._watchlistBitmask.add(eid);
381
392
  }
382
393
  }
383
394
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":"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"}
package/dist/system.d.ts CHANGED
@@ -130,8 +130,9 @@ export declare class System<R extends ComponentType[] = []> extends Query<R> imp
130
130
  * Register a callback fired **every tick** for **every tracked entity**,
131
131
  * unconditionally, with the listed components resolved from each entity.
132
132
  *
133
- * Unlike {@link update} (which only fires when `entity.modified(C)` is
134
- * called), `each` fires every tick the system runs, once per tracked entity.
133
+ * Unlike {@link update} (which fires when a watched component's data is set
134
+ * or marked modified), `each` fires every tick the system runs, once per
135
+ * tracked entity.
135
136
  * Components declared via {@link with} are non-nullable in the resolved
136
137
  * tuple; any other component class may be `undefined` if the entity lacks it.
137
138
  *
@@ -180,8 +181,8 @@ export declare class System<R extends ComponentType[] = []> extends Query<R> imp
180
181
  /**
181
182
  * Add entity-membership predicates using {@link QuerySpec} expressions.
182
183
  *
183
- * Merges with any existing predicate using `all`. After calling `with`,
184
- * watchlist auto-expansion via `update` is disabled.
184
+ * Merges with any existing predicate using `all`. `update` callbacks also
185
+ * add their watched component to the predicate.
185
186
  *
186
187
  * `hint` fields are pure type-level hints — see {@link Query.with} for details.
187
188
  *
package/dist/system.js CHANGED
@@ -3,7 +3,9 @@ import { SOURCE_TRACKED_QUERY_ERROR, Query } from "./query/index.js";
3
3
  import { containsDownTerm, } from "./dsl.js";
4
4
  import { ON_UPDATE, Phase } from "./modules/pipeline.js";
5
5
  import { DependsOn } from "./modules/relationships.js";
6
+ import { OrderedSet } from "./util/ordered_set.js";
6
7
  import { ALWAYS_TICK_SOURCE, IntervalTickSource, RateTickSource, } from "./timer.js";
8
+ import { ArrayMap } from "./util/array_map.js";
7
9
  /**
8
10
  * A reactive processor running over a filtered subset of world entities.
9
11
  *
@@ -85,6 +87,9 @@ export class System extends Query {
85
87
  if (!this._watchlistBitmask.has(ceid)) {
86
88
  return;
87
89
  }
90
+ if (this._componentUpdateCallbacks.get(ceid) === undefined) {
91
+ return;
92
+ }
88
93
  // Entry-time initialization bypasses the silence filter: an entity
89
94
  // introduced by an ignored source must still initialize in this system.
90
95
  this._pushUpdate(e, ceid, c);
@@ -104,17 +109,17 @@ export class System extends Query {
104
109
  return;
105
110
  }
106
111
  if (this._exitCallback !== undefined) {
107
- let snapshot;
112
+ let exitSnapshot;
108
113
  if (this._exitSnapshotTypes && this._exitSnapshotTypes.length > 0) {
109
- snapshot = new Map();
114
+ exitSnapshot = new ArrayMap();
110
115
  for (const ceid of this._exitSnapshotTypes) {
111
116
  const c = e._get(ceid);
112
117
  if (c) {
113
- snapshot.set(ceid, c);
118
+ exitSnapshot.set(ceid, c);
114
119
  }
115
120
  }
116
121
  }
117
- this._inbox.push({ kind: 1 /* InboxCommand.Exit */, entity: e, snapshot });
122
+ this._inbox.push({ kind: 1 /* InboxCommand.Exit */, entity: e, snapshot: exitSnapshot });
118
123
  }
119
124
  }
120
125
  /**
@@ -125,6 +130,9 @@ export class System extends Query {
125
130
  if (!this._watchlistBitmask.has(ceid)) {
126
131
  return;
127
132
  }
133
+ if (this._orderByWatch?.has(ceid) && this._entities instanceof OrderedSet) {
134
+ this._entities.markDirty();
135
+ }
128
136
  if (!this._enabled) {
129
137
  return;
130
138
  }
@@ -132,6 +140,9 @@ export class System extends Query {
132
140
  return;
133
141
  }
134
142
  this.changed = true;
143
+ if (this._componentUpdateCallbacks.get(ceid) === undefined) {
144
+ return;
145
+ }
135
146
  this._pushUpdate(e, ceid, c);
136
147
  }
137
148
  /** @internal Append an `update` event to the inbox, bypassing the silence filter. */
@@ -307,8 +318,8 @@ export class System extends Query {
307
318
  /**
308
319
  * Add entity-membership predicates using {@link QuerySpec} expressions.
309
320
  *
310
- * Merges with any existing predicate using `all`. After calling `with`,
311
- * watchlist auto-expansion via `update` is disabled.
321
+ * Merges with any existing predicate using `all`. `update` callbacks also
322
+ * add their watched component to the predicate.
312
323
  *
313
324
  * `hint` fields are pure type-level hints — see {@link Query.with} for details.
314
325
  *
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
@@ -142,8 +142,9 @@ function _dispatch(world, dsl, key) {
142
142
  if ("test" in dsl) {
143
143
  return PredicateTerm.buildPredicate(world, dsl, key, getTerm, onDestroy);
144
144
  }
145
- if ("target" in dsl) {
146
- return TargetTerm.build(world, dsl.target[0], dsl.target[1], key, getTerm, onDestroy);
145
+ if ("target" in dsl && Array.isArray(dsl.target)) {
146
+ const d = dsl;
147
+ return TargetTerm.build(world, d.target[0], d.target[1], key, getTerm, onDestroy);
147
148
  }
148
149
  throw new Error("Unrecognized query term");
149
150
  }
@@ -286,8 +287,9 @@ function _analyzeDSL(dsl) {
286
287
  })),
287
288
  ]);
288
289
  }
289
- if ("target" in dsl) {
290
- const relEid = dsl.target[0];
290
+ if ("target" in dsl && Array.isArray(dsl.target)) {
291
+ const d = dsl;
292
+ const relEid = d.target[0];
291
293
  return _mergeAnalyses([
292
294
  {
293
295
  leafKeys: new Set([`C:${relEid}`]),
@@ -296,7 +298,7 @@ function _analyzeDSL(dsl) {
296
298
  containsOnly: false,
297
299
  containsTarget: true,
298
300
  },
299
- { ..._analyzeDSL(dsl.target[1]), containsTarget: true },
301
+ { ..._analyzeDSL(d.target[1]), containsTarget: true },
300
302
  ]);
301
303
  }
302
304
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/terms/build.ts"],"names":[],"mappings":"AAyCA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAGjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,GAAa;IACjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,GAAa;IACvD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAY,EAAE,YAAiB,EAAE,MAAc;IAClF,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,KAAK,CAAC,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAY,EAAE,YAAiB,EAAE,MAAc;IACpF,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAY,EAAE,YAAiB,EAAE,MAAc;IACpF,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClE,KAAK,CAAC,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,MAAc;IAC9D,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAY,EAAE,MAAc;IAChE,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,KAAY,EAAE,GAAa,EAAE,GAAW;IACzD,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,CAClB,KAAK,EACL,GAAG,EACH,GAAG,EACH,GAAwB,EACxB,OAAO,EACP,eAAe,EACf,SAAS,CACV,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,cAAc,CACjC,KAAK,EACL,GAAgD,EAChD,GAAG,EACH,OAAO,EACP,SAAS,CACV,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAY,EAAE,IAAS,EAAE,GAAW;IAC5D,IAAI,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uEAAuE;AACvE,SAAS,YAAY,CAAC,KAAY,EAAE,GAAW;IAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAED,uEAAuE;AACvE,SAAS,YAAY,CAAC,KAAY,EAAE,GAAW;IAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAY,EAAE,IAAU;IAC3C,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAqBD;;;;;;;;;;;;;GAaG;AACH,SAAS,WAAW,CAAC,GAAa;IAChC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO;YACL,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAC/B,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7B,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC;YACpB;gBACE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;aACtB;YACD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,aAAa,GAAI,UAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAgB;YAC/C,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9B,cAAc,EAAE,KAAgB;YAChC,YAAY,EAAE,KAAgB;YAC9B,cAAc,EAAE,KAAgB;SACjC,CAAC,CAAC,CAAC;QACJ,OAAO,cAAc,CAAC;YACpB,GAAG,aAAa;YAChB;gBACE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK;aACtB;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,cAAc,CAAC;YACpB;gBACE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;aACtB;YACD,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtB,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAgB;gBAC/C,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9B,cAAc,EAAE,KAAgB;gBAChC,YAAY,EAAE,KAAgB;gBAC9B,cAAc,EAAE,KAAgB;aACjC,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;QACpC,OAAO,cAAc,CAAC;YACpB;gBACE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAgB;gBACjD,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBAChC,cAAc,EAAE,KAAK;gBACrB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;aACrB;YACD,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;SACxD,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAuB;IAC7C,MAAM,MAAM,GAAgB;QAC1B,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;KACtB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,cAAc,KAArB,MAAM,CAAC,cAAc,GAAK,CAAC,CAAC,cAAc,EAAC;QAC3C,MAAM,CAAC,YAAY,KAAnB,MAAM,CAAC,YAAY,GAAK,CAAC,CAAC,YAAY,EAAC;QACvC,MAAM,CAAC,cAAc,KAArB,MAAM,CAAC,cAAc,GAAK,CAAC,CAAC,cAAc,EAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,QAAuB;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,eAAe,CAAC,KAA0B;IAKjD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,cAAc;QACd,IAAI,EAAE;YACJ,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/terms/build.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  /**
2
- * A `Map<number, T>` substitute backed by a sparse JavaScript array.
2
+ * A cheap `Map<number, T>` substitute backed directly by a sparse JavaScript array.
3
3
  *
4
- * For small, dense, non-negative integer key spaces, indexing into a regular
5
- * array is faster than the hash-table lookups performed by the built-in
6
- * `Map`. `ArrayMap` is used inside the ECS to store per-entity component
7
- * instances and per-type metadata.
4
+ * Use this when callers only need random access (`get`, `set`, `has`, `delete`)
5
+ * by non-negative integer keys. Lookups are a single array read and memory usage
6
+ * is one sparse backing array, so it is cheaper than {@link IterableArrayMap}.
8
7
  *
9
- * Empty slots are represented as `undefined` and do not count toward
10
- * {@link size}.
8
+ * This does not support iteration. Sparse holes are skipped only implicitly by
9
+ * `get`/`has`, and high key values can create a large sparse backing array.
11
10
  *
12
11
  * @typeParam T - Value type stored in the map.
13
12
  */
@@ -41,21 +40,80 @@ export declare class ArrayMap<T> {
41
40
  * @param key - Non-negative integer key.
42
41
  */
43
42
  delete(key: number): void;
43
+ /** Remove all entries and reset {@link size} to zero. */
44
+ clear(): void;
45
+ }
46
+ /**
47
+ * An iterable `Map<number, T>` substitute backed by dense entries plus sparse indexes.
48
+ *
49
+ * Use this when callers need fast `forEach` or `values` over present entries.
50
+ * Random access resolves `key -> dense index` through {@link ArrayMap}, then
51
+ * indexes into `_items`; iteration walks the dense `_items` array directly.
52
+ *
53
+ * Deletes keep `_items` dense by moving the last value into the removed slot
54
+ * and updating the moved value's stored index.
55
+ *
56
+ * Compared with {@link ArrayMap}, this costs extra memory for tuple storage and
57
+ * an index map, and `delete`/new `set` do more bookkeeping. In return, iteration
58
+ * is dense and does not scan sparse holes.
59
+ *
60
+ * @typeParam T - Value type stored in the map.
61
+ */
62
+ export declare class IterableArrayMap<T> {
63
+ private readonly _indices;
64
+ private readonly _items;
65
+ /** The number of entries currently in the map. */
66
+ get size(): number;
67
+ /**
68
+ * Insert or replace the value at `key`.
69
+ *
70
+ * @param key - Non-negative integer key.
71
+ * @param value - Value to store.
72
+ */
73
+ set(key: number, value: T): void;
74
+ /**
75
+ * Retrieve the value stored at `key`, or `undefined` if no entry exists.
76
+ *
77
+ * @param key - Non-negative integer key.
78
+ */
79
+ get(key: number): T | undefined;
80
+ /**
81
+ * Return `true` when an entry exists at `key`.
82
+ *
83
+ * @param key - Non-negative integer key.
84
+ */
85
+ has(key: number): boolean;
86
+ /**
87
+ * Remove the entry at `key`. Does nothing if no entry exists there.
88
+ *
89
+ * @param key - Non-negative integer key.
90
+ */
91
+ delete(key: number): void;
44
92
  /**
45
- * Visit every present entry in ascending key order. Empty slots are skipped.
93
+ * Visit every present entry in dense item order.
46
94
  *
47
95
  * @param callback - Invoked with `(value, key, map)` for each entry.
48
96
  */
49
- forEach(callback: (value: T, key: number, map: ArrayMap<T>) => void): void;
50
- /** Return every present value in ascending key order. */
97
+ forEach(callback: (value: T, key: number, map: IterableArrayMap<T>) => void): void;
98
+ /**
99
+ * Return an iterator over `[key, value]` entries in dense item order.
100
+ *
101
+ * Entries are backed by the map's internal storage for speed. Treat them as
102
+ * immutable; mutating them through casts or plain JavaScript can corrupt the
103
+ * map's key index.
104
+ */
105
+ entries(): IterableIterator<readonly [number, T]>;
106
+ /** Return an iterator over `[key, value]` entries in dense item order. */
107
+ [Symbol.iterator](): IterableIterator<readonly [number, T]>;
108
+ /** Return every present value in dense item order. */
51
109
  values(): T[];
52
110
  /** Remove all entries and reset {@link size} to zero. */
53
111
  clear(): void;
54
112
  }
55
113
  /**
56
- * Read-only view of an {@link ArrayMap}: the mutating methods `set`, `delete`,
114
+ * Read-only view of an {@link IterableArrayMap}: the mutating methods `set`, `delete`,
57
115
  * and `clear` are omitted.
58
116
  *
59
117
  * @typeParam T - Value type stored in the map.
60
118
  */
61
- export type ReadonlyArrayMap<T> = Omit<ArrayMap<T>, "set" | "delete" | "clear">;
119
+ export type ReadonlyIterableArrayMap<T> = Omit<IterableArrayMap<T>, "set" | "delete" | "clear">;
@@ -1,13 +1,12 @@
1
1
  /**
2
- * A `Map<number, T>` substitute backed by a sparse JavaScript array.
2
+ * A cheap `Map<number, T>` substitute backed directly by a sparse JavaScript array.
3
3
  *
4
- * For small, dense, non-negative integer key spaces, indexing into a regular
5
- * array is faster than the hash-table lookups performed by the built-in
6
- * `Map`. `ArrayMap` is used inside the ECS to store per-entity component
7
- * instances and per-type metadata.
4
+ * Use this when callers only need random access (`get`, `set`, `has`, `delete`)
5
+ * by non-negative integer keys. Lookups are a single array read and memory usage
6
+ * is one sparse backing array, so it is cheaper than {@link IterableArrayMap}.
8
7
  *
9
- * Empty slots are represented as `undefined` and do not count toward
10
- * {@link size}.
8
+ * This does not support iteration. Sparse holes are skipped only implicitly by
9
+ * `get`/`has`, and high key values can create a large sparse backing array.
11
10
  *
12
11
  * @typeParam T - Value type stored in the map.
13
12
  */
@@ -61,36 +60,124 @@ export class ArrayMap {
61
60
  this._size--;
62
61
  }
63
62
  }
63
+ /** Remove all entries and reset {@link size} to zero. */
64
+ clear() {
65
+ this._backend.length = 0;
66
+ this._size = 0;
67
+ }
68
+ }
69
+ /**
70
+ * An iterable `Map<number, T>` substitute backed by dense entries plus sparse indexes.
71
+ *
72
+ * Use this when callers need fast `forEach` or `values` over present entries.
73
+ * Random access resolves `key -> dense index` through {@link ArrayMap}, then
74
+ * indexes into `_items`; iteration walks the dense `_items` array directly.
75
+ *
76
+ * Deletes keep `_items` dense by moving the last value into the removed slot
77
+ * and updating the moved value's stored index.
78
+ *
79
+ * Compared with {@link ArrayMap}, this costs extra memory for tuple storage and
80
+ * an index map, and `delete`/new `set` do more bookkeeping. In return, iteration
81
+ * is dense and does not scan sparse holes.
82
+ *
83
+ * @typeParam T - Value type stored in the map.
84
+ */
85
+ export class IterableArrayMap {
86
+ constructor() {
87
+ this._indices = new ArrayMap();
88
+ this._items = [];
89
+ }
90
+ /** The number of entries currently in the map. */
91
+ get size() {
92
+ return this._items.length;
93
+ }
94
+ /**
95
+ * Insert or replace the value at `key`.
96
+ *
97
+ * @param key - Non-negative integer key.
98
+ * @param value - Value to store.
99
+ */
100
+ set(key, value) {
101
+ const existingIndex = this._indices.get(key);
102
+ if (existingIndex !== undefined) {
103
+ this._items[existingIndex] = [key, value];
104
+ return;
105
+ }
106
+ const index = this._items.length;
107
+ this._indices.set(key, index);
108
+ this._items.push([key, value]);
109
+ }
110
+ /**
111
+ * Retrieve the value stored at `key`, or `undefined` if no entry exists.
112
+ *
113
+ * @param key - Non-negative integer key.
114
+ */
115
+ get(key) {
116
+ const index = this._indices.get(key);
117
+ return index === undefined ? undefined : this._items[index][1];
118
+ }
119
+ /**
120
+ * Return `true` when an entry exists at `key`.
121
+ *
122
+ * @param key - Non-negative integer key.
123
+ */
124
+ has(key) {
125
+ return this._indices.has(key);
126
+ }
127
+ /**
128
+ * Remove the entry at `key`. Does nothing if no entry exists there.
129
+ *
130
+ * @param key - Non-negative integer key.
131
+ */
132
+ delete(key) {
133
+ const index = this._indices.get(key);
134
+ if (index === undefined) {
135
+ return;
136
+ }
137
+ const lastIndex = this._items.length - 1;
138
+ if (index !== lastIndex) {
139
+ const lastItem = this._items[lastIndex];
140
+ this._items[index] = lastItem;
141
+ const lastKey = lastItem[0];
142
+ this._indices.set(lastKey, index);
143
+ }
144
+ this._items.pop();
145
+ this._indices.delete(key);
146
+ }
64
147
  /**
65
- * Visit every present entry in ascending key order. Empty slots are skipped.
148
+ * Visit every present entry in dense item order.
66
149
  *
67
150
  * @param callback - Invoked with `(value, key, map)` for each entry.
68
151
  */
69
152
  forEach(callback) {
70
- const backend = this._backend;
71
- for (let i = 0; i < backend.length; i++) {
72
- const value = backend[i];
73
- if (value !== undefined) {
74
- callback(value, i, this);
75
- }
153
+ const items = this._items;
154
+ for (let i = 0; i < items.length; i++) {
155
+ const [key, value] = items[i];
156
+ callback(value, key, this);
76
157
  }
77
158
  }
78
- /** Return every present value in ascending key order. */
159
+ /**
160
+ * Return an iterator over `[key, value]` entries in dense item order.
161
+ *
162
+ * Entries are backed by the map's internal storage for speed. Treat them as
163
+ * immutable; mutating them through casts or plain JavaScript can corrupt the
164
+ * map's key index.
165
+ */
166
+ entries() {
167
+ return this._items.values();
168
+ }
169
+ /** Return an iterator over `[key, value]` entries in dense item order. */
170
+ [Symbol.iterator]() {
171
+ return this.entries();
172
+ }
173
+ /** Return every present value in dense item order. */
79
174
  values() {
80
- const out = [];
81
- const backend = this._backend;
82
- for (let i = 0; i < backend.length; i++) {
83
- const value = backend[i];
84
- if (value !== undefined) {
85
- out.push(value);
86
- }
87
- }
88
- return out;
175
+ return this._items.map(([, value]) => value);
89
176
  }
90
177
  /** Remove all entries and reset {@link size} to zero. */
91
178
  clear() {
92
- this._backend.length = 0;
93
- this._size = 0;
179
+ this._indices.clear();
180
+ this._items.length = 0;
94
181
  }
95
182
  }
96
183
  //# sourceMappingURL=array_map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array_map.js","sourceRoot":"","sources":["../../src/util/array_map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,QAAQ;IAArB;QACU,aAAQ,GAAsB,EAAE,CAAC;QACjC,UAAK,GAAW,CAAC,CAAC;IAqF5B,CAAC;IAnFC,kDAAkD;IAClD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,QAA2D;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IAClD,MAAM;QACX,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,yDAAyD;IAClD,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"array_map.js","sourceRoot":"","sources":["../../src/util/array_map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,QAAQ;IAArB;QACU,aAAQ,GAAsB,EAAE,CAAC;QACjC,UAAK,GAAW,CAAC,CAAC;IAyD5B,CAAC;IAvDC,kDAAkD;IAClD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,yDAAyD;IAClD,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACmB,aAAQ,GAAG,IAAI,QAAQ,EAAU,CAAC;QAClC,WAAM,GAAgC,EAAE,CAAC;IA0G5D,CAAC;IAxGC,kDAAkD;IAClD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,QAAmE;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,0EAA0E;IACnE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,sDAAsD;IAC/C,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,yDAAyD;IAClD,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}