@bldrs-ai/conway 1.379.1191 → 1.380.1215

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 (70) hide show
  1. package/compiled/Dist/ConwayGeomWasmNode.js +0 -0
  2. package/compiled/Dist/ConwayGeomWasmNodeMT.js +0 -0
  3. package/compiled/Dist/ConwayGeomWasmWeb.js +0 -0
  4. package/compiled/Dist/ConwayGeomWasmWebMT.wasm +0 -0
  5. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNode.js +0 -0
  6. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNodeMT.js +0 -0
  7. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWeb.js +0 -0
  8. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWebMT.wasm +0 -0
  9. package/compiled/examples/browser-bundled.cjs +86 -2
  10. package/compiled/examples/cli-bundled.cjs +374 -41
  11. package/compiled/examples/cli-step-bundled.cjs +99 -4
  12. package/compiled/examples/validator-bundled.cjs +86 -2
  13. package/compiled/src/AP214E3_2010/ap214_ellipse_trim.test.d.ts +2 -0
  14. package/compiled/src/AP214E3_2010/ap214_ellipse_trim.test.d.ts.map +1 -0
  15. package/compiled/src/AP214E3_2010/ap214_ellipse_trim.test.js +74 -0
  16. package/compiled/src/AP214E3_2010/ap214_geometry_extraction.d.ts +12 -0
  17. package/compiled/src/AP214E3_2010/ap214_geometry_extraction.d.ts.map +1 -1
  18. package/compiled/src/AP214E3_2010/ap214_geometry_extraction.js +19 -1
  19. package/compiled/src/cli/cli_progress_renderer.d.ts +28 -14
  20. package/compiled/src/cli/cli_progress_renderer.d.ts.map +1 -1
  21. package/compiled/src/cli/cli_progress_renderer.js +52 -45
  22. package/compiled/src/compat/web-ifc/ifc_api.d.ts +25 -0
  23. package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
  24. package/compiled/src/compat/web-ifc/ifc_api.js +24 -0
  25. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +7 -0
  26. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
  27. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts +5 -4
  28. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts.map +1 -1
  29. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.js +24 -10
  30. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts +71 -1
  31. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
  32. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +196 -49
  33. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +13 -0
  34. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  35. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +32 -0
  36. package/compiled/src/compat/web-ifc/ifc_root_express_ids.test.d.ts +2 -0
  37. package/compiled/src/compat/web-ifc/ifc_root_express_ids.test.d.ts.map +1 -0
  38. package/compiled/src/compat/web-ifc/ifc_root_express_ids.test.js +78 -0
  39. package/compiled/src/compat/web-ifc/index.d.ts +1 -0
  40. package/compiled/src/compat/web-ifc/index.d.ts.map +1 -1
  41. package/compiled/src/compat/web-ifc/index.js +4 -0
  42. package/compiled/src/core/progress_log.d.ts +150 -0
  43. package/compiled/src/core/progress_log.d.ts.map +1 -0
  44. package/compiled/src/core/progress_log.js +293 -0
  45. package/compiled/src/core/progress_log.test.d.ts +2 -0
  46. package/compiled/src/core/progress_log.test.d.ts.map +1 -0
  47. package/compiled/src/core/progress_log.test.js +89 -0
  48. package/compiled/src/ifc/ifc_command_line_main.js +4 -2
  49. package/compiled/src/ifc/ifc_geometry_extraction.d.ts +13 -0
  50. package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
  51. package/compiled/src/ifc/ifc_geometry_extraction.js +20 -1
  52. package/compiled/src/index.d.ts +1 -0
  53. package/compiled/src/index.d.ts.map +1 -1
  54. package/compiled/src/index.js +1 -0
  55. package/compiled/src/loaders/conway_model_loader.d.ts +7 -0
  56. package/compiled/src/loaders/conway_model_loader.d.ts.map +1 -1
  57. package/compiled/src/loaders/conway_model_loader.js +18 -1
  58. package/compiled/src/loaders/loading_utilities.d.ts +13 -1
  59. package/compiled/src/loaders/loading_utilities.d.ts.map +1 -1
  60. package/compiled/src/loaders/loading_utilities.js +44 -0
  61. package/compiled/src/statistics/statistics.d.ts +31 -0
  62. package/compiled/src/statistics/statistics.d.ts.map +1 -1
  63. package/compiled/src/statistics/statistics.js +56 -1
  64. package/compiled/src/step/step_model_base.d.ts +14 -0
  65. package/compiled/src/step/step_model_base.d.ts.map +1 -1
  66. package/compiled/src/step/step_model_base.js +37 -0
  67. package/compiled/src/version/version.d.ts.map +1 -1
  68. package/compiled/src/version/version.js +1 -1
  69. package/compiled/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +1 -1
Binary file
Binary file
@@ -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 Web-Ifc Shim v1.379.1191";
33
+ var versionString = "Conway v1.380.1215";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -187,6 +187,52 @@ var Statistics = class {
187
187
  setMemoryStatistics(value) {
188
188
  this.memoryStatistics = value;
189
189
  }
190
+ /**
191
+ *
192
+ * @return {number | undefined} - number of products extracted
193
+ */
194
+ getProductCount() {
195
+ return this.productCount;
196
+ }
197
+ /**
198
+ *
199
+ * @param value - number of products extracted
200
+ */
201
+ setProductCount(value) {
202
+ this.productCount = value;
203
+ }
204
+ /**
205
+ *
206
+ * @return {Map<string, number> | undefined} - geometry type breakdown
207
+ * (entity type name -> count of unique geometry definitions extracted)
208
+ */
209
+ getGeometryTypeCounts() {
210
+ return this.geometryTypeCounts;
211
+ }
212
+ /**
213
+ *
214
+ * @param value - geometry type breakdown map
215
+ */
216
+ setGeometryTypeCounts(value) {
217
+ this.geometryTypeCounts = value;
218
+ }
219
+ /**
220
+ * Format the geometry-type breakdown as a compact sorted list, e.g.
221
+ * "IFCEXTRUDEDAREASOLID×3421 IFCFACETEDBREP×212 (+3 more)".
222
+ *
223
+ * @param maxEntries - cap on listed types (rest summarized)
224
+ * @return {string | undefined} the formatted breakdown, if any
225
+ */
226
+ // eslint-disable-next-line no-magic-numbers
227
+ formatGeometryTypeCounts(maxEntries = 12) {
228
+ if (this.geometryTypeCounts === void 0 || this.geometryTypeCounts.size === 0) {
229
+ return void 0;
230
+ }
231
+ const sorted = Array.from(this.geometryTypeCounts.entries()).sort((leftEntry, rightEntry) => rightEntry[1] - leftEntry[1]);
232
+ const shown = sorted.slice(0, maxEntries).map(([name, count]) => `${name}\xD7${count}`).join(" ");
233
+ const remainder = sorted.length - maxEntries;
234
+ return remainder > 0 ? `${shown} (+${remainder} more)` : shown;
235
+ }
190
236
  /**
191
237
  * prints statistics
192
238
  */
@@ -229,7 +275,10 @@ var Statistics = class {
229
275
  } else {
230
276
  versionStr = "Version not defined";
231
277
  }
232
- return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}`;
278
+ const products = this.productCount !== void 0 ? `Products: ${this.productCount}, ` : "";
279
+ const breakdown = this.formatGeometryTypeCounts();
280
+ const geometryTypes = breakdown !== void 0 ? `, Geometry Types: ${breakdown}` : "";
281
+ return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, ` + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
233
282
  }
234
283
  };
235
284
 
@@ -5403,6 +5452,41 @@ var StepModelBase = class {
5403
5452
  const distinctTypes = types.length === 1 ? types[0].query : new Set(types.flatMap((type) => type.query));
5404
5453
  return this.typeIndex.count(...distinctTypes);
5405
5454
  }
5455
+ /**
5456
+ * Iterate the express IDs of entities of a set of types (including sub-types)
5457
+ * without materializing entity descriptors or touching the source buffer —
5458
+ * only the type index and the express ID column are read, so this stays cheap
5459
+ * and safe even when the model source has been spilled to an external store.
5460
+ *
5461
+ * Multi-mapped elements (e.g. complex/multi-entity mappings) may be yielded
5462
+ * once per matching mapping, so callers that need distinct IDs should dedupe.
5463
+ *
5464
+ * @param types The list of types to iterate.
5465
+ * @return {IterableIterator} A lazy iterator of express IDs for matching entities.
5466
+ * @yields {number} The express ID of each matching entity.
5467
+ */
5468
+ *expressIDsOfTypes(...types) {
5469
+ const distinctTypes = types.length === 1 ? types[0].query : new Set(types.flatMap((type) => type.query));
5470
+ const cursor = this.typeIndex.cursor(...distinctTypes);
5471
+ const expressIDs = this.expressID_;
5472
+ const firstInlineElement = this.firstInlineElement_;
5473
+ try {
5474
+ while (cursor.step()) {
5475
+ const high = cursor.high;
5476
+ let low = cursor.low;
5477
+ while (low !== 0) {
5478
+ const lowestOneHot = extractOneHotLow(low);
5479
+ low ^= 1 << lowestOneHot;
5480
+ const localID = high | lowestOneHot;
5481
+ if (localID < firstInlineElement) {
5482
+ yield expressIDs[localID];
5483
+ }
5484
+ }
5485
+ }
5486
+ } finally {
5487
+ cursor.free();
5488
+ }
5489
+ }
5406
5490
  /**
5407
5491
  * Get the non empty type IDs for this.
5408
5492
  *