@bldrs-ai/conway 1.569.1545 → 1.570.1544

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.
@@ -30,7 +30,7 @@ var import_node_process = require("node:process");
30
30
  var readline = __toESM(require("node:readline"), 1);
31
31
 
32
32
  // compiled/src/version/version.js
33
- var versionString = "Conway v1.569.1545";
33
+ var versionString = "Conway v1.570.1544";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -14965,7 +14965,7 @@ ${t5.join("\n")}` : "";
14965
14965
  var import_process = require("process");
14966
14966
 
14967
14967
  // compiled/src/version/version.js
14968
- var versionString = "Conway v1.569.1545";
14968
+ var versionString = "Conway v1.570.1544";
14969
14969
 
14970
14970
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
14971
14971
  function pThreadsAllowed() {
@@ -93622,50 +93622,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
93622
93622
  this.aggregateTargetLocalIDs_ = targets;
93623
93623
  return targets;
93624
93624
  }
93625
- /**
93626
- * The per-relationship product counts the PAGED walk collected, handed
93627
- * over and dropped in one call.
93628
- *
93629
- * Counts are how many products the aggregates pass will extract for a
93630
- * relationship — the size of the unit of work
93631
- * {@link extractRelAggregateGeometryIncremental} steps through — which the
93632
- * demand pump needs to report progress in products rather than in
93633
- * relationships (conway#565: SKYLARK250 puts ~1,960 products under one
93634
- * relationship, so a relationship-counted bar sat at 1/2 for the whole
93635
- * load).
93636
- *
93637
- * **Collected only on the windowed walk, and only because that is the one
93638
- * place it is free.** {@link ensureAggregateTargetLocalIDs} already pages
93639
- * and scans every `IfcRelAggregates` record, so the count is the number it
93640
- * was discarding. A resident model has no such moment worth capturing —
93641
- * it can read the same records at adopt time for nothing — so the sync
93642
- * walk collects nothing at all and the whole-model extraction, which
93643
- * shares that walk, retains nothing.
93644
- *
93645
- * **Handed over rather than cached** (conway#569 review). The prefix the
93646
- * pump builds from these is itself the durable structure; keeping a second
93647
- * copy for the model's life is retention with no reader. Measured on an
93648
- * adverse model — 50,000 relationships over 100,000 products, the shape
93649
- * where relationship count approaches product count — the map holds
93650
- * 1.75 MB at 36.7 bytes per relationship. Not fatal beside the 16.4 MB
93651
- * the target Set from the same walk retains, but it is avoidable, and
93652
- * `setGeometryShard` refuses to run once a worklist exists so the prefix
93653
- * is built exactly once and there is nothing to hand it to twice.
93654
- *
93655
- * **The same number the resident pump derives for itself**, from the same
93656
- * call: {@link aggregateRelatedProductCount}. Approximate in one
93657
- * direction only — a `RelatedObjects` list that needs the generated
93658
- * getter counts 0 — and the pump's own drain condition, not this number,
93659
- * decides when the pass is finished.
93660
- *
93661
- * @return {Map<number, number> | undefined} Counts keyed by relationship
93662
- * localID, or undefined where no paged walk ran. The caller owns it.
93663
- */
93664
- takeAggregateRelatedProductCounts() {
93665
- const counts = this.pagedAggregateProductCounts_;
93666
- this.pagedAggregateProductCounts_ = void 0;
93667
- return counts;
93668
- }
93669
93625
  /**
93670
93626
  * Windowed twin of {@link aggregateTargetLocalIDs}: page each
93671
93627
  * relationship record before scanning it, so the set is COMPLETE rather
@@ -93702,7 +93658,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
93702
93658
  return this.aggregateTargetLocalIDs_;
93703
93659
  }
93704
93660
  const targets = /* @__PURE__ */ new Set();
93705
- const counts = /* @__PURE__ */ new Map();
93706
93661
  const wave = Math.max(1, Math.floor(waveSize));
93707
93662
  let pending = [];
93708
93663
  const drain = async () => {
@@ -93715,7 +93670,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
93715
93670
  await Promise.all([...pinned].map((localID) => this.model.ensureResidentByLocalID(localID)));
93716
93671
  for (const relAggregate of pending) {
93717
93672
  this.addAggregateTargets_(relAggregate, targets, true);
93718
- counts.set(relAggregate.localID, this.aggregateRelatedProductCount(relAggregate));
93719
93673
  }
93720
93674
  } finally {
93721
93675
  this.model.releaseSourceViews(pinned);
@@ -93733,7 +93687,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
93733
93687
  await drain();
93734
93688
  }
93735
93689
  this.aggregateTargetLocalIDs_ = targets;
93736
- this.pagedAggregateProductCounts_ = counts;
93737
93690
  this.aggregateTargetsPaged_ = true;
93738
93691
  return targets;
93739
93692
  }
@@ -93776,13 +93729,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
93776
93729
  * past that point would defer products the pass will never reach, i.e.
93777
93730
  * extract them in neither pass.
93778
93731
  *
93779
- * Deliberately NOT the place the progress denominator is counted, even
93780
- * though the entries pass through here for free and, since conway#568,
93781
- * through the same classification: `targets` is a Set over the WHOLE
93782
- * model, so a product reached through two relationships collapses into
93783
- * one entry here while costing the pass a step in each. See
93784
- * {@link aggregateRelatedProductCount}.
93785
- *
93786
93732
  * @param relAggregate The relationship to scan.
93787
93733
  * @param targets Accumulator.
93788
93734
  * @param strictResidency When set, a non-resident read propagates instead
@@ -94271,53 +94217,6 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
94271
94217
  }
94272
94218
  return productLocalIDs;
94273
94219
  }
94274
- /**
94275
- * How many products the aggregates pass will actually extract from one
94276
- * relationship — the size of the unit of work
94277
- * {@link extractRelAggregateGeometryIncremental} steps through, and the
94278
- * per-relationship term of the demand pumps' progress denominator
94279
- * (conway#565).
94280
- *
94281
- * **Derived through the pass's own path** —
94282
- * {@link relatedAggregateProductLocalIDs} and so
94283
- * {@link relatedProductByExpressID_} — rather than counted off the
94284
- * target scan, which has the same entries in hand for free.
94285
- *
94286
- * The boundary is why. An entry the classification throws on — a
94287
- * reference that resolves to nothing, or to something that is not an
94288
- * `IfcObjectDefinition` — ENDS the relationship: the pass's permissive
94289
- * catch abandons every product after it. A count that skipped the bad
94290
- * entry and kept going put work in the denominator that would never run,
94291
- * and the bar then jumped the whole abandoned tail when the relationship
94292
- * terminated (conway#569 review). On SKYLARK's shape — one relationship
94293
- * over ~1,960 products — that jump is the entire bar.
94294
- * {@link relatedAggregateProductLocalIDs} stops where the pass stops;
94295
- * {@link addAggregateTargets_}, whose Set collapses a product shared by
94296
- * two relationships, could not carry the number anyway.
94297
- *
94298
- * It is still only a PREDICTION of where the pass stops — see the
94299
- * `TODO(conway#574)` in `IfcApiProxyIfc.demandProgress_`.
94300
- *
94301
- * Costs no source bytes beyond the relationship's own record:
94302
- * `getTypedElementByExpressID` builds its descriptor from the columns
94303
- * (conway#566 swept exactly this call over SKYLARK250's 7,818,778
94304
- * records behind an exhausted window — 0 throws, 0 store bytes). That is
94305
- * what lets the paged walk call it inside a wave, where only the
94306
- * relationship record is resident, as well as the resident pump calling
94307
- * it at worklist-adopt time.
94308
- *
94309
- * **0 for a `RelatedObjects` list only the generated getter can
94310
- * resolve** — an inline entity, `$` or junk. Counting those exactly means
94311
- * materialising the array both callers exist to avoid, and an under-count
94312
- * only pauses the bar short of full: `remaining` is derived from the
94313
- * cursors, never from this.
94314
- *
94315
- * @param relAggregate The relationship to cost.
94316
- * @return {number} Related products the aggregates pass will extract.
94317
- */
94318
- aggregateRelatedProductCount(relAggregate) {
94319
- return this.relatedAggregateProductLocalIDs(relAggregate)?.length ?? 0;
94320
- }
94321
94220
  /**
94322
94221
  * Page the closures of a contiguous run of
94323
94222
  * {@link relatedAggregateProductLocalIDs} entries.
@@ -94367,15 +94266,7 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
94367
94266
  hop.push(localID);
94368
94267
  await this.model.ensureResidentByLocalID(localID);
94369
94268
  }
94370
- let related;
94371
- try {
94372
- related = relAggregate.RelatedObjects;
94373
- } catch (error) {
94374
- if (error instanceof StepBufferNotResidentError) {
94375
- throw error;
94376
- }
94377
- return;
94378
- }
94269
+ const related = relAggregate.RelatedObjects;
94379
94270
  if (related !== null && related !== void 0) {
94380
94271
  for (const product of related) {
94381
94272
  await this.ensureResidentForProductExtract(product.localID, pinned, leafSpans);
@@ -94447,29 +94338,21 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
94447
94338
  * @param relAggregate The relationship to read.
94448
94339
  * @return {number[] | undefined} The related objects' express IDs in
94449
94340
  * record order, or undefined when the list holds an entry that is not a
94450
- * `#N` reference — an inline entity, `$`, junk, or a field that is not a
94451
- * list at all. Only the generated getter can resolve (or reject) those,
94452
- * so the caller falls back to it rather than guessing. A non-residency
94453
- * failure propagates instead: see the catch.
94341
+ * `#N` reference — an inline entity, `$`, or junk. Only the generated
94342
+ * getter can resolve (or reject) those, so the caller falls back to it
94343
+ * rather than guessing.
94454
94344
  */
94455
94345
  relatedObjectExpressIDs_(relAggregate) {
94456
94346
  const expressIDs = [];
94457
94347
  let allReferences = true;
94458
- try {
94459
- relAggregate.forEachReferenceInField(REL_AGGREGATES_RELATED_OFFSET, REL_AGGREGATES_RELATED_BASE, REL_AGGREGATES_RELATED_DEPTH, (expressID) => {
94460
- if (expressID === void 0) {
94461
- allReferences = false;
94462
- return false;
94463
- }
94464
- expressIDs.push(expressID);
94465
- return true;
94466
- });
94467
- } catch (error) {
94468
- if (error instanceof StepBufferNotResidentError) {
94469
- throw error;
94348
+ relAggregate.forEachReferenceInField(REL_AGGREGATES_RELATED_OFFSET, REL_AGGREGATES_RELATED_BASE, REL_AGGREGATES_RELATED_DEPTH, (expressID) => {
94349
+ if (expressID === void 0) {
94350
+ allReferences = false;
94351
+ return false;
94470
94352
  }
94471
- return void 0;
94472
- }
94353
+ expressIDs.push(expressID);
94354
+ return true;
94355
+ });
94473
94356
  return allReferences ? expressIDs : void 0;
94474
94357
  }
94475
94358
  /**
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
15943
15943
  };
15944
15944
 
15945
15945
  // compiled/src/version/version.js
15946
- var versionString = "Conway v1.569.1545";
15946
+ var versionString = "Conway v1.570.1544";
15947
15947
 
15948
15948
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
15949
15949
  function pThreadsAllowed() {
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
944
944
  var entity_types_ifc_gen_default = EntityTypesIfc;
945
945
 
946
946
  // compiled/src/version/version.js
947
- var versionString = "Conway v1.569.1545";
947
+ var versionString = "Conway v1.570.1544";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -128,24 +128,6 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
128
128
  private demandAggregates_?;
129
129
  /** Cursor into demandAggregates_ — items before it are extracted. */
130
130
  private demandAggregatesCursor_;
131
- /**
132
- * Running total of stepper steps the aggregates pass will cost, indexed
133
- * like demandAggregates_: entry i is the steps for relationships
134
- * `[0, i)`, so the array is one longer than the worklist and its last
135
- * entry is the pass's whole cost.
136
- *
137
- * **The unit is one pump budget unit, not one product** (conway#565).
138
- * A relationship costs `products + 1`: the stepper yields once per
139
- * related product it extracts, and the final `next()` that returns
140
- * `done` also spends a unit of the pump's budget. Counting products
141
- * alone would leave `extracted` and `remaining` disagreeing by one per
142
- * relationship at every boundary, which is the wrinkle #565 flagged to
143
- * decide rather than trip over. In this unit they are commensurate:
144
- * `remaining` falls by exactly what `extracted` reports.
145
- *
146
- * Undefined until a worklist is adopted.
147
- */
148
- private demandAggregateStepPrefix_?;
149
131
  /**
150
132
  * The relationship at demandAggregatesCursor_, part-way through its
151
133
  * related products. A batch budget subdivides ONE relationship rather
@@ -811,41 +793,6 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
811
793
  * a previous walk would otherwise hold both.
812
794
  */
813
795
  private releaseDemandAggregate_;
814
- /**
815
- * Cost every relationship in the adopted worklist, in pump budget units,
816
- * as the running prefix demandAggregateStepPrefix_ describes.
817
- *
818
- * Called from both worklist installers rather than lazily in the pump:
819
- * the windowed half of the counts comes from the aggregate-target walk,
820
- * which has already run by the time a worklist exists (the async
821
- * installer awaits its paged twin first), so there is no point later at
822
- * which this gets cheaper.
823
- */
824
- private adoptAggregateStepPrefix_;
825
- /**
826
- * The geometry phase's denominator and what is left of it, both in pump
827
- * budget units — products for the per-product pass, stepper steps for the
828
- * aggregates pass.
829
- *
830
- * Shared by the two pumps so the synchronous embedder and the async pump
831
- * Share drives report the same numbers. conway#565 is what happens when
832
- * they do not have one definition: `aggregates.length` counted a
833
- * relationship as one unit however many products it carried, so
834
- * SKYLARK250 — 0 per-product entries and 2 relationships, one holding
835
- * ~1,960 products — reported `1/2` for 186 consecutive events across a
836
- * minute and a half of extraction.
837
- *
838
- * **`remaining` is derived from the cursors, never from the estimate.**
839
- * Callers pump until it reads 0, so the drain test has to be exact even
840
- * where the counts are approximate (see
841
- * {@link IfcGeometryExtraction.aggregateRelatedProductCount}). It reads 0
842
- * exactly when the pass is drained, and is floored at 1 while any work is
843
- * outstanding — an under-counted relationship makes the bar pause just
844
- * short of full, not finish early.
845
- *
846
- * @return {object} `totalWork` for the phase and `remaining` of it.
847
- */
848
- private demandProgress_;
849
796
  private pumpGeometryBatch_;
850
797
  /**
851
798
  * Walk the scene and emit every not-yet-captured placed instance as
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAQ/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,qBAAqB,EAA8B,MAAM,iCAAiC,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAqBrD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAE3D,OAAO,EAAyB,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AA2DhG;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,UAAU,EAAE,cAAc,CAAA;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;uEACmE;IACnE,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAA;IACpC;;qEAEiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,eAAe,CAAA;IACtB,cAAc,EAAE,qBAAqB,CAAA;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B;AA6CD,qBAAa,cAAe,YAAW,sBAAsB;aA4NvC,OAAO,EAAE,MAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IA7N9B,EAAE,CAAC,EAAE,GAAG,CAAY;IAEpB,KAAK,EACH;QAAC,YAAY;QACX,eAAe;QACf,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC;QAAE,QAAQ,CAAC,IAAI;KAAC,CAAA;IACpC,UAAU,EAAE,cAAc,CAAA;IAE1B,yEAAyE;IACzE,OAAO,CAAC,eAAe,CAAuB;IAE9C,iEAAiE;IACjE,OAAO,CAAC,aAAa,CAAiB;IAEtC,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,yEAAyE;IACzE,OAAO,CAAC,qBAAqB,CAAiB;IAE9C,sEAAsE;IACtE,OAAO,CAAC,eAAe,CAAC,CAAU;IAElC;;;;;;;OAOG;IACH;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAI;IAE9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAEhE,sEAAsE;IAGtE,OAAO,CAAC,MAAM,CAAC,CAAkC;IAEjD,OAAO,CAAC,aAAa,CAAI;IAEzB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO/B;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAE9C,qEAAqE;IACrE,OAAO,CAAC,uBAAuB,CAAI;IAEnC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,0BAA0B,CAAC,CAAU;IAE7C;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB,CAAC,CAAsC;IAEtE;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IAErD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAI;IAEjC;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAU;IAEtC;;6DAEyD;IACzD,OAAO,CAAC,eAAe,CAAQ;IAE/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,8BAA8B,CAAiB;IAEvD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB,CAAiB;IAE9C,cAAc,EAAE,OAAO,CAAQ;IAC/B,mBAAmB,EAAE,MAAM,CAAI;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAmD;IAGrE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAK1B;IAED;;OAEG;IACH,UAAU,gBAA0B;IAEpC;;;;OAIG;gBAGiB,OAAO,EAAE,MAAM,EAC/B,IAAI,EAAE,UAAU,EACC,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,YAAA,EAC1C,WAAW,CAAC,EAAE,iBAAiB;IAoLnC;;;;;;;;;;OAUG;WACiB,WAAW,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IAQxD;;;;;;;;;;;;;;;OAeG;WACiB,cAAc,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IAQxD;;;;;;;;;;;;;;;OAeG;WACiB,cAAc,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IAQxD;;;;;;;;;;;OAWG;WACiB,eAAe,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IASxD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAwCtC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAsF9B;;;;;;;;;OASG;mBACkB,oBAAoB;IAsFzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;mBACkB,4BAA4B;IA6KjD;;;;;;;;;;;;;;;;OAgBG;mBACkB,sBAAsB;IAyP3C;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA4BxC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM;IAM9C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAO5C;;;;;;OAMG;IACH,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW;IA6BnD;;;;;;OAMG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IA0BnD;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GACrC;QAAE,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,QAAQ,CAAC,EAAE,eAAe,CAAA;KAAE;IAoChC;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;OAIG;IACH,IAAI,cAAc,IAAI;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;KACf,CAEA;IAED;;;;;;;;;;OAUG;IACH,0BAA0B,CACtB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI;IAItC;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;;;;;;;;;;OAWG;IACH,cAAc,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1C;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAAC,WAAW,CAAC;IAoBxC;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG;IAIzB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAkB5B;;;;;OAKG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAgD9C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,WAAW;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IA6ChD;;;;OAIG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;IA0C7B;;;;OAIG;IACH,yBAAyB,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC;IAU7D;;;;OAIG;IACH,qBAAqB,IAAI,KAAK,CAAC,MAAM,CAAC;IAetC;;;;;;OAMG;IACH,sBAAsB,IAAI,KAAK,CAAC,MAAM,CAAC;IAIvC;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;IAIvD;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAIrD;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/E,YAAY,GAAG,WAAW;IAe5B;;;;OAIG;IACH,UAAU;IAIV;;;;;;;;;;;;;OAaG;IACH,eAAe,IAAI,OAAO;IAoC1B;0EACsE;IACtE,OAAO,CAAC,SAAS,CAAQ;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,oBAAoB,CAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAI;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;IAoBrF;;;;;;;;;OASG;IACG,yBAAyB,CAC3B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GACvC,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC;IA0KnD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+C9B;;;;;;;;;;;;;;;OAeG;YACW,2BAA2B;IA8CzC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,wBAAwB;IAiChC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACI,oBAAoB,CAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAI,IAAI;IAoEtD;;;;;;;;;;;;;;;;;;;OAmBG;IACI,gBAAgB,CAAE,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAI,IAAI;IAiIzE;;;;;;;OAOG;IACH;;;;;;;;;;;;OAYG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,wBAAwB;IA+ChC;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;;;;;OASG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,kBAAkB;IAyH1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH;;;;;;;;;;;;;;;OAeG;IACI,iBAAiB,CAAE,KAAK,EAAE,MAAM,GAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IASrF,OAAO,CAAC,gBAAgB;IAkNxB;;;;OAIG;IACH,eAAe,CAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IAuQvD;;;;;OAKG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IAgK1C;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC;IA2MnC;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAqDxC;;;;;OAKG;IACH,4BAA4B,IAAI,IAAI;CAwBrC"}
1
+ {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
@@ -1508,10 +1508,11 @@ export class IfcApiProxyIfc {
1508
1508
  }
1509
1509
  const products = this.demandProducts_ ?? [];
1510
1510
  const aggregates = this.demandAggregates_ ?? [];
1511
+ const totalWork = products.length + aggregates.length;
1511
1512
  const budget = Math.max(batchSize, 1);
1512
1513
  let extracted = 0;
1513
1514
  if (this.progressTracker_ !== void 0 && !this.geometryPhaseStarted_) {
1514
- this.progressTracker_.beginPhase("geometry", "products", this.demandProgress_().totalWork);
1515
+ this.progressTracker_.beginPhase("geometry", "products", totalWork);
1515
1516
  this.geometryPhaseStarted_ = true;
1516
1517
  }
1517
1518
  const productEnd = Math.min(this.demandCursor_ + budget, products.length);
@@ -1618,7 +1619,8 @@ export class IfcApiProxyIfc {
1618
1619
  // this batch is about to deliver and re-extract them immediately. A
1619
1620
  // no-op unless a budget is configured.
1620
1621
  this.model[0].geometryResidency.evictToBudget();
1621
- const { totalWork, remaining } = this.demandProgress_();
1622
+ const remaining = (products.length - this.demandCursor_) +
1623
+ (aggregates.length - this.demandAggregatesCursor_);
1622
1624
  const windowMb = this.model[0].residentSourceBytes / BYTES_PER_MIB;
1623
1625
  if (this.progressTracker_ !== void 0) {
1624
1626
  const completed = totalWork - remaining;
@@ -1765,7 +1767,6 @@ export class IfcApiProxyIfc {
1765
1767
  this.demandAggregates_ = aggregates;
1766
1768
  this.demandCursor_ = 0;
1767
1769
  this.demandAggregatesCursor_ = 0;
1768
- this.adoptAggregateStepPrefix_();
1769
1770
  }
1770
1771
  /**
1771
1772
  * Install the worklists narrowed to this instance's shard.
@@ -1817,7 +1818,6 @@ export class IfcApiProxyIfc {
1817
1818
  this.releaseDemandAggregate_();
1818
1819
  this.demandCursor_ = 0;
1819
1820
  this.demandAggregatesCursor_ = 0;
1820
- this.adoptAggregateStepPrefix_();
1821
1821
  }
1822
1822
  /**
1823
1823
  * Hand this model the recentre frame to apply, instead of letting it
@@ -2132,97 +2132,12 @@ export class IfcApiProxyIfc {
2132
2132
  this.demandAggregatePager_?.release();
2133
2133
  this.demandAggregatePager_ = void 0;
2134
2134
  }
2135
- /**
2136
- * Cost every relationship in the adopted worklist, in pump budget units,
2137
- * as the running prefix demandAggregateStepPrefix_ describes.
2138
- *
2139
- * Called from both worklist installers rather than lazily in the pump:
2140
- * the windowed half of the counts comes from the aggregate-target walk,
2141
- * which has already run by the time a worklist exists (the async
2142
- * installer awaits its paged twin first), so there is no point later at
2143
- * which this gets cheaper.
2144
- */
2145
- adoptAggregateStepPrefix_() {
2146
- const aggregates = this.demandAggregates_ ?? [];
2147
- const prefix = new Array(aggregates.length + 1);
2148
- // Taken, not read: the extraction hands the map over and drops its own
2149
- // reference, so nothing outlives this loop but the prefix — which is
2150
- // the structure the pump actually needs (conway#569 review). Undefined
2151
- // on a resident source, which never ran the paged walk.
2152
- const paged = this.conwayGeometry_.takeAggregateRelatedProductCounts();
2153
- let running = 0;
2154
- prefix[0] = 0;
2155
- for (let where = 0; where < aggregates.length; ++where) {
2156
- const relAggregate = aggregates[where];
2157
- // One definition of the count, whichever source it comes from: the
2158
- // windowed walk fills `paged` by calling aggregateRelatedProductCount
2159
- // while the record is resident, and a resident model calls it right
2160
- // here for nothing — no paging, no wave. The map is a cache of that
2161
- // call, not a second way of computing it (conway#569 review), which
2162
- // is what keeps a windowed load and a resident load of the same model
2163
- // reporting the same denominator.
2164
- const related = paged?.get(relAggregate.localID) ??
2165
- this.conwayGeometry_.aggregateRelatedProductCount(relAggregate);
2166
- // +1 for the terminating next(): see demandAggregateStepPrefix_.
2167
- running += related + 1;
2168
- prefix[where + 1] = running;
2169
- }
2170
- this.demandAggregateStepPrefix_ = prefix;
2171
- }
2172
- /**
2173
- * The geometry phase's denominator and what is left of it, both in pump
2174
- * budget units — products for the per-product pass, stepper steps for the
2175
- * aggregates pass.
2176
- *
2177
- * Shared by the two pumps so the synchronous embedder and the async pump
2178
- * Share drives report the same numbers. conway#565 is what happens when
2179
- * they do not have one definition: `aggregates.length` counted a
2180
- * relationship as one unit however many products it carried, so
2181
- * SKYLARK250 — 0 per-product entries and 2 relationships, one holding
2182
- * ~1,960 products — reported `1/2` for 186 consecutive events across a
2183
- * minute and a half of extraction.
2184
- *
2185
- * **`remaining` is derived from the cursors, never from the estimate.**
2186
- * Callers pump until it reads 0, so the drain test has to be exact even
2187
- * where the counts are approximate (see
2188
- * {@link IfcGeometryExtraction.aggregateRelatedProductCount}). It reads 0
2189
- * exactly when the pass is drained, and is floored at 1 while any work is
2190
- * outstanding — an under-counted relationship makes the bar pause just
2191
- * short of full, not finish early.
2192
- *
2193
- * @return {object} `totalWork` for the phase and `remaining` of it.
2194
- */
2195
- demandProgress_() {
2196
- const products = this.demandProducts_ ?? [];
2197
- const aggregates = this.demandAggregates_ ?? [];
2198
- // TODO(conway#574): the prefix is a PREDICTION, and the pass has more
2199
- // early-abandon points than it enumerates — a product whose extraction
2200
- // throws abandons the relationship too, and the unrun tail drops in one
2201
- // step when the cursor advances. The fix is to adjust the prefix from
2202
- // the stepper's actual termination rather than to add a reason at a
2203
- // time; three review rounds found three boundaries.
2204
- const prefix = this.demandAggregateStepPrefix_ ?? [0];
2205
- const aggregateSteps = prefix[prefix.length - 1];
2206
- const totalWork = products.length + aggregateSteps;
2207
- const drained = this.demandAggregateStepper_ === void 0 &&
2208
- this.demandAggregatesCursor_ >= aggregates.length;
2209
- let aggregateRemaining = 0;
2210
- if (!drained) {
2211
- const cursor = Math.min(this.demandAggregatesCursor_, aggregates.length);
2212
- const inFlight = Math.min(this.demandAggregateSteps_, (prefix[cursor + 1] ?? prefix[cursor]) - prefix[cursor]);
2213
- aggregateRemaining =
2214
- Math.max(1, aggregateSteps - (prefix[cursor] + inFlight));
2215
- }
2216
- return {
2217
- totalWork,
2218
- remaining: (products.length - this.demandCursor_) + aggregateRemaining,
2219
- };
2220
- }
2221
2135
  pumpGeometryBatch_(batchSize, meshCallback) {
2222
2136
  const products = this.demandProducts_ ?? [];
2223
2137
  const aggregates = this.demandAggregates_ ?? [];
2138
+ const totalWork = products.length + aggregates.length;
2224
2139
  if (this.progressTracker_ !== void 0 && !this.geometryPhaseStarted_) {
2225
- this.progressTracker_.beginPhase("geometry", "products", this.demandProgress_().totalWork);
2140
+ this.progressTracker_.beginPhase("geometry", "products", totalWork);
2226
2141
  this.geometryPhaseStarted_ = true;
2227
2142
  }
2228
2143
  const budget = Math.max(batchSize, 1);
@@ -2250,7 +2165,6 @@ export class IfcApiProxyIfc {
2250
2165
  if (this.demandAggregateStepper_ === void 0) {
2251
2166
  this.demandAggregateStepper_ =
2252
2167
  this.conwayGeometry_.extractRelAggregateGeometryIncremental(aggregates[this.demandAggregatesCursor_]);
2253
- this.demandAggregateSteps_ = 0;
2254
2168
  }
2255
2169
  let done;
2256
2170
  try {
@@ -2261,19 +2175,12 @@ export class IfcApiProxyIfc {
2261
2175
  // way out of the stepper by exception. Drop the half-consumed
2262
2176
  // stepper but leave the cursor, so a retry re-runs the
2263
2177
  // relationship from the top exactly as it did when this was one
2264
- // unyielding call — which is why the step count resets with it.
2178
+ // unyielding call.
2265
2179
  this.demandAggregateStepper_ = void 0;
2266
- this.demandAggregateSteps_ = 0;
2267
2180
  throw error;
2268
2181
  }
2269
- // Counted on this pump too, not just the async twin: it is what
2270
- // demandProgress_ reads to place the bar inside the relationship in
2271
- // flight, and a synchronous embedder reporting the old numbers is
2272
- // half of conway#565 left in place.
2273
- ++this.demandAggregateSteps_;
2274
2182
  if (done) {
2275
2183
  this.demandAggregateStepper_ = void 0;
2276
- this.demandAggregateSteps_ = 0;
2277
2184
  ++this.demandAggregatesCursor_;
2278
2185
  }
2279
2186
  ++extracted;
@@ -2301,13 +2208,15 @@ export class IfcApiProxyIfc {
2301
2208
  // embedder and the test suite drive, and a budget honoured on only
2302
2209
  // one of them is a budget that silently does not apply.
2303
2210
  this.model[0].geometryResidency.evictToBudget();
2304
- const { totalWork, remaining } = this.demandProgress_();
2211
+ const remaining = (products.length - this.demandCursor_) +
2212
+ (aggregates.length - this.demandAggregatesCursor_);
2305
2213
  if (this.progressTracker_ !== void 0) {
2214
+ const completed = totalWork - remaining;
2306
2215
  if (remaining === 0) {
2307
2216
  this.progressTracker_.endPhase(totalWork);
2308
2217
  }
2309
2218
  else {
2310
- this.progressTracker_.update(totalWork - remaining);
2219
+ this.progressTracker_.update(completed);
2311
2220
  }
2312
2221
  }
2313
2222
  return {
@@ -1106,7 +1106,6 @@ export declare class IfcGeometryExtraction {
1106
1106
  private static readonly AGGREGATE_TARGET_WAVE_SIZE_;
1107
1107
  private static readonly AGGREGATE_PREFETCH_WAVE_SIZE_;
1108
1108
  private aggregateTargetLocalIDs_?;
1109
- private pagedAggregateProductCounts_?;
1110
1109
  private aggregateTargetsPaged_;
1111
1110
  /**
1112
1111
  * Local IDs of every IfcProduct that is a RelatedObject of any
@@ -1129,46 +1128,6 @@ export declare class IfcGeometryExtraction {
1129
1128
  * pass; empty for models without IfcRelAggregates.
1130
1129
  */
1131
1130
  aggregateTargetLocalIDs(): Set<number>;
1132
- /**
1133
- * The per-relationship product counts the PAGED walk collected, handed
1134
- * over and dropped in one call.
1135
- *
1136
- * Counts are how many products the aggregates pass will extract for a
1137
- * relationship — the size of the unit of work
1138
- * {@link extractRelAggregateGeometryIncremental} steps through — which the
1139
- * demand pump needs to report progress in products rather than in
1140
- * relationships (conway#565: SKYLARK250 puts ~1,960 products under one
1141
- * relationship, so a relationship-counted bar sat at 1/2 for the whole
1142
- * load).
1143
- *
1144
- * **Collected only on the windowed walk, and only because that is the one
1145
- * place it is free.** {@link ensureAggregateTargetLocalIDs} already pages
1146
- * and scans every `IfcRelAggregates` record, so the count is the number it
1147
- * was discarding. A resident model has no such moment worth capturing —
1148
- * it can read the same records at adopt time for nothing — so the sync
1149
- * walk collects nothing at all and the whole-model extraction, which
1150
- * shares that walk, retains nothing.
1151
- *
1152
- * **Handed over rather than cached** (conway#569 review). The prefix the
1153
- * pump builds from these is itself the durable structure; keeping a second
1154
- * copy for the model's life is retention with no reader. Measured on an
1155
- * adverse model — 50,000 relationships over 100,000 products, the shape
1156
- * where relationship count approaches product count — the map holds
1157
- * 1.75 MB at 36.7 bytes per relationship. Not fatal beside the 16.4 MB
1158
- * the target Set from the same walk retains, but it is avoidable, and
1159
- * `setGeometryShard` refuses to run once a worklist exists so the prefix
1160
- * is built exactly once and there is nothing to hand it to twice.
1161
- *
1162
- * **The same number the resident pump derives for itself**, from the same
1163
- * call: {@link aggregateRelatedProductCount}. Approximate in one
1164
- * direction only — a `RelatedObjects` list that needs the generated
1165
- * getter counts 0 — and the pump's own drain condition, not this number,
1166
- * decides when the pass is finished.
1167
- *
1168
- * @return {Map<number, number> | undefined} Counts keyed by relationship
1169
- * localID, or undefined where no paged walk ran. The caller owns it.
1170
- */
1171
- takeAggregateRelatedProductCounts(): Map<number, number> | undefined;
1172
1131
  /**
1173
1132
  * Windowed twin of {@link aggregateTargetLocalIDs}: page each
1174
1133
  * relationship record before scanning it, so the set is COMPLETE rather
@@ -1237,13 +1196,6 @@ export declare class IfcGeometryExtraction {
1237
1196
  * past that point would defer products the pass will never reach, i.e.
1238
1197
  * extract them in neither pass.
1239
1198
  *
1240
- * Deliberately NOT the place the progress denominator is counted, even
1241
- * though the entries pass through here for free and, since conway#568,
1242
- * through the same classification: `targets` is a Set over the WHOLE
1243
- * model, so a product reached through two relationships collapses into
1244
- * one entry here while costing the pass a step in each. See
1245
- * {@link aggregateRelatedProductCount}.
1246
- *
1247
1199
  * @param relAggregate The relationship to scan.
1248
1200
  * @param targets Accumulator.
1249
1201
  * @param strictResidency When set, a non-resident read propagates instead
@@ -1482,51 +1434,6 @@ export declare class IfcGeometryExtraction {
1482
1434
  * resolve (see {@link relatedObjectExpressIDs_}).
1483
1435
  */
1484
1436
  relatedAggregateProductLocalIDs(relAggregate: IfcRelAggregates): number[] | undefined;
1485
- /**
1486
- * How many products the aggregates pass will actually extract from one
1487
- * relationship — the size of the unit of work
1488
- * {@link extractRelAggregateGeometryIncremental} steps through, and the
1489
- * per-relationship term of the demand pumps' progress denominator
1490
- * (conway#565).
1491
- *
1492
- * **Derived through the pass's own path** —
1493
- * {@link relatedAggregateProductLocalIDs} and so
1494
- * {@link relatedProductByExpressID_} — rather than counted off the
1495
- * target scan, which has the same entries in hand for free.
1496
- *
1497
- * The boundary is why. An entry the classification throws on — a
1498
- * reference that resolves to nothing, or to something that is not an
1499
- * `IfcObjectDefinition` — ENDS the relationship: the pass's permissive
1500
- * catch abandons every product after it. A count that skipped the bad
1501
- * entry and kept going put work in the denominator that would never run,
1502
- * and the bar then jumped the whole abandoned tail when the relationship
1503
- * terminated (conway#569 review). On SKYLARK's shape — one relationship
1504
- * over ~1,960 products — that jump is the entire bar.
1505
- * {@link relatedAggregateProductLocalIDs} stops where the pass stops;
1506
- * {@link addAggregateTargets_}, whose Set collapses a product shared by
1507
- * two relationships, could not carry the number anyway.
1508
- *
1509
- * It is still only a PREDICTION of where the pass stops — see the
1510
- * `TODO(conway#574)` in `IfcApiProxyIfc.demandProgress_`.
1511
- *
1512
- * Costs no source bytes beyond the relationship's own record:
1513
- * `getTypedElementByExpressID` builds its descriptor from the columns
1514
- * (conway#566 swept exactly this call over SKYLARK250's 7,818,778
1515
- * records behind an exhausted window — 0 throws, 0 store bytes). That is
1516
- * what lets the paged walk call it inside a wave, where only the
1517
- * relationship record is resident, as well as the resident pump calling
1518
- * it at worklist-adopt time.
1519
- *
1520
- * **0 for a `RelatedObjects` list only the generated getter can
1521
- * resolve** — an inline entity, `$` or junk. Counting those exactly means
1522
- * materialising the array both callers exist to avoid, and an under-count
1523
- * only pauses the bar short of full: `remaining` is derived from the
1524
- * cursors, never from this.
1525
- *
1526
- * @param relAggregate The relationship to cost.
1527
- * @return {number} Related products the aggregates pass will extract.
1528
- */
1529
- aggregateRelatedProductCount(relAggregate: IfcRelAggregates): number;
1530
1437
  /**
1531
1438
  * Page the closures of a contiguous run of
1532
1439
  * {@link relatedAggregateProductLocalIDs} entries.
@@ -1618,10 +1525,9 @@ export declare class IfcGeometryExtraction {
1618
1525
  * @param relAggregate The relationship to read.
1619
1526
  * @return {number[] | undefined} The related objects' express IDs in
1620
1527
  * record order, or undefined when the list holds an entry that is not a
1621
- * `#N` reference — an inline entity, `$`, junk, or a field that is not a
1622
- * list at all. Only the generated getter can resolve (or reject) those,
1623
- * so the caller falls back to it rather than guessing. A non-residency
1624
- * failure propagates instead: see the catch.
1528
+ * `#N` reference — an inline entity, `$`, or junk. Only the generated
1529
+ * getter can resolve (or reject) those, so the caller falls back to it
1530
+ * rather than guessing.
1625
1531
  */
1626
1532
  private relatedObjectExpressIDs_;
1627
1533
  /**