@itwin/rpcinterface-full-stack-tests 4.5.0-dev.24 → 4.5.0-dev.27

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":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\486\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_b\\26\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -27812,6 +27812,8 @@ class BeEventList {
27812
27812
  "use strict";
27813
27813
  __webpack_require__.r(__webpack_exports__);
27814
27814
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27815
+ /* harmony export */ "DbConflictCause": () => (/* binding */ DbConflictCause),
27816
+ /* harmony export */ "DbConflictResolution": () => (/* binding */ DbConflictResolution),
27815
27817
  /* harmony export */ "DbOpcode": () => (/* binding */ DbOpcode),
27816
27818
  /* harmony export */ "DbResult": () => (/* binding */ DbResult),
27817
27819
  /* harmony export */ "OpenMode": () => (/* binding */ OpenMode)
@@ -27843,6 +27845,29 @@ var DbOpcode;
27843
27845
  /** Some columns of an existing row were updated. */
27844
27846
  DbOpcode[DbOpcode["Update"] = 23] = "Update";
27845
27847
  })(DbOpcode || (DbOpcode = {}));
27848
+ /** Cause of conflict when applying a changeset
27849
+ * @internal
27850
+ */
27851
+ var DbConflictCause;
27852
+ (function (DbConflictCause) {
27853
+ DbConflictCause[DbConflictCause["Data"] = 1] = "Data";
27854
+ DbConflictCause[DbConflictCause["NotFound"] = 2] = "NotFound";
27855
+ DbConflictCause[DbConflictCause["Conflict"] = 3] = "Conflict";
27856
+ DbConflictCause[DbConflictCause["Constraint"] = 4] = "Constraint";
27857
+ DbConflictCause[DbConflictCause["ForeignKey"] = 5] = "ForeignKey";
27858
+ })(DbConflictCause || (DbConflictCause = {}));
27859
+ /** Conflict resolution strategy
27860
+ * @internal
27861
+ */
27862
+ var DbConflictResolution;
27863
+ (function (DbConflictResolution) {
27864
+ /** Skip incoming change */
27865
+ DbConflictResolution[DbConflictResolution["Skip"] = 0] = "Skip";
27866
+ /** Replace local row with incoming changed row */
27867
+ DbConflictResolution[DbConflictResolution["Replace"] = 1] = "Replace";
27868
+ /** Abort apply changeset */
27869
+ DbConflictResolution[DbConflictResolution["Abort"] = 2] = "Abort";
27870
+ })(DbConflictResolution || (DbConflictResolution = {}));
27846
27871
  /** Values for return codes from BeSQLite functions. Consult SQLite documentation for further explanations.
27847
27872
  * @public
27848
27873
  */
@@ -33977,6 +34002,8 @@ __webpack_require__.r(__webpack_exports__);
33977
34002
  /* harmony export */ "ByteStream": () => (/* reexport safe */ _ByteStream__WEBPACK_IMPORTED_MODULE_7__.ByteStream),
33978
34003
  /* harmony export */ "ChangeSetStatus": () => (/* reexport safe */ _BentleyError__WEBPACK_IMPORTED_MODULE_3__.ChangeSetStatus),
33979
34004
  /* harmony export */ "CompressedId64Set": () => (/* reexport safe */ _CompressedId64Set__WEBPACK_IMPORTED_MODULE_10__.CompressedId64Set),
34005
+ /* harmony export */ "DbConflictCause": () => (/* reexport safe */ _BeSQLite__WEBPACK_IMPORTED_MODULE_6__.DbConflictCause),
34006
+ /* harmony export */ "DbConflictResolution": () => (/* reexport safe */ _BeSQLite__WEBPACK_IMPORTED_MODULE_6__.DbConflictResolution),
33980
34007
  /* harmony export */ "DbOpcode": () => (/* reexport safe */ _BeSQLite__WEBPACK_IMPORTED_MODULE_6__.DbOpcode),
33981
34008
  /* harmony export */ "DbResult": () => (/* reexport safe */ _BeSQLite__WEBPACK_IMPORTED_MODULE_6__.DbResult),
33982
34009
  /* harmony export */ "Dictionary": () => (/* reexport safe */ _Dictionary__WEBPACK_IMPORTED_MODULE_11__.Dictionary),
@@ -50842,7 +50869,7 @@ class ViewFlags {
50842
50869
  }
50843
50870
  return this;
50844
50871
  }
50845
- /** @internal */
50872
+ /** Returns true if edges that could be occluded by other geometry are visible for the current [[RenderMode]]. */
50846
50873
  hiddenEdgesVisible() {
50847
50874
  switch (this.renderMode) {
50848
50875
  case RenderMode.SolidFill:
@@ -79217,6 +79244,10 @@ class AccuDrawHintBuilder {
79217
79244
  accuDraw.activate(); // If not already enabled (ex. dynamics not started) most/all callers would want to enable it now (optional activate arg provided just in case)...
79218
79245
  return true;
79219
79246
  }
79247
+ /** Adjust the location of the last data button. If dynamics are enabled on this event, [[InteractiveTool.onDynamicFrame]] is called with this location. */
79248
+ setLastPoint(ev) {
79249
+ _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.setAdjustedDataPoint(ev);
79250
+ }
79220
79251
  /** Create a [[Ray3d]] whose origin is the supplied space point and direction is into the view */
79221
79252
  static getBoresite(spacePt, vp, checkAccuDraw = false, checkACS = false) {
79222
79253
  if (checkAccuDraw && _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.isActive)
@@ -79270,6 +79301,13 @@ class AccuDrawHintBuilder {
79270
79301
  const current = AccuDraw.getCurrentOrientation(vp, checkAccuDraw, checkACS, matrix);
79271
79302
  return (undefined !== current ? current.inverse() : undefined);
79272
79303
  }
79304
+ /** Return a [[Matrix3d]] from a [[SnapDetail]].
79305
+ * Uses [[SnapDetail.normal]] and [[SnapDetail.primitive]] when available to create the most well defined rotation for the given snap location.
79306
+ */
79307
+ static getSnapRotation(snap, matrix) {
79308
+ const out = AccuDraw.getSnapRotation(snap, undefined, matrix);
79309
+ return (undefined !== out ? out.inverse() : undefined);
79310
+ }
79273
79311
  /** Return a [[Matrix3d]] corresponding to the supplied [[ContextRotationId]].
79274
79312
  * A [[ContextRotationId]] that corresponds to a standard view, "Top", "Front", etc. will return a [[Matrix3d]] that
79275
79313
  * is relative to the current [[Viewport.auxCoordSystem]] when ACS context lock is enabled.
@@ -143946,6 +143984,15 @@ class BatchedTileIdMap {
143946
143984
  const props = this._idMap?.get(id);
143947
143985
  return typeof props === "object" ? props : undefined;
143948
143986
  }
143987
+ *entries() {
143988
+ if (this._idMap) {
143989
+ for (const [id, properties] of this._idMap) {
143990
+ if (typeof properties === "object") {
143991
+ yield { id, properties };
143992
+ }
143993
+ }
143994
+ }
143995
+ }
143949
143996
  }
143950
143997
 
143951
143998
 
@@ -172889,6 +172936,10 @@ class ToolAdmin {
172889
172936
  async convertTouchMoveToMotion(ev) {
172890
172937
  return this.onMotion(ev.viewport, ev.viewPoint, _Tool__WEBPACK_IMPORTED_MODULE_13__.InputSource.Touch);
172891
172938
  }
172939
+ /** Can be called by tools to invoke their [[InteractiveTool.onDynamicFrame]] method without requiring a motion event. */
172940
+ simulateMotionEvent() {
172941
+ this.updateDynamics(undefined, undefined, true);
172942
+ }
172892
172943
  /** @internal */
172893
172944
  setIncompatibleViewportCursor(restore) {
172894
172945
  if (restore) {
@@ -178060,6 +178111,33 @@ class Geometry {
178060
178111
  static interpolate(a, f, b) {
178061
178112
  return f <= 0.5 ? a + f * (b - a) : b - (1.0 - f) * (b - a);
178062
178113
  }
178114
+ /**
178115
+ * Interpolate the specified byte of two integers (e.g., colors).
178116
+ * * Extract a single byte from each integer by shifting to the right by `shiftBits`, then masking off the low 8 bits.
178117
+ * * Interpolate the number, truncate to floor, and mask off the low 8 bits.
178118
+ * * Move interpolated byte back into position by shifting to the left by `shiftBits`.
178119
+ * @internal
178120
+ */
178121
+ static interpolateByte(color0, fraction, color1, shiftBits) {
178122
+ color0 = (color0 >>> shiftBits) & 0xFF;
178123
+ color1 = (color1 >>> shiftBits) & 0xFF;
178124
+ const color = Math.floor(color0 + fraction * (color1 - color0)) & 0xFF; // in range [0,255]
178125
+ return color << shiftBits;
178126
+ }
178127
+ /**
178128
+ * Interpolate each byte of color0 and color1 as integers.
178129
+ * @param color0 32-bit RGBA color0
178130
+ * @param fraction fractional position. This is clamped to 0..1 to prevent byte values outside their 0..255 range.
178131
+ * @param color1 32-bit RGBA color1
178132
+ */
178133
+ static interpolateColor(color0, fraction, color1) {
178134
+ fraction = Geometry.clamp(fraction, 0, 1); // do not allow fractions outside the individual byte ranges
178135
+ const byte0 = this.interpolateByte(color0, fraction, color1, 0); // red
178136
+ const byte1 = this.interpolateByte(color0, fraction, color1, 8); // green
178137
+ const byte2 = this.interpolateByte(color0, fraction, color1, 16); // blue
178138
+ const byte3 = this.interpolateByte(color0, fraction, color1, 24); // alpha
178139
+ return (byte0 | byte1 | byte2 | byte3);
178140
+ }
178063
178141
  /**
178064
178142
  * Given an `axisOrder` (e.g. XYZ, YZX, etc) and an `index`, return the `axis` at the given index.
178065
178143
  * * For example, if `axisOrder = XYZ`, then for index 0 return `X` (or axis 0), for index 1 return
@@ -189546,8 +189624,7 @@ __webpack_require__.r(__webpack_exports__);
189546
189624
  /* harmony export */ "XYAndZ": () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
189547
189625
  /* harmony export */ "XYZ": () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
189548
189626
  /* harmony export */ "YawPitchRollAngles": () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
189549
- /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh),
189550
- /* harmony export */ "interpolateColor": () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.interpolateColor)
189627
+ /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh)
189551
189628
  /* harmony export */ });
189552
189629
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
189553
189630
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -239241,8 +239318,7 @@ class IndexedEdgeMatcher {
239241
239318
  __webpack_require__.r(__webpack_exports__);
239242
239319
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
239243
239320
  /* harmony export */ "IndexedPolyfaceSubsetVisitor": () => (/* binding */ IndexedPolyfaceSubsetVisitor),
239244
- /* harmony export */ "IndexedPolyfaceVisitor": () => (/* binding */ IndexedPolyfaceVisitor),
239245
- /* harmony export */ "interpolateColor": () => (/* binding */ interpolateColor)
239321
+ /* harmony export */ "IndexedPolyfaceVisitor": () => (/* binding */ IndexedPolyfaceVisitor)
239246
239322
  /* harmony export */ });
239247
239323
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
239248
239324
  /* harmony import */ var _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
@@ -239258,40 +239334,49 @@ __webpack_require__.r(__webpack_exports__);
239258
239334
  /* eslint-disable @itwin/prefer-get */
239259
239335
  /**
239260
239336
  * An `IndexedPolyfaceVisitor` is an iterator-like object that "visits" facets of a mesh.
239261
- * * The visitor extends a `PolyfaceData ` class, so it can at any time hold all the data of a single facet.
239337
+ * * The visitor extends `PolyfaceData`, so it can at any time hold all the data of a single facet.
239262
239338
  * @public
239263
239339
  */
239264
239340
  class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.PolyfaceData {
239265
- // to be called from static factory method that validates the polyface ...
239266
- constructor(facets, numWrap) {
239267
- super(facets.data.normalCount > 0, facets.data.paramCount > 0, facets.data.colorCount > 0, facets.twoSided);
239268
- this._polyface = facets;
239341
+ // to be called from static factory method that validates the polyface
239342
+ constructor(polyface, numWrap) {
239343
+ super(polyface.data.normalCount > 0, polyface.data.paramCount > 0, polyface.data.colorCount > 0, polyface.twoSided);
239344
+ this._polyface = polyface;
239269
239345
  this._numWrap = numWrap;
239270
- if (facets.data.auxData)
239271
- this.auxData = facets.data.auxData.createForVisitor();
239346
+ if (polyface.data.auxData)
239347
+ this.auxData = polyface.data.auxData.createForVisitor();
239272
239348
  this.reset();
239273
239349
  this._numEdges = 0;
239274
239350
  this._nextFacetIndex = 0;
239275
239351
  this._currentFacetIndex = -1;
239276
239352
  }
239277
239353
  /** Return the client polyface object. */
239278
- clientPolyface() { return this._polyface; }
239279
- /** Set the number of vertices duplicated (e.g. 1 for start and end) in arrays in the visitor. */
239280
- setNumWrap(numWrap) { this._numWrap = numWrap; }
239281
- /** Return the number of edges in the current facet.
239282
- * * Note that if this visitor has `numWrap` greater than zero, the number of edges is smaller than the number of points.
239283
- */
239284
- get numEdgesThisFacet() { return this._numEdges; }
239285
- /** Create a visitor for iterating the facets of `polyface`, with indicated number of points to be added to each facet to produce closed point arrays
239286
- * Typical wrap counts are:
239287
- * * 0 -- leave the point arrays with "missing final edge"
239288
- * * 1 -- add point 0 as closure point
239289
- * * 2 -- add points 0 and 1 as closure and wrap point. This is useful when vertex visit requires two adjacent vectors, e.g. for cross products.
239354
+ clientPolyface() {
239355
+ return this._polyface;
239356
+ }
239357
+ /**
239358
+ * Set the number of vertices replicated in visitor arrays (both data and index arrays).
239359
+ * * 0,1,2 are the most common as numWrap.
239360
+ * * Example: suppose `[6,7,8]` is the pointIndex array representing a triangle. First edge would be `6,7`. Second
239361
+ * edge is `7,8`. Third edge is `8,6`. To access `6` for the third edge, we have to go back to the start of array.
239362
+ * Therefore, it is useful to store `6` at the end of pointIndex array, i.e., `[6,7,8,6]` meaning `numWrap = 1`.
239363
+ * * `numWrap = 2` is useful when vertex visit requires two adjacent vectors, e.g. for cross products.
239364
+ */
239365
+ setNumWrap(numWrap) {
239366
+ this._numWrap = numWrap;
239367
+ }
239368
+ /**
239369
+ * Return the number of edges in the current facet.
239370
+ * * If `numWrap > 0` for this visitor, the number of edges is smaller than the number of points.
239290
239371
  */
239372
+ get numEdgesThisFacet() {
239373
+ return this._numEdges;
239374
+ }
239375
+ /** Create a visitor for iterating the facets of `polyface`. */
239291
239376
  static create(polyface, numWrap) {
239292
239377
  return new IndexedPolyfaceVisitor(polyface, numWrap);
239293
239378
  }
239294
- /** Advance the iterator to a particular facet in the client polyface */
239379
+ /** Advance the iterator to a particular facet in the client polyface. */
239295
239380
  moveToReadIndex(facetIndex) {
239296
239381
  if (!this._polyface.isValidFacetIndex(facetIndex))
239297
239382
  return false;
@@ -239302,7 +239387,7 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239302
239387
  this.gatherIndexedData(this._polyface.data, this._polyface.facetIndex0(this._currentFacetIndex), this._polyface.facetIndex1(this._currentFacetIndex), this._numWrap);
239303
239388
  return true;
239304
239389
  }
239305
- /** Advance the iterator to a the 'next' facet in the client polyface */
239390
+ /** Advance the iterator to a the 'next' facet in the client polyface. */
239306
239391
  moveToNextFacet() {
239307
239392
  if (this._nextFacetIndex !== this._currentFacetIndex)
239308
239393
  return this.moveToReadIndex(this._nextFacetIndex);
@@ -239315,11 +239400,11 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239315
239400
  this._nextFacetIndex = 0; // so immediate moveToNextFacet stays here.
239316
239401
  }
239317
239402
  /**
239318
- * Attempts to extract the distance parameter for the given vertex index on the current facet
239319
- * Returns the distance parameter as a point. Returns undefined on failure.
239403
+ * Attempts to extract the distance parameter for the given vertex `index` on the current facet.
239404
+ * Returns the distance parameter as a point. Returns `undefined` on failure.
239320
239405
  */
239321
239406
  tryGetDistanceParameter(index, result) {
239322
- if (index >= this.numEdgesThisFacet)
239407
+ if (index < 0 || index >= this.numEdgesThisFacet)
239323
239408
  return undefined;
239324
239409
  if (this.param === undefined || this._polyface.data.face.length === 0)
239325
239410
  return undefined;
@@ -239329,11 +239414,11 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239329
239414
  return faceData.convertParamXYToDistance(this.param.getXAtUncheckedPointIndex(index), this.param.getYAtUncheckedPointIndex(index), result);
239330
239415
  }
239331
239416
  /**
239332
- * Attempts to extract the normalized parameter (0,1) for the given vertex index on the current facet.
239333
- * Returns the normalized parameter as a point. Returns undefined on failure.
239417
+ * Attempts to extract the normalized parameter (0,1) for the given vertex `index` on the current facet.
239418
+ * Returns the normalized parameter as a point. Returns `undefined` on failure.
239334
239419
  */
239335
239420
  tryGetNormalizedParameter(index, result) {
239336
- if (index >= this.numEdgesThisFacet)
239421
+ if (index < 0 || index >= this.numEdgesThisFacet)
239337
239422
  return undefined;
239338
239423
  if (this.param === undefined || this._polyface.data.face.length === 0)
239339
239424
  return undefined;
@@ -239342,19 +239427,31 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239342
239427
  return undefined;
239343
239428
  return faceData.convertParamXYToNormalized(this.param.getXAtUncheckedPointIndex(index), this.param.getYAtUncheckedPointIndex(index), result);
239344
239429
  }
239345
- /** Return the index (in the client polyface) of the current facet */
239346
- currentReadIndex() { return this._currentFacetIndex; }
239347
- /** Return the point index of vertex i within the currently loaded facet */
239348
- clientPointIndex(i) { return this.pointIndex[i]; }
239349
- /** Return the param index of vertex i within the currently loaded facet */
239350
- clientParamIndex(i) { return this.paramIndex ? this.paramIndex[i] : -1; }
239351
- /** Return the normal index of vertex i within the currently loaded facet */
239352
- clientNormalIndex(i) { return this.normalIndex ? this.normalIndex[i] : -1; }
239353
- /** Return the color index of vertex i within the currently loaded facet */
239354
- clientColorIndex(i) { return this.colorIndex ? this.colorIndex[i] : -1; }
239355
- /** Return the aux data index of vertex i within the currently loaded facet */
239356
- clientAuxIndex(i) { return this.auxData ? this.auxData.indices[i] : -1; }
239357
- /** clear the contents of all arrays. Use this along with transferDataFrom methods to build up new facets */
239430
+ /** Return the index (in the client polyface) of the current facet. */
239431
+ currentReadIndex() {
239432
+ return this._currentFacetIndex;
239433
+ }
239434
+ /** Return the point index of vertex `i` within the currently loaded facet. */
239435
+ clientPointIndex(i) {
239436
+ return this.pointIndex[i];
239437
+ }
239438
+ /** Return the param index of vertex `i` within the currently loaded facet. */
239439
+ clientParamIndex(i) {
239440
+ return this.paramIndex ? this.paramIndex[i] : -1;
239441
+ }
239442
+ /** Return the normal index of vertex `i` within the currently loaded facet. */
239443
+ clientNormalIndex(i) {
239444
+ return this.normalIndex ? this.normalIndex[i] : -1;
239445
+ }
239446
+ /** Return the color index of vertex `i` within the currently loaded facet. */
239447
+ clientColorIndex(i) {
239448
+ return this.colorIndex ? this.colorIndex[i] : -1;
239449
+ }
239450
+ /** Return the aux data index of vertex `i` within the currently loaded facet. */
239451
+ clientAuxIndex(i) {
239452
+ return this.auxData ? this.auxData.indices[i] : -1;
239453
+ }
239454
+ /** Clear the contents of all arrays. */
239358
239455
  clearArrays() {
239359
239456
  if (this.point !== undefined)
239360
239457
  this.point.length = 0;
@@ -239365,77 +239462,36 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239365
239462
  if (this.color !== undefined)
239366
239463
  this.color.length = 0;
239367
239464
  }
239368
- /** transfer data from a specified index of the other visitor as new data in this visitor. */
239465
+ /** Transfer data from a specified `index` of the `other` visitor as new data in this visitor. */
239369
239466
  pushDataFrom(other, index) {
239370
239467
  this.point.pushFromGrowableXYZArray(other.point, index);
239371
- if (this.color && other.color && index < other.color.length)
239372
- this.color.push(other.color[index]);
239373
239468
  if (this.param && other.param && index < other.param.length)
239374
239469
  this.param.pushFromGrowableXYArray(other.param, index);
239375
239470
  if (this.normal && other.normal && index < other.normal.length)
239376
239471
  this.normal.pushFromGrowableXYZArray(other.normal, index);
239472
+ if (this.color && other.color && index < other.color.length)
239473
+ this.color.push(other.color[index]);
239377
239474
  }
239378
- /** transfer interpolated data from the other visitor.
239379
- * * all data values are interpolated at `fraction` between `other` values at index0 and index1.
239475
+ /**
239476
+ * Transfer interpolated data from the other visitor.
239477
+ * * All data values are interpolated at `fraction` between `other` values at `index0` and `index1`.
239380
239478
  */
239381
239479
  pushInterpolatedDataFrom(other, index0, fraction, index1) {
239382
239480
  this.point.pushInterpolatedFromGrowableXYZArray(other.point, index0, fraction, index1);
239383
- if (this.color && other.color && index0 < other.color.length && index1 < other.color.length)
239384
- this.color.push(interpolateColor(other.color[index0], fraction, other.color[index1]));
239385
239481
  if (this.param && other.param && index0 < other.param.length && index1 < other.param.length)
239386
239482
  this.param.pushInterpolatedFromGrowableXYArray(other.param, index0, fraction, index1);
239387
239483
  if (this.normal && other.normal && index0 < other.normal.length && index1 < other.normal.length)
239388
239484
  this.normal.pushInterpolatedFromGrowableXYZArray(other.normal, index0, fraction, index1);
239485
+ if (this.color && other.color && index0 < other.color.length && index1 < other.color.length)
239486
+ this.color.push(_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.interpolateColor(other.color[index0], fraction, other.color[index1]));
239389
239487
  }
239390
239488
  }
239391
239489
  /**
239392
- * * shift to right by shiftBits.
239393
- * * mask off the low 8 bits
239394
- * * interpolate the number
239395
- * * truncate to floor
239396
- * * shift left
239397
- * * Hence all numbers in and out of the floating point are 0..255.
239398
- * @param color0
239399
- * @param fraction
239400
- * @param color1
239401
- * @param shiftBits
239402
- */
239403
- function interpolateByte(color0, fraction, color1, shiftBits) {
239404
- color0 = (color0 >>> shiftBits) & 0xFF;
239405
- color1 = (color1 >>> shiftBits) & 0xFF;
239406
- const color = Math.floor(color0 + fraction * (color1 - color0)) & 0xFF;
239407
- return color << shiftBits;
239408
- }
239409
- /**
239410
- * Interpolate each byte of color0 and color1 as integers.
239411
- * @param color0 32 bit color (e.g. rgb+transparency)
239412
- * @param fraction fractional position. This is clamped to 0..1 to prevent byte values outside their 0..255 range.
239413
- * @param color1
239414
- * @param shiftBits
239415
- * @internal
239416
- */
239417
- function interpolateColor(color0, fraction, color1) {
239418
- // don't allow fractions outside the individual byte ranges.
239419
- fraction = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.clamp(fraction, 0, 1);
239420
- // interpolate each byte in place ....
239421
- /*
239422
- const byte0 = interpolateLowByte(color0 & 0xFF, fraction, color1 & 0xFF);
239423
- const byte1 = interpolateLowByte((color0 & 0xFF00) >>> 8, fraction, (color1 & 0xFF00) >>> 8) << 8;
239424
- const byte2 = interpolateLowByte((color0 & 0xFF0000) >>> 16, fraction, (color1 & 0xFF0000) >>> 16) << 16;
239425
- const byte3 = interpolateLowByte((color0 & 0xFF000000) >>> 24, fraction, (color1 & 0xFF000000) >>> 24) << 24;
239426
- */
239427
- const byte0 = interpolateByte(color0, fraction, color1, 0);
239428
- const byte1 = interpolateByte(color0, fraction, color1, 8);
239429
- const byte2 = interpolateByte(color0, fraction, color1, 16);
239430
- const byte3 = interpolateByte(color0, fraction, color1, 24);
239431
- return (byte0 | byte1 | byte2 | byte3);
239432
- }
239433
- /**
239434
- * An `IndexedPolyfaceSubsetVisitor` is an IndexedPolyfaceVisitor which only visits a subset of facets in the polyface.
239490
+ * An `IndexedPolyfaceSubsetVisitor` is an `IndexedPolyfaceVisitor` which only visits a subset of facets in the polyface.
239435
239491
  * * The subset is defined by an array of facet indices provided when this visitor is created.
239436
- * * Within the subset visitor, "facetIndex" is understood as index within the subset array:
239437
- * * moveToNextFacet moves only within the subset
239438
- * * moveToReadIndex(i) moves underlying visitor's parentFacetIndex(i)
239492
+ * * Within the subset visitor, `facetIndex` is understood as index within the subset array:
239493
+ * * `moveToNextFacet` moves only within the subset.
239494
+ * * `moveToReadIndex(i)` moves underlying visitor's `parentFacetIndex(i)`.
239439
239495
  * @public
239440
239496
  */
239441
239497
  class IndexedPolyfaceSubsetVisitor extends IndexedPolyfaceVisitor {
@@ -239444,17 +239500,14 @@ class IndexedPolyfaceSubsetVisitor extends IndexedPolyfaceVisitor {
239444
239500
  this._parentFacetIndices = activeFacetIndices.slice();
239445
239501
  this._nextActiveIndex = 0;
239446
239502
  }
239447
- /** Create a visitor for iterating a subset of the facets of `polyface`, with indicated number of points to be added to each facet to produce closed point arrays
239448
- * * Typical wrap counts are:
239449
- * * 0 -- leave the point arrays with "missing final edge"
239450
- * * 1 -- add point 0 as closure point
239451
- * * 2 -- add points 0 and 1 as closure and wrap point. This is useful when vertex visit requires two adjacent vectors, e.g. for cross products.
239452
- * * The activeFacetIndices array indicates all facets to be visited.
239503
+ /**
239504
+ * Create a visitor for iterating a subset of the facets of `polyface`.
239505
+ * * The `activeFacetIndices` array indicates all facets to be visited.
239453
239506
  */
239454
239507
  static createSubsetVisitor(polyface, activeFacetIndices, numWrap) {
239455
239508
  return new IndexedPolyfaceSubsetVisitor(polyface, activeFacetIndices, numWrap);
239456
239509
  }
239457
- /** Advance the iterator to a particular facet in the client polyface */
239510
+ /** Advance the iterator to a particular facet in the client polyface. */
239458
239511
  moveToReadIndex(activeIndex) {
239459
239512
  if (activeIndex >= 0 && activeIndex <= this._parentFacetIndices.length) {
239460
239513
  this._nextActiveIndex = activeIndex;
@@ -239462,7 +239515,7 @@ class IndexedPolyfaceSubsetVisitor extends IndexedPolyfaceVisitor {
239462
239515
  }
239463
239516
  return false;
239464
239517
  }
239465
- /** Advance the iterator to a the 'next' facet in the client polyface */
239518
+ /** Advance the iterator to the next facet in the client polyface. */
239466
239519
  moveToNextFacet() {
239467
239520
  if (this._nextActiveIndex < this._parentFacetIndices.length) {
239468
239521
  const result = this.moveToReadIndex(this._nextActiveIndex);
@@ -239473,11 +239526,11 @@ class IndexedPolyfaceSubsetVisitor extends IndexedPolyfaceVisitor {
239473
239526
  }
239474
239527
  return false;
239475
239528
  }
239476
- /** Reset the iterator to start at the first facet of the polyface. */
239529
+ /** Reset the iterator to start at the first active facet in the polyface. */
239477
239530
  reset() {
239478
239531
  this._nextActiveIndex = 0;
239479
239532
  }
239480
- /** return the parent facet index of the indicated index within the active facets */
239533
+ /** Return the parent facet index of the indicated index within the active facets. */
239481
239534
  parentFacetIndex(activeIndex) {
239482
239535
  if (activeIndex >= 0 && activeIndex <= this._nextActiveIndex) {
239483
239536
  return this._parentFacetIndices[activeIndex];
@@ -243195,50 +243248,6 @@ class PolyfaceData {
243195
243248
  result.extendArray(this.point, transform);
243196
243249
  return result;
243197
243250
  }
243198
- /**
243199
- * Reverse the indices for the specified facets in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
243200
- * and edgeVisible).
243201
- * @param facetStartIndex start indices of *consecutive* facets to be reversed.
243202
- * * Consecutive indices in this array define where a given facet is represented in each of the parallel index arrays.
243203
- * * The indices for facet k are `facetStartIndex[k]` up to (but not including) `facetStartIndex[k + 1]`.
243204
- * * This implies `facetStartIndex[k + 1]` is both the upper limit of facet k's indices, and the start index of facet k+1.
243205
- * * For example, passing an IndexedPolyface's _facetStart array into this method reverses every facet.
243206
- */
243207
- reverseIndices(facetStartIndex) {
243208
- if (facetStartIndex && PolyfaceData.isValidFacetStartIndexArray(facetStartIndex)) {
243209
- PolyfaceData.reverseIndices(facetStartIndex, this.pointIndex, true);
243210
- if (this.normalIndex !== this.pointIndex)
243211
- PolyfaceData.reverseIndices(facetStartIndex, this.normalIndex, true);
243212
- if (this.paramIndex !== this.pointIndex)
243213
- PolyfaceData.reverseIndices(facetStartIndex, this.paramIndex, true);
243214
- if (this.colorIndex !== this.pointIndex)
243215
- PolyfaceData.reverseIndices(facetStartIndex, this.colorIndex, true);
243216
- PolyfaceData.reverseIndices(facetStartIndex, this.edgeVisible, false);
243217
- }
243218
- }
243219
- /**
243220
- * Reverse the indices for the specified facet in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
243221
- * and edgeVisible).
243222
- * @param facetIndex index of the facet to reverse. The entries of each index array to be reversed are found at
243223
- * `facetStartIndex[facetIndex] <= i < facetStartIndex[facetIndex + 1]`.
243224
- * @param facetStartIndex start indices of *consecutive* facets, e.g., an IndexedPolyface's _facetStart array.
243225
- * See [[reverseIndices]].
243226
- */
243227
- reverseIndicesSingleFacet(facetIndex, facetStartIndex) {
243228
- PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.pointIndex, true);
243229
- if (this.normalIndex !== this.pointIndex)
243230
- PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.normalIndex, true);
243231
- if (this.paramIndex !== this.pointIndex)
243232
- PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.paramIndex, true);
243233
- if (this.colorIndex !== this.pointIndex)
243234
- PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.colorIndex, true);
243235
- PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.edgeVisible, false);
243236
- }
243237
- /** Scale all the normals by -1. */
243238
- reverseNormals() {
243239
- if (this.normal)
243240
- this.normal.scaleInPlace(-1.0);
243241
- }
243242
243251
  /**
243243
243252
  * Apply `transform` to point and normal arrays and to auxData.
243244
243253
  * * IMPORTANT This base class is just a data carrier. It does not know if the index order and normal directions
@@ -243378,6 +243387,50 @@ class PolyfaceData {
243378
243387
  }
243379
243388
  return false;
243380
243389
  }
243390
+ /**
243391
+ * Reverse the indices for the specified facets in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
243392
+ * and edgeVisible).
243393
+ * @param facetStartIndex start indices of *consecutive* facets to be reversed.
243394
+ * * Consecutive indices in this array define where a given facet is represented in each of the parallel index arrays.
243395
+ * * The indices for facet k are `facetStartIndex[k]` up to (but not including) `facetStartIndex[k + 1]`.
243396
+ * * This implies `facetStartIndex[k + 1]` is both the upper limit of facet k's indices, and the start index of facet k+1.
243397
+ * * For example, passing an IndexedPolyface's _facetStart array into this method reverses every facet.
243398
+ */
243399
+ reverseIndices(facetStartIndex) {
243400
+ if (facetStartIndex && PolyfaceData.isValidFacetStartIndexArray(facetStartIndex)) {
243401
+ PolyfaceData.reverseIndices(facetStartIndex, this.pointIndex, true);
243402
+ if (this.normalIndex !== this.pointIndex)
243403
+ PolyfaceData.reverseIndices(facetStartIndex, this.normalIndex, true);
243404
+ if (this.paramIndex !== this.pointIndex)
243405
+ PolyfaceData.reverseIndices(facetStartIndex, this.paramIndex, true);
243406
+ if (this.colorIndex !== this.pointIndex)
243407
+ PolyfaceData.reverseIndices(facetStartIndex, this.colorIndex, true);
243408
+ PolyfaceData.reverseIndices(facetStartIndex, this.edgeVisible, false);
243409
+ }
243410
+ }
243411
+ /**
243412
+ * Reverse the indices for the specified facet in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
243413
+ * and edgeVisible).
243414
+ * @param facetIndex index of the facet to reverse. The entries of each index array to be reversed are found at
243415
+ * `facetStartIndex[facetIndex] <= i < facetStartIndex[facetIndex + 1]`.
243416
+ * @param facetStartIndex start indices of *consecutive* facets, e.g., an IndexedPolyface's _facetStart array.
243417
+ * See [[reverseIndices]].
243418
+ */
243419
+ reverseIndicesSingleFacet(facetIndex, facetStartIndex) {
243420
+ PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.pointIndex, true);
243421
+ if (this.normalIndex !== this.pointIndex)
243422
+ PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.normalIndex, true);
243423
+ if (this.paramIndex !== this.pointIndex)
243424
+ PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.paramIndex, true);
243425
+ if (this.colorIndex !== this.pointIndex)
243426
+ PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.colorIndex, true);
243427
+ PolyfaceData.reverseIndicesSingleFacet(facetIndex, facetStartIndex, this.edgeVisible, false);
243428
+ }
243429
+ /** Scale all the normals by -1. */
243430
+ reverseNormals() {
243431
+ if (this.normal)
243432
+ this.normal.scaleInPlace(-1.0);
243433
+ }
243381
243434
  }
243382
243435
  /**
243383
243436
  * Relative tolerance used in tests for planar facets.
@@ -289494,7 +289547,7 @@ class TestContext {
289494
289547
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
289495
289548
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
289496
289549
  await core_frontend_1.NoRenderApp.startup({
289497
- applicationVersion: "4.5.0-dev.24",
289550
+ applicationVersion: "4.5.0-dev.27",
289498
289551
  applicationId: this.settings.gprid,
289499
289552
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
289500
289553
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -309013,7 +309066,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
309013
309066
  /***/ ((module) => {
309014
309067
 
309015
309068
  "use strict";
309016
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.5.0-dev.24","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","lint-fix":"eslint --fix -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.5.0-dev.24","@itwin/core-bentley":"workspace:^4.5.0-dev.24","@itwin/core-common":"workspace:^4.5.0-dev.24","@itwin/core-geometry":"workspace:^4.5.0-dev.24","@itwin/core-orbitgt":"workspace:^4.5.0-dev.24","@itwin/core-quantity":"workspace:^4.5.0-dev.24"},"//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":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","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.2.2","@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"}}');
309069
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.5.0-dev.27","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","lint-fix":"eslint --fix -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.5.0-dev.27","@itwin/core-bentley":"workspace:^4.5.0-dev.27","@itwin/core-common":"workspace:^4.5.0-dev.27","@itwin/core-geometry":"workspace:^4.5.0-dev.27","@itwin/core-orbitgt":"workspace:^4.5.0-dev.27","@itwin/core-quantity":"workspace:^4.5.0-dev.27"},"//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":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","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.2.2","@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"}}');
309017
309070
 
309018
309071
  /***/ }),
309019
309072