@bldrs-ai/conway 1.447.1342 → 1.449.1351
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/compiled/examples/browser-bundled.cjs +94 -10
- package/compiled/examples/cli-bundled.cjs +315 -119
- package/compiled/examples/cli-step-bundled.cjs +94 -10
- package/compiled/examples/validator-bundled.cjs +94 -10
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +51 -1
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +235 -88
- package/compiled/src/ifc/ifc_regression_batch_main.js +38 -6
- package/compiled/src/step/parsing/uint32_sink.d.ts +15 -0
- package/compiled/src/step/parsing/uint32_sink.d.ts.map +1 -1
- package/compiled/src/step/parsing/uint32_sink.js +35 -0
- package/compiled/src/step/parsing/uint32_sink.test.js +83 -1
- package/compiled/src/step/step_entity_base.d.ts +20 -0
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +30 -9
- package/compiled/src/step/step_model_base.d.ts +25 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +48 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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.
|
|
33
|
+
var versionString = "Conway v1.449.1351";
|
|
34
34
|
|
|
35
35
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
36
36
|
var wasmType = "";
|
|
@@ -4684,6 +4684,28 @@ var StepVtableBuilder = class {
|
|
|
4684
4684
|
}
|
|
4685
4685
|
};
|
|
4686
4686
|
|
|
4687
|
+
// compiled/src/step/parsing/uint32_sink.js
|
|
4688
|
+
function extractIntegerArrayAt(buffer, cursor, endCursor, sink) {
|
|
4689
|
+
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
4690
|
+
return 0;
|
|
4691
|
+
}
|
|
4692
|
+
let count = 0;
|
|
4693
|
+
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
4694
|
+
let readCursor = Math.abs(signedCursor0);
|
|
4695
|
+
while (signedCursor0 >= 0) {
|
|
4696
|
+
const value = stepExtractNumber(buffer, readCursor, endCursor);
|
|
4697
|
+
if (value === void 0) {
|
|
4698
|
+
throw new Error("Value in STEP was incorrectly typed");
|
|
4699
|
+
}
|
|
4700
|
+
readCursor = skipValue(buffer, readCursor, endCursor);
|
|
4701
|
+
sink.push(value);
|
|
4702
|
+
++count;
|
|
4703
|
+
signedCursor0 = stepExtractArrayToken(buffer, readCursor, endCursor);
|
|
4704
|
+
readCursor = Math.abs(signedCursor0);
|
|
4705
|
+
}
|
|
4706
|
+
return count;
|
|
4707
|
+
}
|
|
4708
|
+
|
|
4687
4709
|
// compiled/src/indexing/index_set_constants.js
|
|
4688
4710
|
var IndexSetConstants = class {
|
|
4689
4711
|
};
|
|
@@ -5240,6 +5262,48 @@ var StepModelBase = class {
|
|
|
5240
5262
|
* @param element The raw elment to populate the vtable entry for.
|
|
5241
5263
|
* @return {boolean} Did the vtable entry populate correctly?
|
|
5242
5264
|
*/
|
|
5265
|
+
/**
|
|
5266
|
+
* Append a referenced record's unsigned-integer list field into `sink`
|
|
5267
|
+
* without materialising the referenced entity.
|
|
5268
|
+
*
|
|
5269
|
+
* This is the reference-level twin of
|
|
5270
|
+
* `StepEntityBase.extractIntegerArrayInto`, for hot loops that walk
|
|
5271
|
+
* millions of small records (tessellated facesets) where constructing
|
|
5272
|
+
* an entity per record dominates. It deliberately handles only the
|
|
5273
|
+
* simple case and reports failure otherwise, so callers keep a
|
|
5274
|
+
* correct fallback rather than this growing subtle special cases:
|
|
5275
|
+
* the reference must resolve, be single-class (no multi-mapping),
|
|
5276
|
+
* and be exactly `expectedTypeID` — which is what makes reading
|
|
5277
|
+
* `offset` as a plain vtable slot equivalent to the generated
|
|
5278
|
+
* getter's `getOffsetCursor( offset, _, _ )` (that only subtracts a
|
|
5279
|
+
* base offset for multi-mapped records).
|
|
5280
|
+
*
|
|
5281
|
+
* @param expressID The referenced record's express ID.
|
|
5282
|
+
* @param offset The field's vtable offset within the record.
|
|
5283
|
+
* @param expectedTypeID The type the record must be.
|
|
5284
|
+
* @param sink Receives the appended values.
|
|
5285
|
+
* @return {number | undefined} Count appended, or undefined when the
|
|
5286
|
+
* fast path does not apply and the caller must fall back.
|
|
5287
|
+
*/
|
|
5288
|
+
extractIntegerArrayByExpressIDInto(expressID, offset, expectedTypeID, sink) {
|
|
5289
|
+
const localID = this.expressIDMap_.get(expressID);
|
|
5290
|
+
if (localID === void 0 || localID >= this.count_) {
|
|
5291
|
+
return void 0;
|
|
5292
|
+
}
|
|
5293
|
+
const element = this.entry(localID);
|
|
5294
|
+
if (element.multiMapping !== void 0 || element.typeID !== expectedTypeID) {
|
|
5295
|
+
return void 0;
|
|
5296
|
+
}
|
|
5297
|
+
if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
|
|
5298
|
+
return void 0;
|
|
5299
|
+
}
|
|
5300
|
+
const vtable = element.vtable;
|
|
5301
|
+
const buffer = element.buffer;
|
|
5302
|
+
if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
|
|
5303
|
+
return void 0;
|
|
5304
|
+
}
|
|
5305
|
+
return extractIntegerArrayAt(buffer, vtable[element.vtableIndex + offset], buffer.length, sink);
|
|
5306
|
+
}
|
|
5243
5307
|
populateVtableEntryRaw(element) {
|
|
5244
5308
|
if (element.vtableIndex !== void 0 || element.typeID === 0) {
|
|
5245
5309
|
return true;
|
|
@@ -10780,28 +10844,48 @@ var StepEntityBase = class {
|
|
|
10780
10844
|
* @return {number} How many values were appended (0 when the field is
|
|
10781
10845
|
* unset/optional-null).
|
|
10782
10846
|
*/
|
|
10783
|
-
|
|
10847
|
+
/**
|
|
10848
|
+
* Walk a reference-list field, handing each element's express ID to
|
|
10849
|
+
* `onReference` without resolving it to an entity.
|
|
10850
|
+
*
|
|
10851
|
+
* Lets hot loops decide per element how to read the referenced record
|
|
10852
|
+
* (see StepModelBase.extractIntegerArrayByExpressIDInto) instead of
|
|
10853
|
+
* paying for an entity per element the way the generated list getters
|
|
10854
|
+
* do. Inline (non-reference) elements yield `undefined`, and
|
|
10855
|
+
* `onReference` returning false aborts the walk — together those let
|
|
10856
|
+
* a caller bail out to the generated getter for anything it is not
|
|
10857
|
+
* prepared to handle.
|
|
10858
|
+
*
|
|
10859
|
+
* @param offset The offset in the vtable to extract from.
|
|
10860
|
+
* @param baseOffset The base offset of the class in the vtable.
|
|
10861
|
+
* @param depth The depth in the inheritance hierarchy.
|
|
10862
|
+
* @param onReference Receives each element's express ID, or undefined
|
|
10863
|
+
* for an inline element; return false to abort.
|
|
10864
|
+
* @return {boolean} False if the walk was aborted, true otherwise.
|
|
10865
|
+
*/
|
|
10866
|
+
forEachReferenceInField(offset, baseOffset, depth, onReference) {
|
|
10784
10867
|
let cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
10785
10868
|
const buffer = this.buffer;
|
|
10786
10869
|
const endCursor = buffer.length;
|
|
10787
10870
|
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
10788
|
-
return
|
|
10871
|
+
return true;
|
|
10789
10872
|
}
|
|
10790
|
-
let count = 0;
|
|
10791
10873
|
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
10792
10874
|
cursor = Math.abs(signedCursor0);
|
|
10793
10875
|
while (signedCursor0 >= 0) {
|
|
10794
|
-
|
|
10795
|
-
|
|
10796
|
-
throw new Error("Value in STEP was incorrectly typed");
|
|
10876
|
+
if (!onReference(stepExtractReference(buffer, cursor, endCursor))) {
|
|
10877
|
+
return false;
|
|
10797
10878
|
}
|
|
10798
10879
|
cursor = skipValue(buffer, cursor, endCursor);
|
|
10799
|
-
sink.push(value);
|
|
10800
|
-
++count;
|
|
10801
10880
|
signedCursor0 = stepExtractArrayToken(buffer, cursor, endCursor);
|
|
10802
10881
|
cursor = Math.abs(signedCursor0);
|
|
10803
10882
|
}
|
|
10804
|
-
return
|
|
10883
|
+
return true;
|
|
10884
|
+
}
|
|
10885
|
+
extractIntegerArrayInto(offset, baseOffset, depth, sink) {
|
|
10886
|
+
const cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
10887
|
+
const buffer = this.buffer;
|
|
10888
|
+
return extractIntegerArrayAt(buffer, cursor, buffer.length, sink);
|
|
10805
10889
|
}
|
|
10806
10890
|
/**
|
|
10807
10891
|
* Extract a number at the particular vtable offset (i.e. the position
|