@ifc-lite/wasm 5.0.0 → 6.0.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.
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "IFC-Lite Contributors"
6
6
  ],
7
7
  "description": "WebAssembly bindings for IFC-Lite",
8
- "version": "5.0.0",
8
+ "version": "6.0.0",
9
9
  "license": "MPL-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/pkg/ifc-lite.d.ts CHANGED
@@ -471,6 +471,9 @@ export class IfcAPI {
471
471
  * `#`-reference closure is added so the subset never dangles a reference.
472
472
  * `mutations_json` carries `MutablePropertyView` edits (attribute updates +
473
473
  * property-set synthesis); empty ⇒ none. See `export_step_json` for the shape.
474
+ * A non-empty but malformed `mutations_json` throws rather than silently
475
+ * exporting the model with none of the caller's edits applied — mirrors
476
+ * `exportGlb`'s and `exportMerged`'s fail-closed contract on this same API.
474
477
  */
475
478
  exportStep(content: Uint8Array, schema: string, included: Uint32Array, mutations_json: string): Uint8Array;
476
479
  /**
@@ -1566,7 +1569,8 @@ export class SymbolicRepresentationCollection {
1566
1569
  */
1567
1570
  readonly fillCount: number;
1568
1571
  /**
1569
- * Check if collection is empty
1572
+ * Check if collection is empty. A TRUNCATED result never is, even with no
1573
+ * primitives; the reasoning and the parity test are in `symbolic_truncation.rs`.
1570
1574
  */
1571
1575
  readonly isEmpty: boolean;
1572
1576
  /**
@@ -1581,6 +1585,23 @@ export class SymbolicRepresentationCollection {
1581
1585
  * Get total count of all symbolic items
1582
1586
  */
1583
1587
  readonly totalCount: number;
1588
+ /**
1589
+ * Primitive count at which extraction stopped, else `undefined`.
1590
+ */
1591
+ readonly truncatedAt: number | undefined;
1592
+ /**
1593
+ * The bound's numeric value, when the reason has one, else `undefined`.
1594
+ * Absent for the per-item reasons, whose bound is per item and not
1595
+ * comparable with `truncatedAt`.
1596
+ */
1597
+ readonly truncatedLimit: number | undefined;
1598
+ /**
1599
+ * Which bound stopped extraction, else `undefined`. One of
1600
+ * `element-count`, `output-bytes`, `item-depth`, `item-revisits`,
1601
+ * `item-cycle` — the same kebab-case strings the JSON path emits, so a
1602
+ * consumer reading either surface reads one vocabulary.
1603
+ */
1604
+ readonly truncatedReason: string | undefined;
1584
1605
  }
1585
1606
 
1586
1607
  /**
@@ -2072,6 +2093,9 @@ export interface InitOutput {
2072
2093
  readonly symbolicrepresentationcollection_polylineCount: (a: number) => number;
2073
2094
  readonly symbolicrepresentationcollection_textCount: (a: number) => number;
2074
2095
  readonly symbolicrepresentationcollection_totalCount: (a: number) => number;
2096
+ readonly symbolicrepresentationcollection_truncatedAt: (a: number) => number;
2097
+ readonly symbolicrepresentationcollection_truncatedLimit: (a: number) => number;
2098
+ readonly symbolicrepresentationcollection_truncatedReason: (a: number, b: number) => void;
2075
2099
  readonly symbolictext_alignment: (a: number, b: number) => void;
2076
2100
  readonly symbolictext_colorA: (a: number) => number;
2077
2101
  readonly symbolictext_content: (a: number, b: number) => void;
package/pkg/ifc-lite.js CHANGED
@@ -1266,6 +1266,9 @@ export class IfcAPI {
1266
1266
  * `#`-reference closure is added so the subset never dangles a reference.
1267
1267
  * `mutations_json` carries `MutablePropertyView` edits (attribute updates +
1268
1268
  * property-set synthesis); empty ⇒ none. See `export_step_json` for the shape.
1269
+ * A non-empty but malformed `mutations_json` throws rather than silently
1270
+ * exporting the model with none of the caller's edits applied — mirrors
1271
+ * `exportGlb`'s and `exportMerged`'s fail-closed contract on this same API.
1269
1272
  * @param {Uint8Array} content
1270
1273
  * @param {string} schema
1271
1274
  * @param {Uint32Array} included
@@ -4215,7 +4218,8 @@ export class SymbolicRepresentationCollection {
4215
4218
  return ret === 0 ? undefined : SymbolicText.__wrap(ret);
4216
4219
  }
4217
4220
  /**
4218
- * Check if collection is empty
4221
+ * Check if collection is empty. A TRUNCATED result never is, even with no
4222
+ * primitives; the reasoning and the parity test are in `symbolic_truncation.rs`.
4219
4223
  * @returns {boolean}
4220
4224
  */
4221
4225
  get isEmpty() {
@@ -4246,6 +4250,47 @@ export class SymbolicRepresentationCollection {
4246
4250
  const ret = wasm.symbolicrepresentationcollection_totalCount(this.__wbg_ptr);
4247
4251
  return ret >>> 0;
4248
4252
  }
4253
+ /**
4254
+ * Primitive count at which extraction stopped, else `undefined`.
4255
+ * @returns {number | undefined}
4256
+ */
4257
+ get truncatedAt() {
4258
+ const ret = wasm.symbolicrepresentationcollection_truncatedAt(this.__wbg_ptr);
4259
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4260
+ }
4261
+ /**
4262
+ * The bound's numeric value, when the reason has one, else `undefined`.
4263
+ * Absent for the per-item reasons, whose bound is per item and not
4264
+ * comparable with `truncatedAt`.
4265
+ * @returns {number | undefined}
4266
+ */
4267
+ get truncatedLimit() {
4268
+ const ret = wasm.symbolicrepresentationcollection_truncatedLimit(this.__wbg_ptr);
4269
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4270
+ }
4271
+ /**
4272
+ * Which bound stopped extraction, else `undefined`. One of
4273
+ * `element-count`, `output-bytes`, `item-depth`, `item-revisits`,
4274
+ * `item-cycle` — the same kebab-case strings the JSON path emits, so a
4275
+ * consumer reading either surface reads one vocabulary.
4276
+ * @returns {string | undefined}
4277
+ */
4278
+ get truncatedReason() {
4279
+ try {
4280
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
4281
+ wasm.symbolicrepresentationcollection_truncatedReason(retptr, this.__wbg_ptr);
4282
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
4283
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
4284
+ let v1;
4285
+ if (r0 !== 0) {
4286
+ v1 = getStringFromWasm0(r0, r1).slice();
4287
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
4288
+ }
4289
+ return v1;
4290
+ } finally {
4291
+ wasm.__wbindgen_add_to_stack_pointer(16);
4292
+ }
4293
+ }
4249
4294
  }
4250
4295
  if (Symbol.dispose) SymbolicRepresentationCollection.prototype[Symbol.dispose] = SymbolicRepresentationCollection.prototype.free;
4251
4296
 
Binary file