@bldrs-ai/conway 1.442.1321 → 1.444.1334

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.
@@ -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.442.1321";
947
+ var versionString = "Conway v1.444.1334";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -2041,6 +2041,19 @@ function copyOutOfResizable(view) {
2041
2041
  function decodeUtf8(view) {
2042
2042
  return decoder.decode(decodeNeedsCopy(view.buffer) ? view.slice() : view);
2043
2043
  }
2044
+ var strictUtf8Decoder = new TextDecoder("utf-8", { fatal: true });
2045
+ function decodeStepString(view) {
2046
+ const bytes = decodeNeedsCopy(view.buffer) ? view.slice() : view;
2047
+ try {
2048
+ return strictUtf8Decoder.decode(bytes);
2049
+ } catch {
2050
+ let result = "";
2051
+ for (let where = 0; where < bytes.length; ++where) {
2052
+ result += String.fromCharCode(bytes[where]);
2053
+ }
2054
+ return result;
2055
+ }
2056
+ }
2044
2057
  var shimInstalled = false;
2045
2058
  function installResizableTextDecoderShim() {
2046
2059
  if (shimInstalled || typeof TextDecoder === "undefined") {
@@ -2728,14 +2741,14 @@ var StepStringParser = class extends ParsingDfa16Table {
2728
2741
  if (nextCursor < endCursor && input[nextCursor] === QUOTE) {
2729
2742
  result ??= "";
2730
2743
  if (cursor > reificationIndex) {
2731
- result += decodeUtf8(input.subarray(reificationIndex, cursor - 1));
2744
+ result += decodeStepString(input.subarray(reificationIndex, cursor - 1));
2732
2745
  }
2733
2746
  result += "'";
2734
2747
  cursor = nextCursor + 1;
2735
2748
  reificationIndex = cursor;
2736
2749
  } else {
2737
2750
  result ??= "";
2738
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2751
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2739
2752
  return result;
2740
2753
  }
2741
2754
  }
@@ -2761,7 +2774,7 @@ var StepStringParser = class extends ParsingDfa16Table {
2761
2774
  const nextChar2 = input[nextCursor2];
2762
2775
  if (nextChar2 !== BSLASH) {
2763
2776
  result ??= "";
2764
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2777
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2765
2778
  cursor = nextCursor2 + 1;
2766
2779
  break;
2767
2780
  }
@@ -2774,7 +2787,7 @@ var StepStringParser = class extends ParsingDfa16Table {
2774
2787
  return result;
2775
2788
  }
2776
2789
  result ??= "";
2777
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2790
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2778
2791
  codePage = nextChar3 - A2;
2779
2792
  cursor = nextCursor3 + 1;
2780
2793
  reificationIndex = cursor;
@@ -2788,7 +2801,7 @@ var StepStringParser = class extends ParsingDfa16Table {
2788
2801
  const nextChar2 = input[nextCursor2];
2789
2802
  if (nextChar2 !== BSLASH) {
2790
2803
  result ??= "";
2791
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2804
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2792
2805
  cursor = nextCursor2 + 1;
2793
2806
  break;
2794
2807
  }
@@ -2798,7 +2811,7 @@ var StepStringParser = class extends ParsingDfa16Table {
2798
2811
  }
2799
2812
  const nextChar3 = input[nextCursor3];
2800
2813
  result ??= "";
2801
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2814
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2802
2815
  if (nextChar3 < 127) {
2803
2816
  result += String.fromCharCode(nextChar3);
2804
2817
  } else if (nextChar >= 161 && nextChar <= 255) {
@@ -2817,7 +2830,7 @@ var StepStringParser = class extends ParsingDfa16Table {
2817
2830
  }
2818
2831
  const nextChar2 = input[nextCursor2];
2819
2832
  result ??= "";
2820
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
2833
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
2821
2834
  const hexParserTil0 = (count) => {
2822
2835
  if (nextCursor2 + 1 >= endCursor || input[nextCursor2 + 1] !== BSLASH) {
2823
2836
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"ap214_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/AP214E3_2010/ap214_geometry_extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ap214_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/AP214E3_2010/ap214_geometry_extraction.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ObjectPool } from "../core/native_pool.js";
4
4
  import { MemoizationCapture, RegressionCaptureState } from "../core/regression_capture_state.js";
5
5
  import { ExtractResult } from "../core/shared_constants.js";
6
6
  import Logger from "../logging/logger.js";
7
- import { advanced_brep_shape_representation, advanced_face, annotation_occurrence, axis2_placement_2d, axis2_placement_3d, b_spline_curve, b_spline_curve_with_knots, b_spline_surface, b_spline_surface_with_knots, boolean_result, cartesian_point, cartesian_transformation_operator_3d, circle, colour_rgb, composite_curve, composite_curve_segment, conical_surface, context_dependent_shape_representation, conversion_based_unit, cylindrical_surface, draughting_model, edge_curve, edge_loop, ellipse, extruded_area_solid, face, face_based_surface_model, faceted_brep, fill_area_style_colour, geometric_curve_set, geometrically_bounded_2d_wireframe_representation, geometrically_bounded_wireframe_shape_representation, global_unit_assigned_context, half_space_solid, item_defined_transformation, length_unit, line, manifold_solid_brep, mapped_item, next_assembly_usage_occurrence, over_riding_styled_item, parameter_value, pcurve, placement, plane, poly_loop, polyline, presentation_layer_assignment, product, product_definition, product_definition_shape, property_definition, rational_b_spline_curve, rational_b_spline_surface, representation_item, representation_relationship_with_transformation, seam_curve, shape_definition_representation, shape_representation, shape_representation_relationship, shell_based_surface_model, si_prefix, si_unit, spherical_surface, styled_item, surface_curve, surface_of_linear_extrusion, surface_of_revolution, surface_side, surface_style_fill_area, surface_style_rendering, surface_style_usage, toroidal_surface, trimmed_curve, trimming_preference, vertex_loop, vertex_point, view_volume, } from "./AP214E3_2010_gen/index.js";
7
+ import { advanced_brep_shape_representation, advanced_face, annotation_occurrence, axis2_placement_2d, axis2_placement_3d, b_spline_curve, b_spline_curve_with_knots, b_spline_surface, b_spline_surface_with_knots, boolean_result, cartesian_point, cartesian_transformation_operator_3d, circle, colour_rgb, composite_curve, composite_curve_segment, conical_surface, context_dependent_shape_representation, conversion_based_unit, cylindrical_surface, draughting_model, edge_curve, edge_loop, ellipse, extruded_area_solid, face, face_based_surface_model, faceted_brep, fill_area_style_colour, geometric_curve_set, geometrically_bounded_2d_wireframe_representation, geometrically_bounded_wireframe_shape_representation, global_unit_assigned_context, half_space_solid, item_defined_transformation, length_unit, line, manifold_solid_brep, mapped_item, next_assembly_usage_occurrence, over_riding_styled_item, parameter_value, pcurve, placement, plane, poly_loop, polyline, pre_defined_colour, presentation_layer_assignment, product, product_definition, product_definition_shape, property_definition, rational_b_spline_curve, rational_b_spline_surface, representation_item, representation_relationship_with_transformation, seam_curve, shape_definition_representation, shape_representation, shape_representation_relationship, shell_based_surface_model, si_prefix, si_unit, spherical_surface, styled_item, surface_curve, surface_of_linear_extrusion, surface_of_revolution, surface_side, surface_style_fill_area, surface_style_rendering, surface_style_usage, toroidal_surface, trimmed_curve, trimming_preference, vertex_loop, vertex_point, view_volume, } from "./AP214E3_2010_gen/index.js";
8
8
  import EntityTypesAP214 from "./AP214E3_2010_gen/entity_types_ap214.gen.js";
9
9
  import { AP214ProductShapeMap } from "./ap214_product_shape_map.js";
10
10
  import { AP214SceneBuilder } from "./ap214_scene_builder.js";
@@ -21,6 +21,19 @@ import { AP214SceneBuilder } from "./ap214_scene_builder.js";
21
21
  export function extractColorRGBPremultiplied(from, alpha = 1) {
22
22
  return [from.red * alpha, from.green * alpha, from.blue * alpha, alpha];
23
23
  }
24
+ // RGB values for the ISO 10303-46 pre-defined draughting colour names
25
+ // (draughting_pre_defined_colour / pre_defined_colour), which carry a name
26
+ // instead of components.
27
+ const PRE_DEFINED_COLOUR_RGB = {
28
+ "red": [1, 0, 0],
29
+ "green": [0, 1, 0],
30
+ "blue": [0, 0, 1],
31
+ "yellow": [1, 1, 0],
32
+ "magenta": [1, 0, 1],
33
+ "cyan": [0, 1, 1],
34
+ "black": [0, 0, 0],
35
+ "white": [1, 1, 1],
36
+ };
24
37
  /**
25
38
  * Extract an AP214 Colour into our RGBA color.
26
39
  *
@@ -783,18 +796,39 @@ export class AP214GeometryExtraction {
783
796
  const fillAreaColor = fillAreaStyles.find((value => value instanceof fill_area_style_colour));
784
797
  if (fillAreaColor !== void 0) {
785
798
  try {
786
- const fillColor = fillAreaColor.fill_colour;
787
- if (!(fillColor instanceof colour_rgb)) {
799
+ // `fill_colour` is the schema's colour select, but AP214
800
+ // gives pre_defined_colour TWO supertypes (colour AND
801
+ // pre_defined_item) and the single-inheritance generator
802
+ // kept only pre_defined_item — so the typed getter throws
803
+ // "incorrectly typed" for e.g.
804
+ // DRAUGHTING_PRE_DEFINED_COLOUR('white') (Onshape exports).
805
+ // Re-extract the same field (offset 1) under the type the
806
+ // generator did keep, and map the name to RGB.
807
+ let surfaceColor;
808
+ let fillColor;
809
+ try {
810
+ fillColor = fillAreaColor.fill_colour;
811
+ }
812
+ catch {
813
+ const preDefined = fillAreaColor.extractElement(1, 0, 0, true, pre_defined_colour);
814
+ const rgb = PRE_DEFINED_COLOUR_RGB[preDefined?.name?.toLowerCase() ?? ""];
815
+ if (rgb !== void 0) {
816
+ surfaceColor = [rgb[0], rgb[1], rgb[2], 1];
817
+ }
818
+ }
819
+ if (fillColor instanceof colour_rgb) {
820
+ surfaceColor = extractColorRGBPremultiplied(fillColor, 1);
821
+ }
822
+ if (surfaceColor === void 0) {
788
823
  continue;
789
824
  }
790
- const surfaceColor = extractColorRGBPremultiplied(fillColor, 1);
791
825
  newMaterial.baseColor = surfaceColor;
792
826
  newMaterial.legacyColor = surfaceColor;
793
827
  newMaterial.roughness = 1;
794
828
  }
795
829
  catch (error) {
796
- Logger.warning(`Error extracting fill area style color for expressID:
797
- #${from.expressID} - type:
830
+ Logger.warning(`Error extracting fill area style color for expressID:
831
+ #${from.expressID} - type:
798
832
  ${EntityTypesAP214[style.type]} - error: ${error}`);
799
833
  }
800
834
  }
@@ -986,9 +1020,18 @@ export class AP214GeometryExtraction {
986
1020
  */
987
1021
  extractCurve(from, parentSense = true, isEdge = false, trimmingArguments = void 0) {
988
1022
  let stepCurve;
989
- stepCurve = this.curves.get(from.localID);
990
- if (stepCurve !== void 0) {
991
- return stepCurve;
1023
+ // Edge-supplied trims are specific to one EDGE_CURVE, but `from` is the
1024
+ // shared basis curve — memoising a trimmed extraction under the basis
1025
+ // curve's localID would hand the first edge's arc to every other edge
1026
+ // sharing that curve. Trimmed extractions are memoised by the caller
1027
+ // under the EDGE_CURVE's localID instead (see extractAdvancedFace);
1028
+ // untrimmed extractions stay memoised here.
1029
+ const hasEdgeTrims = trimmingArguments?.exist === true;
1030
+ if (!hasEdgeTrims) {
1031
+ stepCurve = this.curves.get(from.localID);
1032
+ if (stepCurve !== void 0) {
1033
+ return stepCurve;
1034
+ }
992
1035
  }
993
1036
  // console.log("[extractCurve]: curve express ID: "
994
1037
  // + from.expressID + " type: " + EntityTypesAP214[from.type])
@@ -1094,7 +1137,9 @@ export class AP214GeometryExtraction {
1094
1137
  Logger.warning(`Unsupported Curve! Type: ${EntityTypesAP214[from.type]}`);
1095
1138
  return;
1096
1139
  }
1097
- this.curves.add(from.localID, stepCurve);
1140
+ if (!hasEdgeTrims) {
1141
+ this.curves.add(from.localID, stepCurve);
1142
+ }
1098
1143
  return stepCurve;
1099
1144
  }
1100
1145
  /**
@@ -2077,6 +2122,11 @@ export class AP214GeometryExtraction {
2077
2122
  }
2078
2123
  const conwayModel = this.conwayModel;
2079
2124
  const bound3DVector = this.nativeBound3DVector();
2125
+ // Loop curves are collected before bound creation so the outer-bound
2126
+ // heuristic below can compare their extents across the whole face.
2127
+ const loopCurves = [];
2128
+ const loopIsOuter = [];
2129
+ const loopOrientations = [];
2080
2130
  for (const bound of bounds) {
2081
2131
  let vec3Array;
2082
2132
  const innerBound = bound.bound;
@@ -2152,14 +2202,49 @@ export class AP214GeometryExtraction {
2152
2202
  };
2153
2203
  }
2154
2204
  }
2205
+ // EDGE_CURVE.same_sense: does the edge's start→end direction agree
2206
+ // with the basis curve's parametrisation? For same_sense=false the
2207
+ // edge sweeps from edge_start to edge_end AGAINST the curve
2208
+ // parameter. The native circle/ellipse trim (getAP214Circle) always
2209
+ // sweeps the positive parametric arc from trim1 to trim2 (its
2210
+ // senseAgreement=false path mis-negates the sweep), so ignoring
2211
+ // same_sense selects the COMPLEMENT arc — e.g. Onshape AP242
2212
+ // exports write near-straight edges as shallow arcs of large
2213
+ // circles, and the complement is a ~340° loop that explodes the
2214
+ // face boundary (Right_Hand.step spikes; the CDT "Intersecting
2215
+ // constraint edges" cascade). Normalise instead of forwarding the
2216
+ // flag: swap the trim ends so the positive sweep is the correct
2217
+ // arc, leaving the extracted (memoised) curve running edge_end →
2218
+ // edge_start; the orientation check below compensates.
2219
+ const sameSense = edgeElement.same_sense;
2155
2220
  const trimmingArguments = {
2156
2221
  exist: !!((trimmingStart !== void 0 && trimmingEnd !== void 0)),
2157
- start: trimmingStart,
2158
- end: trimmingEnd,
2222
+ start: sameSense ? trimmingStart : trimmingEnd,
2223
+ end: sameSense ? trimmingEnd : trimmingStart,
2159
2224
  };
2160
- const curve = this.extractCurve(edgeCurve, true, true, trimmingArguments);
2225
+ // Trimmed extractions are memoised under THIS edge's localID —
2226
+ // not the basis curve's — so edges sharing one basis curve with
2227
+ // different trims each get their own arc, while the second
2228
+ // ORIENTED_EDGE user of this edge (the adjacent face) still
2229
+ // reuses the extraction. extractCurve skips its basis-curve
2230
+ // memo whenever edge trims exist (see hasEdgeTrims there); the
2231
+ // shared this.curves container keeps ownership either way.
2232
+ let curve = this.curves.get(edgeElement.localID);
2233
+ if (curve === void 0) {
2234
+ curve = this.extractCurve(edgeCurve, true, true, trimmingArguments);
2235
+ if (curve !== void 0 && trimmingArguments.exist) {
2236
+ this.curves.add(edgeElement.localID, curve);
2237
+ }
2238
+ }
2161
2239
  if (curve !== void 0) {
2162
- if (!edge.orientation) {
2240
+ // The memoised curve runs edge_start→edge_end when same_sense
2241
+ // held, edge_end→edge_start when the trims were swapped above
2242
+ // (and, for untrimmed basis curves like full B-splines, native
2243
+ // point order is parametric order — reversed relative to the
2244
+ // edge exactly when same_sense is false). Traversal for this
2245
+ // ORIENTED_EDGE must run with `orientation`, so invert on the
2246
+ // XOR of the two flags rather than orientation alone.
2247
+ if (edge.orientation !== sameSense) {
2163
2248
  // reverse curve
2164
2249
  // Logger.info("edge orientation == true, inverting curve")
2165
2250
  const invertedCurve = curve.clone();
@@ -2216,9 +2301,13 @@ export class AP214GeometryExtraction {
2216
2301
  }
2217
2302
  else {
2218
2303
  Logger.warning(`Unsupported bound ${bound.bound}`);
2219
- // Free this iteration's edge-curve vector and the face's partial
2220
- // bound vector before bailing out, or they leak per bad face.
2304
+ // Free this iteration's edge-curve vector, previously collected
2305
+ // loop curves and the face's partial bound vector before bailing
2306
+ // out, or they leak per bad face.
2221
2307
  nativeEdgeCurves.delete();
2308
+ for (const loopCurve of loopCurves) {
2309
+ loopCurve.delete();
2310
+ }
2222
2311
  bound3DVector.delete();
2223
2312
  return;
2224
2313
  }
@@ -2228,11 +2317,54 @@ export class AP214GeometryExtraction {
2228
2317
  };
2229
2318
  // Logger.info("isEdgeLoop: " + (isEdgeLoop) ? "TRUE" : "FALSE")
2230
2319
  const curve = this.conwayModel.getLoop(parameters);
2231
- // create bound vector
2320
+ loopCurves.push(curve);
2321
+ loopIsOuter.push(bound.type === EntityTypesAP214.FACE_OUTER_BOUND);
2322
+ loopOrientations.push(bound.orientation);
2323
+ vec3Array.delete();
2324
+ nativeEdgeCurves.delete();
2325
+ }
2326
+ // STEP allows a face's loops to all be plain FACE_BOUNDs; without a
2327
+ // FACE_OUTER_BOUND the native triangulators would warn ("Expected outer
2328
+ // bound, using fallback tesselation") and treat loops[0] as outer, which
2329
+ // is only right by luck (Onshape AP242 exports order hole loops first on
2330
+ // some faces). A face's outer loop strictly contains its holes, so tag
2331
+ // the loop with the largest bounding-box diagonal as the outer one.
2332
+ if (loopCurves.length > 1 && !loopIsOuter.includes(true)) {
2333
+ let largestIndex = 0;
2334
+ let largestDiagonal2 = -1;
2335
+ for (let loopIndex = 0; loopIndex < loopCurves.length; ++loopIndex) {
2336
+ const loopCurve = loopCurves[loopIndex];
2337
+ const pointCount = loopCurve.getPointsSize();
2338
+ let minX = Infinity;
2339
+ let minY = Infinity;
2340
+ let minZ = Infinity;
2341
+ let maxX = -Infinity;
2342
+ let maxY = -Infinity;
2343
+ let maxZ = -Infinity;
2344
+ for (let where = 0; where < pointCount; ++where) {
2345
+ const point = loopCurve.get3d(where);
2346
+ minX = Math.min(minX, point.x);
2347
+ minY = Math.min(minY, point.y);
2348
+ minZ = Math.min(minZ, point.z);
2349
+ maxX = Math.max(maxX, point.x);
2350
+ maxY = Math.max(maxY, point.y);
2351
+ maxZ = Math.max(maxZ, point.z);
2352
+ }
2353
+ const diagonal2 = ((maxX - minX) * (maxX - minX)) +
2354
+ ((maxY - minY) * (maxY - minY)) +
2355
+ ((maxZ - minZ) * (maxZ - minZ));
2356
+ if (pointCount > 0 && diagonal2 > largestDiagonal2) {
2357
+ largestDiagonal2 = diagonal2;
2358
+ largestIndex = loopIndex;
2359
+ }
2360
+ }
2361
+ loopIsOuter[largestIndex] = true;
2362
+ }
2363
+ for (let loopIndex = 0; loopIndex < loopCurves.length; ++loopIndex) {
2232
2364
  const parametersCreateBounds3D = {
2233
- curve: curve,
2234
- orientation: bound.orientation,
2235
- type: (bound.type === EntityTypesAP214.FACE_OUTER_BOUND) ? 0 : 1,
2365
+ curve: loopCurves[loopIndex],
2366
+ orientation: loopOrientations[loopIndex],
2367
+ type: loopIsOuter[loopIndex] ? 0 : 1,
2236
2368
  };
2237
2369
  const bound3D = this.conwayModel.createBound3D(parametersCreateBounds3D);
2238
2370
  bound3DVector.push_back(bound3D);
@@ -2240,9 +2372,7 @@ export class AP214GeometryExtraction {
2240
2372
  // bound wrapper are temporaries that must be freed to avoid leaking
2241
2373
  // native memory on every face bound.
2242
2374
  bound3D.delete();
2243
- curve.delete();
2244
- vec3Array.delete();
2245
- nativeEdgeCurves.delete();
2375
+ loopCurves[loopIndex].delete();
2246
2376
  }
2247
2377
  const surface = from.face_geometry;
2248
2378
  // add face to geometry
@@ -112,7 +112,12 @@ describe("AP214 Geometry Extraction", () => {
112
112
  expect(getTubeMeshSize()).toBe(testParameter);
113
113
  });
114
114
  test("gearGeometryArrayLength()", () => {
115
- const testParameter = 48108;
115
+ // Raised from 48108 with the extent-relative deflection thresholds
116
+ // (conway-geom relativeCurveDeflectionSquared): the gear's involute
117
+ // flank splines are a few mm across, so the old absolute 1mm chord
118
+ // tolerance sampled them with ~3 chords per flank; 0.1%-of-extent
119
+ // tolerance resolves the involute curvature the profile actually has.
120
+ const testParameter = 154644;
116
121
  expect(getGearMeshSize()).toBe(testParameter);
117
122
  });
118
123
  test("uniformScaleAffine scales basis AND translation, preserves bottom row", () => {
@@ -27,6 +27,21 @@
27
27
  * @return The decoded string.
28
28
  */
29
29
  export declare function decodeUtf8(view: Uint8Array): string;
30
+ /**
31
+ * Decode the raw byte run of a STEP string literal.
32
+ *
33
+ * ISO 10303-21 says raw (non-\X\-escaped) bytes are ISO 8859-1, but modern
34
+ * exporters routinely write UTF-8 (and some, like Onshape's ST-Developer,
35
+ * write outright invalid sequences). The lenient default decoder mapped every
36
+ * non-UTF-8 byte to U+FFFD, so a spec-conformant latin-1 'Küche' surfaced as
37
+ * 'K�che' in product names and titles. Decode as strict UTF-8 first (the
38
+ * common modern case, and unambiguous when it validates), and fall back to
39
+ * exact ISO 8859-1 (byte = code point, which cannot fail) when it doesn't.
40
+ *
41
+ * @param view The bytes of the string literal's raw run.
42
+ * @return The decoded string.
43
+ */
44
+ export declare function decodeStepString(view: Uint8Array): string;
30
45
  /**
31
46
  * Install a global, idempotent `TextDecoder.prototype.decode` shim that copies a
32
47
  * view out of a resizable/growable buffer before decoding. This covers decodes
@@ -1 +1 @@
1
- {"version":3,"file":"decode_utf8.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/decode_utf8.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA+BH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEnD;AAID;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAqBtD"}
1
+ {"version":3,"file":"decode_utf8.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/decode_utf8.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA+BH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEnD;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAczD;AAID;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAqBtD"}
@@ -54,6 +54,34 @@ function copyOutOfResizable(view) {
54
54
  export function decodeUtf8(view) {
55
55
  return decoder.decode(decodeNeedsCopy(view.buffer) ? view.slice() : view);
56
56
  }
57
+ const strictUtf8Decoder = new TextDecoder('utf-8', { fatal: true });
58
+ /**
59
+ * Decode the raw byte run of a STEP string literal.
60
+ *
61
+ * ISO 10303-21 says raw (non-\X\-escaped) bytes are ISO 8859-1, but modern
62
+ * exporters routinely write UTF-8 (and some, like Onshape's ST-Developer,
63
+ * write outright invalid sequences). The lenient default decoder mapped every
64
+ * non-UTF-8 byte to U+FFFD, so a spec-conformant latin-1 'Küche' surfaced as
65
+ * 'K�che' in product names and titles. Decode as strict UTF-8 first (the
66
+ * common modern case, and unambiguous when it validates), and fall back to
67
+ * exact ISO 8859-1 (byte = code point, which cannot fail) when it doesn't.
68
+ *
69
+ * @param view The bytes of the string literal's raw run.
70
+ * @return The decoded string.
71
+ */
72
+ export function decodeStepString(view) {
73
+ const bytes = decodeNeedsCopy(view.buffer) ? view.slice() : view;
74
+ try {
75
+ return strictUtf8Decoder.decode(bytes);
76
+ }
77
+ catch {
78
+ let result = '';
79
+ for (let where = 0; where < bytes.length; ++where) {
80
+ result += String.fromCharCode(bytes[where]);
81
+ }
82
+ return result;
83
+ }
84
+ }
57
85
  let shimInstalled = false;
58
86
  /**
59
87
  * Install a global, idempotent `TextDecoder.prototype.decode` shim that copies a
@@ -1,6 +1,6 @@
1
1
  import ParsingConstants from "../../parsing/parsing_constants.js";
2
2
  import ParsingDfa16Table from "../../parsing/parsing_dfa_16table.js";
3
- import { decodeUtf8, installResizableTextDecoderShim } from "./decode_utf8.js";
3
+ import { decodeStepString, installResizableTextDecoderShim } from "./decode_utf8.js";
4
4
  // Emscripten 6's browser wasm heap is a resizable ArrayBuffer, on which strict
5
5
  // browsers' TextDecoder.decode() throws — including the glue's own UTF8ToString
6
6
  // during geometry extraction. Install the global copy-first shim as the STEP
@@ -76,7 +76,7 @@ class StepStringParser extends ParsingDfa16Table {
76
76
  if (nextCursor < endCursor && input[nextCursor] === QUOTE) {
77
77
  result ??= "";
78
78
  if (cursor > reificationIndex) {
79
- result += decodeUtf8(input.subarray(reificationIndex, cursor - 1));
79
+ result += decodeStepString(input.subarray(reificationIndex, cursor - 1));
80
80
  }
81
81
  result += "'";
82
82
  cursor = nextCursor + 1;
@@ -84,7 +84,7 @@ class StepStringParser extends ParsingDfa16Table {
84
84
  }
85
85
  else {
86
86
  result ??= "";
87
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
87
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
88
88
  return result;
89
89
  }
90
90
  }
@@ -111,7 +111,7 @@ class StepStringParser extends ParsingDfa16Table {
111
111
  const nextChar2 = input[nextCursor2];
112
112
  if (nextChar2 !== BSLASH) {
113
113
  result ??= "";
114
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
114
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
115
115
  cursor = nextCursor2 + 1;
116
116
  break;
117
117
  }
@@ -124,7 +124,7 @@ class StepStringParser extends ParsingDfa16Table {
124
124
  return result;
125
125
  }
126
126
  result ??= "";
127
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
127
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
128
128
  codePage = nextChar3 - A;
129
129
  cursor = nextCursor3 + 1;
130
130
  reificationIndex = cursor;
@@ -138,7 +138,7 @@ class StepStringParser extends ParsingDfa16Table {
138
138
  const nextChar2 = input[nextCursor2];
139
139
  if (nextChar2 !== BSLASH) {
140
140
  result ??= "";
141
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
141
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
142
142
  cursor = nextCursor2 + 1;
143
143
  break;
144
144
  }
@@ -148,7 +148,7 @@ class StepStringParser extends ParsingDfa16Table {
148
148
  }
149
149
  const nextChar3 = input[nextCursor3];
150
150
  result ??= "";
151
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
151
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
152
152
  /* eslint-disable no-magic-numbers */
153
153
  if (nextChar3 < 127) {
154
154
  result += String.fromCharCode(nextChar3);
@@ -171,7 +171,7 @@ class StepStringParser extends ParsingDfa16Table {
171
171
  }
172
172
  const nextChar2 = input[nextCursor2];
173
173
  result ??= "";
174
- result += decodeUtf8(input.subarray(reificationIndex, cursor));
174
+ result += decodeStepString(input.subarray(reificationIndex, cursor));
175
175
  const hexParserTil0 = (count) => {
176
176
  if (nextCursor2 + 1 >= endCursor || input[nextCursor2 + 1] !== BSLASH) {
177
177
  return false;
@@ -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 v1.442.1321';
8
+ const versionString = 'Conway v1.444.1334';
9
9
  export { versionString };