@itwin/ecschema-rpcinterface-tests 4.2.0-dev.17 → 4.2.0-dev.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"_0062.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\17\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.4.7\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_0062.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\4\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.4.7\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -89898,10 +89898,11 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
89898
89898
  }
89899
89899
  if (0 === elevation && !modelTransform && !scriptTransform)
89900
89900
  return undefined;
89901
- const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(args.output);
89902
- transform.origin.z = elevation;
89903
- if (modelTransform)
89904
- transform.multiplyTransformTransform(modelTransform, transform);
89901
+ const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createTranslationXYZ(0, 0, elevation);
89902
+ if (modelTransform?.premultiply)
89903
+ modelTransform.transform.multiplyTransformTransform(transform, transform);
89904
+ if (modelTransform && !modelTransform.premultiply)
89905
+ transform.multiplyTransformTransform(modelTransform.transform, transform);
89905
89906
  if (scriptTransform)
89906
89907
  transform.multiplyTransformTransform(scriptTransform, transform);
89907
89908
  return transform;
@@ -95202,7 +95203,16 @@ function createWorkerProxy(workerJsPath) {
95202
95203
  const tasks = new Map();
95203
95204
  let curMsgId = 0;
95204
95205
  let terminated = false;
95205
- const worker = new Worker(workerJsPath);
95206
+ let worker;
95207
+ const sameOrigin = workerJsPath.substring(0, globalThis.origin.length) === globalThis.origin;
95208
+ if (sameOrigin || !workerJsPath.startsWith("http")) {
95209
+ worker = new Worker(workerJsPath);
95210
+ }
95211
+ else {
95212
+ const workerBlob = new Blob([`importScripts("${workerJsPath}");`]);
95213
+ const workerBlobUrl = URL.createObjectURL(workerBlob);
95214
+ worker = new Worker(workerBlobUrl);
95215
+ }
95206
95216
  worker.onmessage = (e) => {
95207
95217
  const response = e.data;
95208
95218
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(typeof response === "object");
@@ -98415,7 +98425,7 @@ function splitMeshParams(args) {
98415
98425
  const result = new Map();
98416
98426
  const mat = args.params.surface.material;
98417
98427
  const atlasOffset = undefined !== mat && mat.isAtlas ? mat.vertexTableOffset : undefined;
98418
- const atlasInfo = atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
98428
+ const atlasInfo = undefined !== atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
98419
98429
  const nodes = VertexTableSplitter.split({
98420
98430
  indices: args.params.surface.indices,
98421
98431
  vertices: args.params.vertices,
@@ -141858,7 +141868,9 @@ class PrimaryTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTr
141858
141868
  computeTransform(tree) {
141859
141869
  const baseTf = this.computeBaseTransform(tree);
141860
141870
  const displayTf = this.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.model.id);
141861
- return displayTf ? baseTf.multiplyTransformTransform(displayTf, displayTf) : baseTf;
141871
+ if (!displayTf)
141872
+ return baseTf;
141873
+ return displayTf.premultiply ? displayTf.transform.multiplyTransformTransform(baseTf) : baseTf.multiplyTransformTransform(displayTf.transform);
141862
141874
  }
141863
141875
  }
141864
141876
  /** @internal */
@@ -145845,7 +145857,7 @@ class TileDrawArgs {
145845
145857
  }
145846
145858
  computePixelSizeScaleFactor() {
145847
145859
  // Check to see if a model display transform with non-uniform scaling is being used.
145848
- const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.matrix;
145860
+ const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.transform.matrix;
145849
145861
  if (!mat)
145850
145862
  return 1;
145851
145863
  const scale = [0, 1, 2].map((x) => mat.getColumn(x).magnitude());
@@ -181110,7 +181122,7 @@ __webpack_require__.r(__webpack_exports__);
181110
181122
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
181111
181123
  /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
181112
181124
  /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
181113
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.ConsolidateAdjacentCurvePrimitivesOptions),
181125
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
181114
181126
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
181115
181127
  /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
181116
181128
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
@@ -182256,10 +182268,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
182256
182268
  const uy = this._matrix.at(1, 0);
182257
182269
  const vx = this._matrix.at(0, 1);
182258
182270
  const vy = this._matrix.at(1, 1);
182259
- const axx = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
182260
- const ayy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
182261
- const axy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
182262
- if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(axx, ayy, axy) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(axx, ayy))
182271
+ const dotUU = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
182272
+ const dotVV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
182273
+ const dotUV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
182274
+ if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(dotUU, dotVV, dotUV) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(dotUU, dotVV))
182263
182275
  return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.hypotenuseXY(ux, uy);
182264
182276
  return undefined;
182265
182277
  }
@@ -183671,7 +183683,6 @@ CurveChainWithDistanceIndex._numCandidate = 0;
183671
183683
  __webpack_require__.r(__webpack_exports__);
183672
183684
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
183673
183685
  /* harmony export */ BagOfCurves: () => (/* binding */ BagOfCurves),
183674
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
183675
183686
  /* harmony export */ CurveChain: () => (/* binding */ CurveChain),
183676
183687
  /* harmony export */ CurveCollection: () => (/* binding */ CurveCollection)
183677
183688
  /* harmony export */ });
@@ -184072,22 +184083,6 @@ class BagOfCurves extends CurveCollection {
184072
184083
  return handler.handleBagOfCurves(this);
184073
184084
  }
184074
184085
  }
184075
- /**
184076
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
184077
- * @public
184078
- */
184079
- class ConsolidateAdjacentCurvePrimitivesOptions {
184080
- constructor() {
184081
- /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
184082
- this.consolidateLinearGeometry = true;
184083
- /** True to consolidate contiguous arcs */
184084
- this.consolidateCompatibleArcs = true;
184085
- /** Tolerance for collapsing identical points */
184086
- this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
184087
- /** Tolerance for removing interior colinear points. */
184088
- this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
184089
- }
184090
- }
184091
184086
 
184092
184087
 
184093
184088
  /***/ }),
@@ -184198,6 +184193,9 @@ class CurveCurve {
184198
184193
  * * Close approach xy-distances are measured without regard to z. This is equivalent to their separation distance
184199
184194
  * as seen in the top view, or as measured between their projections onto the xy-plane.
184200
184195
  * * If more than one approach is returned, one of them is the closest approach.
184196
+ * * If an input curve is a `CurveCollection`, then close approaches are computed to each `CurvePrimitive` child.
184197
+ * This can lead to many returned pairs, especially when both inputs are `CurveCollection`s. If an input curve is
184198
+ * an `AnyRegion` then close approaches are computed only to the boundary curves, not to the interior.
184201
184199
  * @param curveA first curve
184202
184200
  * @param curveB second curve
184203
184201
  * @param maxDistance maximum xy-distance to consider between the curves.
@@ -189305,10 +189303,10 @@ __webpack_require__.r(__webpack_exports__);
189305
189303
  /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
189306
189304
  /* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
189307
189305
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
189308
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
189309
189306
  /* harmony import */ var _CurveFactory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
189310
189307
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
189311
189308
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
189309
+ /* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
189312
189310
  /*---------------------------------------------------------------------------------------------
189313
189311
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
189314
189312
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -189332,7 +189330,7 @@ __webpack_require__.r(__webpack_exports__);
189332
189330
  class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__.NullGeometryHandler {
189333
189331
  constructor(options) {
189334
189332
  super();
189335
- this._options = options ? options : new _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
189333
+ this._options = options ? options : new _RegionOps__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
189336
189334
  }
189337
189335
  /** look for adjacent compatible primitives in a path or loop. */
189338
189336
  handleCurveChain(g) {
@@ -190892,6 +190890,7 @@ class RegionMomentsXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
190892
190890
  "use strict";
190893
190891
  __webpack_require__.r(__webpack_exports__);
190894
190892
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
190893
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
190895
190894
  /* harmony export */ RegionBinaryOpType: () => (/* binding */ RegionBinaryOpType),
190896
190895
  /* harmony export */ RegionOps: () => (/* binding */ RegionOps)
190897
190896
  /* harmony export */ });
@@ -191614,6 +191613,22 @@ function pushToInOnOutArrays(curve, select, arrayNegative, array0, arrayPositive
191614
191613
  else
191615
191614
  array0.push(curve);
191616
191615
  }
191616
+ /**
191617
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
191618
+ * @public
191619
+ */
191620
+ class ConsolidateAdjacentCurvePrimitivesOptions {
191621
+ constructor() {
191622
+ /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
191623
+ this.consolidateLinearGeometry = true;
191624
+ /** True to consolidate contiguous arcs */
191625
+ this.consolidateCompatibleArcs = true;
191626
+ /** Tolerance for collapsing identical points */
191627
+ this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
191628
+ /** Tolerance for removing interior colinear points. */
191629
+ this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
191630
+ }
191631
+ }
191617
191632
 
191618
191633
 
191619
191634
  /***/ }),
@@ -193662,7 +193677,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193662
193677
  fractionB = 1;
193663
193678
  this._workPointB = pointB0.interpolate(fractionB, pointB1, this._workPointB);
193664
193679
  const distanceSquared = this._workPointB.distanceSquaredXY(pointA);
193665
- if (distanceSquared < Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
193680
+ if (distanceSquared <= Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
193666
193681
  closestApproach.detailA.setFP(fractionA, pointA, undefined, distanceSquared);
193667
193682
  closestApproach.detailB.setFP(fractionB, this._workPointB, undefined, distanceSquared);
193668
193683
  updated = true;
@@ -193705,23 +193720,23 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193705
193720
  closestApproach.detailA.a = 2 * maxDistanceSquared; // init to an approach that's too far away
193706
193721
  let reversed = false;
193707
193722
  const uu = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(ux, uy);
193708
- if (hab0 * hab0 < maxDistanceSquared * uu) { // test distance of b0 to u
193723
+ if (hab0 * hab0 <= maxDistanceSquared * uu) { // test distance of b0 to u
193709
193724
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e00x, e00y) / uu;
193710
193725
  if (this.updatePointToSegmentDistance(0, b0, a0, a1, fractionA, maxDistanceSquared, closestApproach))
193711
193726
  reversed = true;
193712
193727
  }
193713
- if (hab1 * hab1 < maxDistanceSquared * uu) { // test distance of b1 to u
193728
+ if (hab1 * hab1 <= maxDistanceSquared * uu) { // test distance of b1 to u
193714
193729
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e01x, e01y) / uu;
193715
193730
  if (this.updatePointToSegmentDistance(1, b1, a0, a1, fractionA, maxDistanceSquared, closestApproach))
193716
193731
  reversed = true;
193717
193732
  }
193718
193733
  const vv = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(vx, vy);
193719
- if (hba0 * hba0 < maxDistanceSquared * vv) { // test distance of a0 to v
193734
+ if (hba0 * hba0 <= maxDistanceSquared * vv) { // test distance of a0 to v
193720
193735
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e00x, e00y) / vv;
193721
193736
  if (this.updatePointToSegmentDistance(0, a0, b0, b1, fractionB, maxDistanceSquared, closestApproach))
193722
193737
  reversed = false;
193723
193738
  }
193724
- if (hba1 * hba1 < maxDistanceSquared * vv) { // test distance of a1 to v
193739
+ if (hba1 * hba1 <= maxDistanceSquared * vv) { // test distance of a1 to v
193725
193740
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv;
193726
193741
  if (this.updatePointToSegmentDistance(1, a1, b0, b1, fractionB, maxDistanceSquared, closestApproach))
193727
193742
  reversed = false;
@@ -193799,10 +193814,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193799
193814
  * Low level dispatch of segment with arc.
193800
193815
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
193801
193816
  * To consider:
193802
- * 1) arc endpoints to segment endpoints or arc endpoints projection to the segment.
193803
- * 2) intersection between arc and segment.
193817
+ * 1) intersection between arc and segment.
193818
+ * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
193804
193819
  * 3) line parallel to arc tangent.
193805
- * @param cpA the segment
193820
+ * @param cpA curve A (line segment or line string)
193806
193821
  * @param pointA0 start point of the segment
193807
193822
  * @param fractionA0 fraction of the start of the segment
193808
193823
  * @param pointA1 end point of the segment
@@ -193811,9 +193826,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193811
193826
  * @param reversed true to have order reversed in final structures
193812
193827
  */
193813
193828
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
193814
- // 1) arc endpoints to segment endpoints or arc endpoints projection to the segment
193815
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, arc, 0, 1, false, reversed);
193816
- // 2) intersection between arc and segment
193829
+ // 1) intersection between arc and segment
193817
193830
  // Suppose:
193818
193831
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
193819
193832
  // Line: contains points A0 and A1
@@ -193822,6 +193835,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193822
193835
  // solve for theta.
193823
193836
  // evaluate points.
193824
193837
  // project back to line.
193838
+ let intersectionFound = false;
193825
193839
  const data = arc.toTransformedVectors();
193826
193840
  const pointA0Local = pointA0;
193827
193841
  const pointA1Local = pointA1;
@@ -193840,8 +193854,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193840
193854
  // only add if the point is within the start and end fractions of both line segment and arc
193841
193855
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
193842
193856
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
193857
+ intersectionFound = true;
193843
193858
  }
193844
193859
  }
193860
+ if (intersectionFound)
193861
+ return;
193862
+ // 2) endpoints to endpoints or endpoints projection to the other curve
193863
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
193845
193864
  // 3) line parallel to arc tangent.
193846
193865
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
193847
193866
  // point where the tangent line on arc at that point is parallel to the line.
@@ -193858,48 +193877,37 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193858
193877
  }
193859
193878
  }
193860
193879
  }
193861
- // Caller accesses data from two arcs, ensures circular, and orders with radiusA >= radiusB
193880
+ /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
193862
193881
  dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
193863
193882
  const c = cpA.center.distance(cpB.center);
193864
193883
  const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
193865
- if (c > radiusA + radiusB + e) // widely separated
193884
+ if (c > radiusA + radiusB + e) // distance between circles is more than max distance
193866
193885
  return;
193867
- // To consider:
193868
- // 1) endpoint to endpoint or projection
193869
- // 2) true intersection
193870
- // 3) line parallel to arc tangent.
193886
+ // TODO: 1) intersection between arcs
193887
+ // 2) endpoints to endpoints
193871
193888
  this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
193889
+ // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
193872
193890
  if (!_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(c)) {
193873
- // ?? endpoint hits are recorded. Maybe also need overlap?
193874
193891
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(cpA.center, cpB.center);
193875
193892
  vectorAB.scaleInPlace(1.0 / c);
193876
- if (c - radiusA - radiusB > e) {
193877
- // no approaches possible
193878
- }
193879
- else {
193880
- for (const rA of [-radiusA, radiusA]) {
193881
- for (const rB of [-radiusB, radiusB]) {
193882
- const tangentDistance = c - rA + rB;
193883
- if (tangentDistance < e) {
193884
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
193885
- if (detailA) {
193886
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
193887
- if (detailB) {
193888
- this.captureDetailPair(detailA, detailB, reversed);
193889
- }
193890
- }
193893
+ for (const rA of [-radiusA, radiusA]) {
193894
+ for (const rB of [-radiusB, radiusB]) {
193895
+ const tangentDistance = c - rA + rB;
193896
+ if (tangentDistance < e) {
193897
+ const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
193898
+ if (detailA) {
193899
+ const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
193900
+ if (detailB)
193901
+ this.captureDetailPair(detailA, detailB, reversed);
193891
193902
  }
193892
193903
  }
193893
193904
  }
193894
193905
  }
193895
193906
  }
193896
193907
  }
193897
- /**
193898
- * Find the fractional point (if any) on an arc, known to be circular and displayed from the center in the
193899
- * direction of a scaled vector.
193900
- */
193908
+ /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
193901
193909
  resolveDirectionToArcXYFraction(arc, radialVector, scale) {
193902
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies
193910
+ // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
193903
193911
  const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
193904
193912
  const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
193905
193913
  const radians = Math.atan2(s, c);
@@ -193908,10 +193916,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193908
193916
  return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
193909
193917
  return undefined;
193910
193918
  }
193911
- // Caller accesses data from two arcs.
193912
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
193913
- // Solves the arc-arc equations
193919
+ /** Low level dispatch of arc with arc. Only circular arcs are supported. */
193914
193920
  dispatchArcArc(cpA, cpB, reversed) {
193921
+ const rangeA = cpA.range();
193922
+ const rangeB = cpB.range();
193923
+ rangeA.expandInPlace(this._maxDistanceToAccept);
193924
+ if (!rangeB.intersectsRangeXY(rangeA))
193925
+ return;
193915
193926
  if (this._circularArcB) {
193916
193927
  const radiusB = this._circularRadiusB;
193917
193928
  const radiusA = cpA.circularRadiusXY();
@@ -193924,17 +193935,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193924
193935
  }
193925
193936
  }
193926
193937
  }
193927
- // Caller accesses data from two arcs.
193928
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
193929
- // Solves the arc-arc equations
193938
+ /** Low level dispatch of arc with (beziers of) a bspline curve */
193930
193939
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
193931
193940
  const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
193932
193941
  cpB.emitStrokes(ls);
193933
193942
  this.computeArcLineString(cpA, ls, reversed);
193934
193943
  }
193935
- // Caller accesses data from two arcs.
193936
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
193937
- // Solves the arc-arc equations
193944
+ /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
193938
193945
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
193939
193946
  const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
193940
193947
  bcurveA.emitStrokes(lsA);
@@ -193972,6 +193979,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193972
193979
  }
193973
193980
  /** Detail computation for arc approaching linestring. */
193974
193981
  computeArcLineString(arcA, lsB, reversed) {
193982
+ const rangeA = arcA.range();
193983
+ const rangeB = lsB.range();
193984
+ rangeA.expandInPlace(this._maxDistanceToAccept);
193985
+ if (!rangeB.intersectsRangeXY(rangeA))
193986
+ return;
193975
193987
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
193976
193988
  const pointB1 = CurveCurveCloseApproachXY._workPointBB1;
193977
193989
  const numB = lsB.numPoints();
@@ -193989,10 +194001,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193989
194001
  }
193990
194002
  return undefined;
193991
194003
  }
193992
- /** Low level dispatch of curve chain. */
193993
- dispatchCurveChain(geomA, geomAHandler) {
194004
+ /** Low level dispatch of curve collection. */
194005
+ dispatchCurveCollection(geomA, geomAHandler) {
193994
194006
  const geomB = this._geometryB; // save
193995
- if (!geomB || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain))
194007
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection))
193996
194008
  return;
193997
194009
  for (const child of geomB.children) {
193998
194010
  this.resetGeometry(child);
@@ -194015,9 +194027,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194015
194027
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
194016
194028
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
194017
194029
  }
194018
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
194019
- this.dispatchCurveChain(segmentA, this.handleLineSegment3d.bind(this));
194030
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
194031
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
194020
194032
  }
194033
+ return undefined;
194021
194034
  }
194022
194035
  /**
194023
194036
  * Set bits for comparison to range xy
@@ -194025,6 +194038,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194025
194038
  * * bit 0x02 => x larger than range.high.x
194026
194039
  * * bit 0x04 => y smaller than range.low.y
194027
194040
  * * bit 0x08 => y larger than range.high.y
194041
+ * * If we divide XY plane into 9 areas using the range, the function returns 0 for points
194042
+ * inside the range. Below is other binary numbers returned by the function for all 9 areas:
194043
+ * 1001 | 1000 | 1010
194044
+ * ------------------
194045
+ * 1 | 0 | 10
194046
+ * ------------------
194047
+ * 101 | 100 | 110
194028
194048
  * @param xy point to test
194029
194049
  * @param range range for comparison
194030
194050
  */
@@ -194034,12 +194054,14 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194034
194054
  result = 0x01;
194035
194055
  else if (x > range.high.x)
194036
194056
  result = 0x02;
194057
+ // note the OR operation
194037
194058
  if (y < range.low.y)
194038
194059
  result |= 0x04;
194039
194060
  else if (y > range.high.y)
194040
194061
  result |= 0x08;
194041
194062
  return result;
194042
194063
  }
194064
+ /** Low level dispatch of line string with line string. */
194043
194065
  computeLineStringLineString(lsA, lsB, reversed) {
194044
194066
  const rangeA = lsA.range();
194045
194067
  const rangeB = lsB.range();
@@ -194056,7 +194078,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194056
194078
  const numA = lsA.numPoints();
194057
194079
  const numB = lsB.numPoints();
194058
194080
  if (numA > 1 && numB > 1) {
194059
- lsA.pointAt(0, pointA0);
194060
194081
  const dfA = 1.0 / (numA - 1);
194061
194082
  const dfB = 1.0 / (numB - 1);
194062
194083
  let fA0 = 0.0;
@@ -194066,6 +194087,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194066
194087
  fA1 = ia * dfA;
194067
194088
  fB0 = 0.0;
194068
194089
  lsA.pointAt(ia, pointA1);
194090
+ // rangeA1 is around line segment [A0,A1] expanded by max distance
194069
194091
  rangeA1.setNull();
194070
194092
  rangeA1.extendPoint(pointA0);
194071
194093
  rangeA1.extendPoint(pointA1);
@@ -194077,10 +194099,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194077
194099
  lsB.pointAt(ib, pointB1);
194078
194100
  bitB1 = this.classifyBitsPointRangeXY(pointB1.x, pointB1.y, rangeA1);
194079
194101
  fB1 = ib * dfB;
194080
- // Do NOT study the segment in detail if both bitB bits are on for any of the 4 planes . ..
194081
- if ((bitB0 & bitB1) === 0) {
194102
+ // DO NOT study the segment in detail if both bitB bits are on for any of the 4 planes
194103
+ // (i.e., no intersection between rangeA1 and the range around line segment [B0,B1])
194104
+ if ((bitB0 & bitB1) === 0)
194082
194105
  this.dispatchSegmentSegment(lsA, pointA0, fA0, pointA1, fA1, lsB, pointB0, fB0, pointB1, fB1, reversed);
194083
- }
194084
194106
  }
194085
194107
  }
194086
194108
  }
@@ -194101,8 +194123,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194101
194123
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
194102
194124
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
194103
194125
  }
194104
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
194105
- this.dispatchCurveChain(lsA, this.handleLineString3d.bind(this));
194126
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
194127
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
194106
194128
  }
194107
194129
  return undefined;
194108
194130
  }
@@ -194120,8 +194142,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194120
194142
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
194121
194143
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
194122
194144
  }
194123
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
194124
- this.dispatchCurveChain(arc0, this.handleArc3d.bind(this));
194145
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
194146
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
194125
194147
  }
194126
194148
  return undefined;
194127
194149
  }
@@ -194139,8 +194161,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194139
194161
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3dBase) {
194140
194162
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
194141
194163
  }
194142
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
194143
- this.dispatchCurveChain(curve, this.handleBSplineCurve3d.bind(this));
194164
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
194165
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
194144
194166
  }
194145
194167
  return undefined;
194146
194168
  }
@@ -211609,7 +211631,6 @@ class XYZ {
211609
211631
  }
211610
211632
  /**
211611
211633
  * Set the x,y,z parts from one of these input types
211612
- *
211613
211634
  * * XYZ -- copy the x,y,z parts
211614
211635
  * * Float64Array -- Copy from indices 0,1,2 to x,y,z
211615
211636
  * * XY -- copy the x, y parts and set z=0
@@ -220386,7 +220407,7 @@ class YawPitchRollAngles {
220386
220407
  */
220387
220408
  static createFromMatrix3d(matrix, result) {
220388
220409
  /**
220389
- * The rotation matrix for is
220410
+ * The rotation matrix form is
220390
220411
  *
220391
220412
  * Matrix3d.createRowValues(
220392
220413
  * cz * cy, -(sz * cx + cz * sy * sx), (sz * sx - cz * sy * cx),
@@ -287561,7 +287582,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
287561
287582
  /***/ ((module) => {
287562
287583
 
287563
287584
  "use strict";
287564
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.17","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.2.0-dev.17","@itwin/core-bentley":"workspace:^4.2.0-dev.17","@itwin/core-common":"workspace:^4.2.0-dev.17","@itwin/core-geometry":"workspace:^4.2.0-dev.17","@itwin/core-orbitgt":"workspace:^4.2.0-dev.17","@itwin/core-quantity":"workspace:^4.2.0-dev.17"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
287585
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.19","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.2.0-dev.19","@itwin/core-bentley":"workspace:^4.2.0-dev.19","@itwin/core-common":"workspace:^4.2.0-dev.19","@itwin/core-geometry":"workspace:^4.2.0-dev.19","@itwin/core-orbitgt":"workspace:^4.2.0-dev.19","@itwin/core-quantity":"workspace:^4.2.0-dev.19"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
287565
287586
 
287566
287587
  /***/ })
287567
287588