@bldrs-ai/conway 1.376.1184 → 1.378.1185

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.
@@ -1426,7 +1426,11 @@ var stringParser = step_string_parser_default.Instance.match;
1426
1426
  var HASH = parsing_constants_default.HASH;
1427
1427
  var ZERO4 = parsing_constants_default.ZERO;
1428
1428
  var SLASH2 = parsing_constants_default.SLASH;
1429
- var parsingBufferReusable = new ParsingBuffer(new Uint8Array(1), 0, 1);
1429
+ var EMPTY_PARSING_BYTES = new Uint8Array(1);
1430
+ var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
1431
+ function releaseScratchParsingBuffer() {
1432
+ parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
1433
+ }
1430
1434
  function NVL(testValue, replaceValue) {
1431
1435
  return testValue ?? replaceValue;
1432
1436
  }
@@ -4417,6 +4421,7 @@ var StepModelBase = class {
4417
4421
  invalidate(dropVtable = false) {
4418
4422
  if (dropVtable) {
4419
4423
  this.vtableBuilder_.clear(true);
4424
+ releaseScratchParsingBuffer();
4420
4425
  this.descriptorCache_ = [];
4421
4426
  if (this.complexEntries_ !== void 0) {
4422
4427
  for (const item of this.complexEntries_.values()) {
@@ -70042,7 +70047,7 @@ IfcStepParser.Instance = new IfcStepParser();
70042
70047
  var ifc_step_parser_default = IfcStepParser;
70043
70048
 
70044
70049
  // compiled/src/version/version.js
70045
- var versionString = "Conway Web-Ifc Shim v1.376.1184";
70050
+ var versionString = "Conway Web-Ifc Shim v1.378.1185";
70046
70051
 
70047
70052
  // compiled/src/statistics/statistics.js
70048
70053
  var Statistics = class {
@@ -16361,7 +16361,11 @@ var stringParser = step_string_parser_default.Instance.match;
16361
16361
  var HASH = parsing_constants_default.HASH;
16362
16362
  var ZERO4 = parsing_constants_default.ZERO;
16363
16363
  var SLASH2 = parsing_constants_default.SLASH;
16364
- var parsingBufferReusable = new ParsingBuffer(new Uint8Array(1), 0, 1);
16364
+ var EMPTY_PARSING_BYTES = new Uint8Array(1);
16365
+ var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
16366
+ function releaseScratchParsingBuffer() {
16367
+ parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
16368
+ }
16365
16369
  function NVL(testValue, replaceValue) {
16366
16370
  return testValue ?? replaceValue;
16367
16371
  }
@@ -19352,6 +19356,7 @@ var StepModelBase = class {
19352
19356
  invalidate(dropVtable = false) {
19353
19357
  if (dropVtable) {
19354
19358
  this.vtableBuilder_.clear(true);
19359
+ releaseScratchParsingBuffer();
19355
19360
  this.descriptorCache_ = [];
19356
19361
  if (this.complexEntries_ !== void 0) {
19357
19362
  for (const item of this.complexEntries_.values()) {
@@ -86283,7 +86288,7 @@ var IfcSceneBuilder = class {
86283
86288
  };
86284
86289
 
86285
86290
  // compiled/src/version/version.js
86286
- var versionString = "Conway Web-Ifc Shim v1.376.1184";
86291
+ var versionString = "Conway Web-Ifc Shim v1.378.1185";
86287
86292
 
86288
86293
  // compiled/src/statistics/statistics.js
86289
86294
  var Statistics = class {
@@ -16361,7 +16361,11 @@ var stringParser = step_string_parser_default.Instance.match;
16361
16361
  var HASH = parsing_constants_default.HASH;
16362
16362
  var ZERO4 = parsing_constants_default.ZERO;
16363
16363
  var SLASH2 = parsing_constants_default.SLASH;
16364
- var parsingBufferReusable = new ParsingBuffer(new Uint8Array(1), 0, 1);
16364
+ var EMPTY_PARSING_BYTES = new Uint8Array(1);
16365
+ var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
16366
+ function releaseScratchParsingBuffer() {
16367
+ parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
16368
+ }
16365
16369
  function NVL(testValue, replaceValue) {
16366
16370
  return testValue ?? replaceValue;
16367
16371
  }
@@ -19232,6 +19236,7 @@ var StepModelBase = class {
19232
19236
  invalidate(dropVtable = false) {
19233
19237
  if (dropVtable) {
19234
19238
  this.vtableBuilder_.clear(true);
19239
+ releaseScratchParsingBuffer();
19235
19240
  this.descriptorCache_ = [];
19236
19241
  if (this.complexEntries_ !== void 0) {
19237
19242
  for (const item of this.complexEntries_.values()) {
@@ -79734,7 +79739,7 @@ var ExtractResult;
79734
79739
  })(ExtractResult || (ExtractResult = {}));
79735
79740
 
79736
79741
  // compiled/src/version/version.js
79737
- var versionString = "Conway Web-Ifc Shim v1.376.1184";
79742
+ var versionString = "Conway Web-Ifc Shim v1.378.1185";
79738
79743
 
79739
79744
  // compiled/src/statistics/statistics.js
79740
79745
  var Statistics = class {
@@ -2340,7 +2340,11 @@ var stringParser = step_string_parser_default.Instance.match;
2340
2340
  var HASH = parsing_constants_default.HASH;
2341
2341
  var ZERO4 = parsing_constants_default.ZERO;
2342
2342
  var SLASH2 = parsing_constants_default.SLASH;
2343
- var parsingBufferReusable = new ParsingBuffer(new Uint8Array(1), 0, 1);
2343
+ var EMPTY_PARSING_BYTES = new Uint8Array(1);
2344
+ var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
2345
+ function releaseScratchParsingBuffer() {
2346
+ parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
2347
+ }
2344
2348
  function NVL(testValue, replaceValue) {
2345
2349
  return testValue ?? replaceValue;
2346
2350
  }
@@ -4415,6 +4419,7 @@ var StepModelBase = class {
4415
4419
  invalidate(dropVtable = false) {
4416
4420
  if (dropVtable) {
4417
4421
  this.vtableBuilder_.clear(true);
4422
+ releaseScratchParsingBuffer();
4418
4423
  this.descriptorCache_ = [];
4419
4424
  if (this.complexEntries_ !== void 0) {
4420
4425
  for (const item of this.complexEntries_.values()) {
@@ -70040,7 +70045,7 @@ IfcStepParser.Instance = new IfcStepParser();
70040
70045
  var ifc_step_parser_default = IfcStepParser;
70041
70046
 
70042
70047
  // compiled/src/version/version.js
70043
- var versionString = "Conway Web-Ifc Shim v1.376.1184";
70048
+ var versionString = "Conway Web-Ifc Shim v1.378.1185";
70044
70049
 
70045
70050
  // compiled/src/statistics/statistics.js
70046
70051
  var Statistics = class {
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Drop the module-level scratch parsing buffer's reference to the last
3
+ * buffer it read from.
4
+ *
5
+ * The scratch is `reinit`-pointed at a caller's buffer on every numeric
6
+ * extraction and never cleared, so after a parse it silently pins the
7
+ * ENTIRE source buffer (hundreds of MB on large models) until the next
8
+ * extraction repoints it. That was invisible while the model itself
9
+ * held the source, but once `spillSourceToExternalStore` releases the
10
+ * model's copy this scratch became the last thing keeping it alive
11
+ * (found via heap-snapshot retainer chain:
12
+ * `Context[parsingBufferReusable] → ParsingBuffer.buffer → source`).
13
+ * Called from the model's spill and cache-release paths; safe at any
14
+ * time because every use reinits the scratch first.
15
+ */
16
+ export declare function releaseScratchParsingBuffer(): void;
1
17
  /**
2
18
  * NVL is a null coalescing function required for STEP.
3
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"AAiCA;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAE9E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAEvE;AAGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAUvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CAM1C;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,IAAI,GAAG,SAAS,CAwBlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,SAAS,CAgB3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,CA2E/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0B9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0C9B;AAED;;;;;;;;;GASG;AACH,wBAAiB,gBAAgB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,gBAAgB,CAAE,MAAM,CAAE,CAkGlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CA4C1C;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,GAAG,SAAS,CAsC3C;AAED,QAAA,MAAM,eAAe,8JAAkC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,QAAA,MAAM,iBAAiB,iGAAoC,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,QAAA,MAAM,iBAAiB,4FAAiC,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAGD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAE9E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAEvE;AAGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAUvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CAM1C;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,IAAI,GAAG,SAAS,CAwBlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,SAAS,CAgB3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,CA2E/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0B9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0C9B;AAED;;;;;;;;;GASG;AACH,wBAAiB,gBAAgB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,gBAAgB,CAAE,MAAM,CAAE,CAkGlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CA4C1C;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,GAAG,SAAS,CAsC3C;AAED,QAAA,MAAM,eAAe,8JAAkC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,QAAA,MAAM,iBAAiB,iGAAoC,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,QAAA,MAAM,iBAAiB,4FAAiC,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -24,7 +24,26 @@ const stringParser = StepStringParser.Instance.match;
24
24
  const HASH = ParsingConstants.HASH;
25
25
  const ZERO = ParsingConstants.ZERO;
26
26
  const SLASH = ParsingConstants.SLASH;
27
- const parsingBufferReusable = new ParsingBuffer(new Uint8Array(1), 0, 1);
27
+ const EMPTY_PARSING_BYTES = new Uint8Array(1);
28
+ const parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
29
+ /**
30
+ * Drop the module-level scratch parsing buffer's reference to the last
31
+ * buffer it read from.
32
+ *
33
+ * The scratch is `reinit`-pointed at a caller's buffer on every numeric
34
+ * extraction and never cleared, so after a parse it silently pins the
35
+ * ENTIRE source buffer (hundreds of MB on large models) until the next
36
+ * extraction repoints it. That was invisible while the model itself
37
+ * held the source, but once `spillSourceToExternalStore` releases the
38
+ * model's copy this scratch became the last thing keeping it alive
39
+ * (found via heap-snapshot retainer chain:
40
+ * `Context[parsingBufferReusable] → ParsingBuffer.buffer → source`).
41
+ * Called from the model's spill and cache-release paths; safe at any
42
+ * time because every use reinits the scratch first.
43
+ */
44
+ export function releaseScratchParsingBuffer() {
45
+ parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
46
+ }
28
47
  /**
29
48
  * NVL is a null coalescing function required for STEP.
30
49
  *
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=step_deserialization_functions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step_deserialization_functions.test.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ // Pins for the module-level scratch parsing buffer used by numeric
2
+ // extraction. The scratch is reinit-pointed at the caller's buffer on
3
+ // every read and, without an explicit release, silently pins the LAST
4
+ // buffer it saw — after a parse, the model's entire source. The
5
+ // model's cache-release/spill path calls releaseScratchParsingBuffer()
6
+ // to drop that pin (heap-snapshot verified: the source ArrayBuffer is
7
+ // unreachable after spill + release, where before it was retained via
8
+ // Context[parsingBufferReusable] → ParsingBuffer.buffer).
9
+ import { describe, expect, test } from "@jest/globals";
10
+ import { releaseScratchParsingBuffer, stepExtractNumber, } from "./step_deserialization_functions.js";
11
+ const REAL_VALUE = 42.5;
12
+ const INT_VALUE = 7;
13
+ describe("releaseScratchParsingBuffer", () => {
14
+ test("extraction works again after a release (scratch reinits on use)", () => {
15
+ const bytes = new TextEncoder().encode("42.5,");
16
+ expect(stepExtractNumber(bytes, 0, bytes.length)).toBe(REAL_VALUE);
17
+ releaseScratchParsingBuffer();
18
+ // The release must not break subsequent extraction — every use
19
+ // reinits the scratch with the caller's buffer.
20
+ const more = new TextEncoder().encode("7,");
21
+ expect(stepExtractNumber(more, 0, more.length)).toBe(INT_VALUE);
22
+ // And releasing twice is harmless.
23
+ releaseScratchParsingBuffer();
24
+ releaseScratchParsingBuffer();
25
+ expect(stepExtractNumber(bytes, 0, bytes.length)).toBe(REAL_VALUE);
26
+ });
27
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { releaseScratchParsingBuffer } from "./parsing/step_deserialization_functions.js";
1
2
  import { ResidentStepBufferProvider, WindowedStepBufferProvider, } from "./step_buffer_provider.js";
2
3
  import StepVtableBuilder from "./parsing/step_vtable_builder.js";
3
4
  import { extractOneHotLow } from "../indexing/bit_operations.js";
@@ -151,6 +152,15 @@ export default class StepModelBase {
151
152
  invalidate(dropVtable = false) {
152
153
  if (dropVtable) {
153
154
  this.vtableBuilder_.clear(true);
155
+ // The module-level scratch parsing buffer stays pointed at the
156
+ // last buffer a numeric extraction read from — after a parse,
157
+ // that's this model's FULL source. Releasing caches (and
158
+ // especially spilling the source, which routes through here)
159
+ // must drop that pin too, or the released source stays alive
160
+ // via the scratch (heap-snapshot verified). Safe globally: every
161
+ // use reinits the scratch first, and any other live model just
162
+ // repoints it on its next read.
163
+ releaseScratchParsingBuffer();
154
164
  // Common entries: drop their materialised descriptors outright — this is
155
165
  // the memory the old retained object array could never release. They
156
166
  // rematerialise from the columns on next access.
@@ -5,5 +5,5 @@
5
5
  // only the first segment (major) is meaningful and is the one CI carries forward.
6
6
  // Must stay in `vN.N.N` shape: the CI stamp regex, scripts/updateVersion.mjs, and
7
7
  // statistics.ts all match `v\d+\.\d+\.\d+`.
8
- const versionString = 'Conway Web-Ifc Shim v1.376.1184';
8
+ const versionString = 'Conway Web-Ifc Shim v1.378.1185';
9
9
  export { versionString };