@itwin/rpcinterface-full-stack-tests 4.2.0-dev.16 → 4.2.0-dev.18

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\\10\\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\\15\\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":""}
@@ -92474,10 +92474,11 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92474
92474
  }
92475
92475
  if (0 === elevation && !modelTransform && !scriptTransform)
92476
92476
  return undefined;
92477
- const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(args.output);
92478
- transform.origin.z = elevation;
92479
- if (modelTransform)
92480
- transform.multiplyTransformTransform(modelTransform, transform);
92477
+ const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createTranslationXYZ(0, 0, elevation);
92478
+ if (modelTransform?.premultiply)
92479
+ modelTransform.transform.multiplyTransformTransform(transform, transform);
92480
+ if (modelTransform && !modelTransform.premultiply)
92481
+ transform.multiplyTransformTransform(modelTransform.transform, transform);
92481
92482
  if (scriptTransform)
92482
92483
  transform.multiplyTransformTransform(scriptTransform, transform);
92483
92484
  return transform;
@@ -100991,7 +100992,7 @@ function splitMeshParams(args) {
100991
100992
  const result = new Map();
100992
100993
  const mat = args.params.surface.material;
100993
100994
  const atlasOffset = undefined !== mat && mat.isAtlas ? mat.vertexTableOffset : undefined;
100994
- const atlasInfo = atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
100995
+ const atlasInfo = undefined !== atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
100995
100996
  const nodes = VertexTableSplitter.split({
100996
100997
  indices: args.params.surface.indices,
100997
100998
  vertices: args.params.vertices,
@@ -144434,7 +144435,9 @@ class PrimaryTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTr
144434
144435
  computeTransform(tree) {
144435
144436
  const baseTf = this.computeBaseTransform(tree);
144436
144437
  const displayTf = this.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.model.id);
144437
- return displayTf ? baseTf.multiplyTransformTransform(displayTf, displayTf) : baseTf;
144438
+ if (!displayTf)
144439
+ return baseTf;
144440
+ return displayTf.premultiply ? displayTf.transform.multiplyTransformTransform(baseTf) : baseTf.multiplyTransformTransform(displayTf.transform);
144438
144441
  }
144439
144442
  }
144440
144443
  /** @internal */
@@ -148421,7 +148424,7 @@ class TileDrawArgs {
148421
148424
  }
148422
148425
  computePixelSizeScaleFactor() {
148423
148426
  // Check to see if a model display transform with non-uniform scaling is being used.
148424
- const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.matrix;
148427
+ const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.transform.matrix;
148425
148428
  if (!mat)
148426
148429
  return 1;
148427
148430
  const scale = [0, 1, 2].map((x) => mat.getColumn(x).magnitude());
@@ -183686,7 +183689,7 @@ __webpack_require__.r(__webpack_exports__);
183686
183689
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
183687
183690
  /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
183688
183691
  /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
183689
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.ConsolidateAdjacentCurvePrimitivesOptions),
183692
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
183690
183693
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
183691
183694
  /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
183692
183695
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
@@ -184832,10 +184835,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
184832
184835
  const uy = this._matrix.at(1, 0);
184833
184836
  const vx = this._matrix.at(0, 1);
184834
184837
  const vy = this._matrix.at(1, 1);
184835
- const axx = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
184836
- const ayy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
184837
- const axy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
184838
- if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(axx, ayy, axy) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(axx, ayy))
184838
+ const dotUU = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
184839
+ const dotVV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
184840
+ const dotUV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
184841
+ if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(dotUU, dotVV, dotUV) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(dotUU, dotVV))
184839
184842
  return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.hypotenuseXY(ux, uy);
184840
184843
  return undefined;
184841
184844
  }
@@ -186247,7 +186250,6 @@ CurveChainWithDistanceIndex._numCandidate = 0;
186247
186250
  __webpack_require__.r(__webpack_exports__);
186248
186251
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
186249
186252
  /* harmony export */ BagOfCurves: () => (/* binding */ BagOfCurves),
186250
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
186251
186253
  /* harmony export */ CurveChain: () => (/* binding */ CurveChain),
186252
186254
  /* harmony export */ CurveCollection: () => (/* binding */ CurveCollection)
186253
186255
  /* harmony export */ });
@@ -186648,22 +186650,6 @@ class BagOfCurves extends CurveCollection {
186648
186650
  return handler.handleBagOfCurves(this);
186649
186651
  }
186650
186652
  }
186651
- /**
186652
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
186653
- * @public
186654
- */
186655
- class ConsolidateAdjacentCurvePrimitivesOptions {
186656
- constructor() {
186657
- /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
186658
- this.consolidateLinearGeometry = true;
186659
- /** True to consolidate contiguous arcs */
186660
- this.consolidateCompatibleArcs = true;
186661
- /** Tolerance for collapsing identical points */
186662
- this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
186663
- /** Tolerance for removing interior colinear points. */
186664
- this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
186665
- }
186666
- }
186667
186653
 
186668
186654
 
186669
186655
  /***/ }),
@@ -186774,6 +186760,9 @@ class CurveCurve {
186774
186760
  * * Close approach xy-distances are measured without regard to z. This is equivalent to their separation distance
186775
186761
  * as seen in the top view, or as measured between their projections onto the xy-plane.
186776
186762
  * * If more than one approach is returned, one of them is the closest approach.
186763
+ * * If an input curve is a `CurveCollection`, then close approaches are computed to each `CurvePrimitive` child.
186764
+ * This can lead to many returned pairs, especially when both inputs are `CurveCollection`s. If an input curve is
186765
+ * an `AnyRegion` then close approaches are computed only to the boundary curves, not to the interior.
186777
186766
  * @param curveA first curve
186778
186767
  * @param curveB second curve
186779
186768
  * @param maxDistance maximum xy-distance to consider between the curves.
@@ -191881,10 +191870,10 @@ __webpack_require__.r(__webpack_exports__);
191881
191870
  /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
191882
191871
  /* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
191883
191872
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
191884
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
191885
191873
  /* harmony import */ var _CurveFactory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
191886
191874
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
191887
191875
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
191876
+ /* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
191888
191877
  /*---------------------------------------------------------------------------------------------
191889
191878
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
191890
191879
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -191908,7 +191897,7 @@ __webpack_require__.r(__webpack_exports__);
191908
191897
  class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__.NullGeometryHandler {
191909
191898
  constructor(options) {
191910
191899
  super();
191911
- this._options = options ? options : new _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
191900
+ this._options = options ? options : new _RegionOps__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
191912
191901
  }
191913
191902
  /** look for adjacent compatible primitives in a path or loop. */
191914
191903
  handleCurveChain(g) {
@@ -193468,6 +193457,7 @@ class RegionMomentsXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
193468
193457
  "use strict";
193469
193458
  __webpack_require__.r(__webpack_exports__);
193470
193459
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
193460
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
193471
193461
  /* harmony export */ RegionBinaryOpType: () => (/* binding */ RegionBinaryOpType),
193472
193462
  /* harmony export */ RegionOps: () => (/* binding */ RegionOps)
193473
193463
  /* harmony export */ });
@@ -194190,6 +194180,22 @@ function pushToInOnOutArrays(curve, select, arrayNegative, array0, arrayPositive
194190
194180
  else
194191
194181
  array0.push(curve);
194192
194182
  }
194183
+ /**
194184
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
194185
+ * @public
194186
+ */
194187
+ class ConsolidateAdjacentCurvePrimitivesOptions {
194188
+ constructor() {
194189
+ /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
194190
+ this.consolidateLinearGeometry = true;
194191
+ /** True to consolidate contiguous arcs */
194192
+ this.consolidateCompatibleArcs = true;
194193
+ /** Tolerance for collapsing identical points */
194194
+ this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
194195
+ /** Tolerance for removing interior colinear points. */
194196
+ this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
194197
+ }
194198
+ }
194193
194199
 
194194
194200
 
194195
194201
  /***/ }),
@@ -196238,7 +196244,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196238
196244
  fractionB = 1;
196239
196245
  this._workPointB = pointB0.interpolate(fractionB, pointB1, this._workPointB);
196240
196246
  const distanceSquared = this._workPointB.distanceSquaredXY(pointA);
196241
- if (distanceSquared < Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
196247
+ if (distanceSquared <= Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
196242
196248
  closestApproach.detailA.setFP(fractionA, pointA, undefined, distanceSquared);
196243
196249
  closestApproach.detailB.setFP(fractionB, this._workPointB, undefined, distanceSquared);
196244
196250
  updated = true;
@@ -196281,23 +196287,23 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196281
196287
  closestApproach.detailA.a = 2 * maxDistanceSquared; // init to an approach that's too far away
196282
196288
  let reversed = false;
196283
196289
  const uu = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(ux, uy);
196284
- if (hab0 * hab0 < maxDistanceSquared * uu) { // test distance of b0 to u
196290
+ if (hab0 * hab0 <= maxDistanceSquared * uu) { // test distance of b0 to u
196285
196291
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e00x, e00y) / uu;
196286
196292
  if (this.updatePointToSegmentDistance(0, b0, a0, a1, fractionA, maxDistanceSquared, closestApproach))
196287
196293
  reversed = true;
196288
196294
  }
196289
- if (hab1 * hab1 < maxDistanceSquared * uu) { // test distance of b1 to u
196295
+ if (hab1 * hab1 <= maxDistanceSquared * uu) { // test distance of b1 to u
196290
196296
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e01x, e01y) / uu;
196291
196297
  if (this.updatePointToSegmentDistance(1, b1, a0, a1, fractionA, maxDistanceSquared, closestApproach))
196292
196298
  reversed = true;
196293
196299
  }
196294
196300
  const vv = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(vx, vy);
196295
- if (hba0 * hba0 < maxDistanceSquared * vv) { // test distance of a0 to v
196301
+ if (hba0 * hba0 <= maxDistanceSquared * vv) { // test distance of a0 to v
196296
196302
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e00x, e00y) / vv;
196297
196303
  if (this.updatePointToSegmentDistance(0, a0, b0, b1, fractionB, maxDistanceSquared, closestApproach))
196298
196304
  reversed = false;
196299
196305
  }
196300
- if (hba1 * hba1 < maxDistanceSquared * vv) { // test distance of a1 to v
196306
+ if (hba1 * hba1 <= maxDistanceSquared * vv) { // test distance of a1 to v
196301
196307
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv;
196302
196308
  if (this.updatePointToSegmentDistance(1, a1, b0, b1, fractionB, maxDistanceSquared, closestApproach))
196303
196309
  reversed = false;
@@ -196375,10 +196381,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196375
196381
  * Low level dispatch of segment with arc.
196376
196382
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
196377
196383
  * To consider:
196378
- * 1) arc endpoints to segment endpoints or arc endpoints projection to the segment.
196379
- * 2) intersection between arc and segment.
196384
+ * 1) intersection between arc and segment.
196385
+ * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
196380
196386
  * 3) line parallel to arc tangent.
196381
- * @param cpA the segment
196387
+ * @param cpA curve A (line segment or line string)
196382
196388
  * @param pointA0 start point of the segment
196383
196389
  * @param fractionA0 fraction of the start of the segment
196384
196390
  * @param pointA1 end point of the segment
@@ -196387,9 +196393,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196387
196393
  * @param reversed true to have order reversed in final structures
196388
196394
  */
196389
196395
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
196390
- // 1) arc endpoints to segment endpoints or arc endpoints projection to the segment
196391
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, arc, 0, 1, false, reversed);
196392
- // 2) intersection between arc and segment
196396
+ // 1) intersection between arc and segment
196393
196397
  // Suppose:
196394
196398
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
196395
196399
  // Line: contains points A0 and A1
@@ -196398,6 +196402,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196398
196402
  // solve for theta.
196399
196403
  // evaluate points.
196400
196404
  // project back to line.
196405
+ let intersectionFound = false;
196401
196406
  const data = arc.toTransformedVectors();
196402
196407
  const pointA0Local = pointA0;
196403
196408
  const pointA1Local = pointA1;
@@ -196416,8 +196421,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196416
196421
  // only add if the point is within the start and end fractions of both line segment and arc
196417
196422
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
196418
196423
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
196424
+ intersectionFound = true;
196419
196425
  }
196420
196426
  }
196427
+ if (intersectionFound)
196428
+ return;
196429
+ // 2) endpoints to endpoints or endpoints projection to the other curve
196430
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
196421
196431
  // 3) line parallel to arc tangent.
196422
196432
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
196423
196433
  // point where the tangent line on arc at that point is parallel to the line.
@@ -196434,48 +196444,37 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196434
196444
  }
196435
196445
  }
196436
196446
  }
196437
- // Caller accesses data from two arcs, ensures circular, and orders with radiusA >= radiusB
196447
+ /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
196438
196448
  dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
196439
196449
  const c = cpA.center.distance(cpB.center);
196440
196450
  const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
196441
- if (c > radiusA + radiusB + e) // widely separated
196451
+ if (c > radiusA + radiusB + e) // distance between circles is more than max distance
196442
196452
  return;
196443
- // To consider:
196444
- // 1) endpoint to endpoint or projection
196445
- // 2) true intersection
196446
- // 3) line parallel to arc tangent.
196453
+ // TODO: 1) intersection between arcs
196454
+ // 2) endpoints to endpoints
196447
196455
  this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
196456
+ // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
196448
196457
  if (!_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(c)) {
196449
- // ?? endpoint hits are recorded. Maybe also need overlap?
196450
196458
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(cpA.center, cpB.center);
196451
196459
  vectorAB.scaleInPlace(1.0 / c);
196452
- if (c - radiusA - radiusB > e) {
196453
- // no approaches possible
196454
- }
196455
- else {
196456
- for (const rA of [-radiusA, radiusA]) {
196457
- for (const rB of [-radiusB, radiusB]) {
196458
- const tangentDistance = c - rA + rB;
196459
- if (tangentDistance < e) {
196460
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
196461
- if (detailA) {
196462
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
196463
- if (detailB) {
196464
- this.captureDetailPair(detailA, detailB, reversed);
196465
- }
196466
- }
196460
+ for (const rA of [-radiusA, radiusA]) {
196461
+ for (const rB of [-radiusB, radiusB]) {
196462
+ const tangentDistance = c - rA + rB;
196463
+ if (tangentDistance < e) {
196464
+ const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
196465
+ if (detailA) {
196466
+ const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
196467
+ if (detailB)
196468
+ this.captureDetailPair(detailA, detailB, reversed);
196467
196469
  }
196468
196470
  }
196469
196471
  }
196470
196472
  }
196471
196473
  }
196472
196474
  }
196473
- /**
196474
- * Find the fractional point (if any) on an arc, known to be circular and displayed from the center in the
196475
- * direction of a scaled vector.
196476
- */
196475
+ /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
196477
196476
  resolveDirectionToArcXYFraction(arc, radialVector, scale) {
196478
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies
196477
+ // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
196479
196478
  const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
196480
196479
  const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
196481
196480
  const radians = Math.atan2(s, c);
@@ -196484,10 +196483,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196484
196483
  return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
196485
196484
  return undefined;
196486
196485
  }
196487
- // Caller accesses data from two arcs.
196488
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196489
- // Solves the arc-arc equations
196486
+ /** Low level dispatch of arc with arc. Only circular arcs are supported. */
196490
196487
  dispatchArcArc(cpA, cpB, reversed) {
196488
+ const rangeA = cpA.range();
196489
+ const rangeB = cpB.range();
196490
+ rangeA.expandInPlace(this._maxDistanceToAccept);
196491
+ if (!rangeB.intersectsRangeXY(rangeA))
196492
+ return;
196491
196493
  if (this._circularArcB) {
196492
196494
  const radiusB = this._circularRadiusB;
196493
196495
  const radiusA = cpA.circularRadiusXY();
@@ -196500,17 +196502,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196500
196502
  }
196501
196503
  }
196502
196504
  }
196503
- // Caller accesses data from two arcs.
196504
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196505
- // Solves the arc-arc equations
196505
+ /** Low level dispatch of arc with (beziers of) a bspline curve */
196506
196506
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
196507
196507
  const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
196508
196508
  cpB.emitStrokes(ls);
196509
196509
  this.computeArcLineString(cpA, ls, reversed);
196510
196510
  }
196511
- // Caller accesses data from two arcs.
196512
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196513
- // Solves the arc-arc equations
196511
+ /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
196514
196512
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
196515
196513
  const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
196516
196514
  bcurveA.emitStrokes(lsA);
@@ -196548,6 +196546,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196548
196546
  }
196549
196547
  /** Detail computation for arc approaching linestring. */
196550
196548
  computeArcLineString(arcA, lsB, reversed) {
196549
+ const rangeA = arcA.range();
196550
+ const rangeB = lsB.range();
196551
+ rangeA.expandInPlace(this._maxDistanceToAccept);
196552
+ if (!rangeB.intersectsRangeXY(rangeA))
196553
+ return;
196551
196554
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
196552
196555
  const pointB1 = CurveCurveCloseApproachXY._workPointBB1;
196553
196556
  const numB = lsB.numPoints();
@@ -196565,10 +196568,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196565
196568
  }
196566
196569
  return undefined;
196567
196570
  }
196568
- /** Low level dispatch of curve chain. */
196569
- dispatchCurveChain(geomA, geomAHandler) {
196571
+ /** Low level dispatch of curve collection. */
196572
+ dispatchCurveCollection(geomA, geomAHandler) {
196570
196573
  const geomB = this._geometryB; // save
196571
- if (!geomB || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain))
196574
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection))
196572
196575
  return;
196573
196576
  for (const child of geomB.children) {
196574
196577
  this.resetGeometry(child);
@@ -196591,9 +196594,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196591
196594
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196592
196595
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
196593
196596
  }
196594
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196595
- this.dispatchCurveChain(segmentA, this.handleLineSegment3d.bind(this));
196597
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196598
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
196596
196599
  }
196600
+ return undefined;
196597
196601
  }
196598
196602
  /**
196599
196603
  * Set bits for comparison to range xy
@@ -196601,6 +196605,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196601
196605
  * * bit 0x02 => x larger than range.high.x
196602
196606
  * * bit 0x04 => y smaller than range.low.y
196603
196607
  * * bit 0x08 => y larger than range.high.y
196608
+ * * If we divide XY plane into 9 areas using the range, the function returns 0 for points
196609
+ * inside the range. Below is other binary numbers returned by the function for all 9 areas:
196610
+ * 1001 | 1000 | 1010
196611
+ * ------------------
196612
+ * 1 | 0 | 10
196613
+ * ------------------
196614
+ * 101 | 100 | 110
196604
196615
  * @param xy point to test
196605
196616
  * @param range range for comparison
196606
196617
  */
@@ -196610,12 +196621,14 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196610
196621
  result = 0x01;
196611
196622
  else if (x > range.high.x)
196612
196623
  result = 0x02;
196624
+ // note the OR operation
196613
196625
  if (y < range.low.y)
196614
196626
  result |= 0x04;
196615
196627
  else if (y > range.high.y)
196616
196628
  result |= 0x08;
196617
196629
  return result;
196618
196630
  }
196631
+ /** Low level dispatch of line string with line string. */
196619
196632
  computeLineStringLineString(lsA, lsB, reversed) {
196620
196633
  const rangeA = lsA.range();
196621
196634
  const rangeB = lsB.range();
@@ -196632,7 +196645,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196632
196645
  const numA = lsA.numPoints();
196633
196646
  const numB = lsB.numPoints();
196634
196647
  if (numA > 1 && numB > 1) {
196635
- lsA.pointAt(0, pointA0);
196636
196648
  const dfA = 1.0 / (numA - 1);
196637
196649
  const dfB = 1.0 / (numB - 1);
196638
196650
  let fA0 = 0.0;
@@ -196642,6 +196654,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196642
196654
  fA1 = ia * dfA;
196643
196655
  fB0 = 0.0;
196644
196656
  lsA.pointAt(ia, pointA1);
196657
+ // rangeA1 is around line segment [A0,A1] expanded by max distance
196645
196658
  rangeA1.setNull();
196646
196659
  rangeA1.extendPoint(pointA0);
196647
196660
  rangeA1.extendPoint(pointA1);
@@ -196653,10 +196666,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196653
196666
  lsB.pointAt(ib, pointB1);
196654
196667
  bitB1 = this.classifyBitsPointRangeXY(pointB1.x, pointB1.y, rangeA1);
196655
196668
  fB1 = ib * dfB;
196656
- // Do NOT study the segment in detail if both bitB bits are on for any of the 4 planes . ..
196657
- if ((bitB0 & bitB1) === 0) {
196669
+ // DO NOT study the segment in detail if both bitB bits are on for any of the 4 planes
196670
+ // (i.e., no intersection between rangeA1 and the range around line segment [B0,B1])
196671
+ if ((bitB0 & bitB1) === 0)
196658
196672
  this.dispatchSegmentSegment(lsA, pointA0, fA0, pointA1, fA1, lsB, pointB0, fB0, pointB1, fB1, reversed);
196659
- }
196660
196673
  }
196661
196674
  }
196662
196675
  }
@@ -196677,8 +196690,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196677
196690
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196678
196691
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
196679
196692
  }
196680
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196681
- this.dispatchCurveChain(lsA, this.handleLineString3d.bind(this));
196693
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196694
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
196682
196695
  }
196683
196696
  return undefined;
196684
196697
  }
@@ -196696,8 +196709,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196696
196709
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196697
196710
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
196698
196711
  }
196699
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196700
- this.dispatchCurveChain(arc0, this.handleArc3d.bind(this));
196712
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196713
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
196701
196714
  }
196702
196715
  return undefined;
196703
196716
  }
@@ -196715,8 +196728,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196715
196728
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3dBase) {
196716
196729
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
196717
196730
  }
196718
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196719
- this.dispatchCurveChain(curve, this.handleBSplineCurve3d.bind(this));
196731
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196732
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
196720
196733
  }
196721
196734
  return undefined;
196722
196735
  }
@@ -214185,7 +214198,6 @@ class XYZ {
214185
214198
  }
214186
214199
  /**
214187
214200
  * Set the x,y,z parts from one of these input types
214188
- *
214189
214201
  * * XYZ -- copy the x,y,z parts
214190
214202
  * * Float64Array -- Copy from indices 0,1,2 to x,y,z
214191
214203
  * * XY -- copy the x, y parts and set z=0
@@ -222962,7 +222974,7 @@ class YawPitchRollAngles {
222962
222974
  */
222963
222975
  static createFromMatrix3d(matrix, result) {
222964
222976
  /**
222965
- * The rotation matrix for is
222977
+ * The rotation matrix form is
222966
222978
  *
222967
222979
  * Matrix3d.createRowValues(
222968
222980
  * cz * cy, -(sz * cx + cz * sy * sx), (sz * sx - cz * sy * cx),
@@ -279831,7 +279843,7 @@ class TestContext {
279831
279843
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
279832
279844
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
279833
279845
  await core_frontend_1.NoRenderApp.startup({
279834
- applicationVersion: "4.2.0-dev.16",
279846
+ applicationVersion: "4.2.0-dev.18",
279835
279847
  applicationId: this.settings.gprid,
279836
279848
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
279837
279849
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -299265,7 +299277,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
299265
299277
  /***/ ((module) => {
299266
299278
 
299267
299279
  "use strict";
299268
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.16","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.16","@itwin/core-bentley":"workspace:^4.2.0-dev.16","@itwin/core-common":"workspace:^4.2.0-dev.16","@itwin/core-geometry":"workspace:^4.2.0-dev.16","@itwin/core-orbitgt":"workspace:^4.2.0-dev.16","@itwin/core-quantity":"workspace:^4.2.0-dev.16"},"//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"}}');
299280
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.18","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.18","@itwin/core-bentley":"workspace:^4.2.0-dev.18","@itwin/core-common":"workspace:^4.2.0-dev.18","@itwin/core-geometry":"workspace:^4.2.0-dev.18","@itwin/core-orbitgt":"workspace:^4.2.0-dev.18","@itwin/core-quantity":"workspace:^4.2.0-dev.18"},"//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"}}');
299269
299281
 
299270
299282
  /***/ }),
299271
299283