@itwin/rpcinterface-full-stack-tests 4.7.0-dev.13 → 4.7.0-dev.15

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_a\\20\\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":""}
@@ -173305,9 +173305,15 @@ class ToolAdmin {
173305
173305
  this.onActiveToolChanged(newTool, StartOrResume.Start);
173306
173306
  }
173307
173307
  /** @internal */
173308
+ setEditCommandHandler(handler) {
173309
+ this._editCommandHandler = handler;
173310
+ }
173311
+ /** @internal */
173308
173312
  async setPrimitiveTool(newTool) {
173309
173313
  if (undefined !== this._primitiveTool) {
173310
173314
  await this._primitiveTool.onCleanup();
173315
+ if (undefined !== this._editCommandHandler)
173316
+ await this._editCommandHandler.finishCommand();
173311
173317
  this._primitiveTool = undefined;
173312
173318
  }
173313
173319
  this._primitiveTool = newTool;
@@ -239875,6 +239881,10 @@ __webpack_require__.r(__webpack_exports__);
239875
239881
  /* harmony export */ "IndexedPolyfaceVisitor": () => (/* binding */ IndexedPolyfaceVisitor)
239876
239882
  /* harmony export */ });
239877
239883
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
239884
+ /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
239885
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
239886
+ /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
239887
+ /* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
239878
239888
  /* harmony import */ var _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
239879
239889
  /*---------------------------------------------------------------------------------------------
239880
239890
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -239885,6 +239895,10 @@ __webpack_require__.r(__webpack_exports__);
239885
239895
  */
239886
239896
 
239887
239897
 
239898
+
239899
+
239900
+
239901
+
239888
239902
  /* eslint-disable @itwin/prefer-get */
239889
239903
  /**
239890
239904
  * An `IndexedPolyfaceVisitor` is an iterator-like object that "visits" facets of a mesh.
@@ -239908,6 +239922,10 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
239908
239922
  clientPolyface() {
239909
239923
  return this._polyface;
239910
239924
  }
239925
+ /** Return the number of facets this visitor is able to visit. */
239926
+ getVisitableFacetCount() {
239927
+ return this._polyface.facetCount;
239928
+ }
239911
239929
  /**
239912
239930
  * Set the number of vertices replicated in visitor arrays (both data and index arrays).
239913
239931
  * * 0,1,2 are the most common as numWrap.
@@ -240052,53 +240070,99 @@ class IndexedPolyfaceVisitor extends _PolyfaceData__WEBPACK_IMPORTED_MODULE_0__.
240052
240070
  /**
240053
240071
  * An `IndexedPolyfaceSubsetVisitor` is an `IndexedPolyfaceVisitor` which only visits a subset of facets in the polyface.
240054
240072
  * * The subset is defined by an array of facet indices provided when this visitor is created.
240055
- * * Within the subset visitor, `facetIndex` is understood as index within the subset array:
240056
- * * `moveToNextFacet` moves only within the subset.
240057
- * * `moveToReadIndex(i)` moves underlying visitor's `parentFacetIndex(i)`.
240073
+ * * Input indices (e.g., for `moveToReadIndex`) are understood to be indices into the subset array.
240058
240074
  * @public
240059
240075
  */
240060
240076
  class IndexedPolyfaceSubsetVisitor extends IndexedPolyfaceVisitor {
240061
240077
  constructor(polyface, activeFacetIndices, numWrap) {
240062
240078
  super(polyface, numWrap);
240063
240079
  this._parentFacetIndices = activeFacetIndices.slice();
240080
+ this._currentActiveIndex = -1;
240064
240081
  this._nextActiveIndex = 0;
240065
240082
  }
240083
+ isValidSubsetIndex(index) {
240084
+ return (undefined !== this._parentFacetIndices) && index >= 0 && index < this._parentFacetIndices.length;
240085
+ }
240066
240086
  /**
240067
240087
  * Create a visitor for iterating a subset of the facets of `polyface`.
240068
- * * The `activeFacetIndices` array indicates all facets to be visited.
240088
+ * @param polyface reference to the client polyface, supplying facets
240089
+ * @param activeFacetIndices array of indices of facets in the client polyface to visit. This array is cloned.
240090
+ * @param numWrap number of vertices replicated in the visitor arrays to facilitate simpler caller code. Default is zero.
240069
240091
  */
240070
- static createSubsetVisitor(polyface, activeFacetIndices, numWrap) {
240092
+ static createSubsetVisitor(polyface, activeFacetIndices, numWrap = 0) {
240071
240093
  return new IndexedPolyfaceSubsetVisitor(polyface, activeFacetIndices, numWrap);
240072
240094
  }
240073
- /** Advance the iterator to a particular facet in the client polyface. */
240095
+ /**
240096
+ * Advance the iterator to a particular facet in the subset of client polyface facets.
240097
+ * @param activeIndex the index of the facet within the subset, not to be confused with the index of the facet within the client polyface.
240098
+ * @return whether the iterator was successfully moved.
240099
+ */
240074
240100
  moveToReadIndex(activeIndex) {
240075
- if (activeIndex >= 0 && activeIndex <= this._parentFacetIndices.length) {
240076
- this._nextActiveIndex = activeIndex;
240077
- return super.moveToReadIndex(this._parentFacetIndices[activeIndex++]);
240101
+ if (this.isValidSubsetIndex(activeIndex)) {
240102
+ this._currentActiveIndex = activeIndex;
240103
+ this._nextActiveIndex = activeIndex + 1;
240104
+ return super.moveToReadIndex(this._parentFacetIndices[activeIndex]);
240078
240105
  }
240079
240106
  return false;
240080
240107
  }
240081
- /** Advance the iterator to the next facet in the client polyface. */
240108
+ /**
240109
+ * Advance the iterator to the next facet in the subset of client polyface facets.
240110
+ * @return whether the iterator was successfully moved.
240111
+ */
240082
240112
  moveToNextFacet() {
240083
- if (this._nextActiveIndex < this._parentFacetIndices.length) {
240084
- const result = this.moveToReadIndex(this._nextActiveIndex);
240085
- if (result) {
240086
- this._nextActiveIndex++;
240087
- return true;
240088
- }
240089
- }
240090
- return false;
240113
+ if (this._nextActiveIndex !== this._currentActiveIndex)
240114
+ return this.moveToReadIndex(this._nextActiveIndex);
240115
+ this._nextActiveIndex++;
240116
+ return true;
240091
240117
  }
240092
- /** Reset the iterator to start at the first active facet in the polyface. */
240118
+ /** Reset the iterator to start at the first active facet in the subset of client polyface facets. */
240093
240119
  reset() {
240094
- this._nextActiveIndex = 0;
240120
+ this.moveToReadIndex(0);
240121
+ this._nextActiveIndex = 0; // so immediate moveToNextFacet stays here.
240095
240122
  }
240096
- /** Return the parent facet index of the indicated index within the active facets. */
240123
+ /**
240124
+ * Return the parent facet index of the indicated index within the subset of client polyface facets.
240125
+ * @param activeIndex index of the facet within the subset. Default is the active facet.
240126
+ * @return valid client polyface facet index, or `undefined` if invalid input index.
240127
+ */
240097
240128
  parentFacetIndex(activeIndex) {
240098
- if (activeIndex >= 0 && activeIndex <= this._nextActiveIndex) {
240099
- return this._parentFacetIndices[activeIndex];
240129
+ if (undefined === activeIndex)
240130
+ activeIndex = this._currentActiveIndex;
240131
+ return this.isValidSubsetIndex(activeIndex) ? this._parentFacetIndices[activeIndex] : undefined;
240132
+ }
240133
+ /** Return the number of facets this visitor is able to visit. */
240134
+ getVisitableFacetCount() {
240135
+ return this._parentFacetIndices ? this._parentFacetIndices.length : 0;
240136
+ }
240137
+ /**
240138
+ * Create a visitor for those mesh facets with normal in the same half-space as the given vector.
240139
+ * * For example, to visit the top facets of a tiled terrain mesh but skip the "skirt" facets, pass
240140
+ * `compareVector = Vector3d.unitZ()` and a suitable `sideAngle` tolerance. Note that this will also
240141
+ * filter out *interior* facets that are nearly vertical, not just the "skirt" facets on the boundary.
240142
+ * @param mesh the mesh from which to select facets
240143
+ * @param compareVector vector to which to compare facet normals. The visitor will visit only those facets
240144
+ * with normals in the same half-space as this vector. Default is 001.
240145
+ * @param sideAngle optional angular tolerance to filter the facets near the border between half-spaces.
240146
+ * The visitor will *not* visit facets whose normals are nearly perpendicular to `compareVector`.
240147
+ * Default is [[Geometry.smallAngleRadians]].
240148
+ * @param numWrap optional number of entries replicated in visitor arrays. Default is 0.
240149
+ */
240150
+ static createNormalComparison(mesh, compareVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.unitZ(), sideAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_3__.Angle.createSmallAngle(), numWrap = 0) {
240151
+ if (mesh instanceof _Polyface__WEBPACK_IMPORTED_MODULE_4__.IndexedPolyface)
240152
+ return this.createNormalComparison(mesh.createVisitor(), compareVector, sideAngle, numWrap);
240153
+ const visitor = mesh;
240154
+ const facets = [];
240155
+ const facetNormal = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createZero();
240156
+ for (visitor.reset(); visitor.moveToNextFacet();) {
240157
+ if (!_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_5__.PolygonOps.unitNormal(visitor.point, facetNormal))
240158
+ continue; // degenerate facet
240159
+ if (facetNormal.dotProduct(compareVector) < 0.0)
240160
+ continue; // ignore facet facing other half-space
240161
+ if (facetNormal.angleFromPerpendicular(compareVector).isMagnitudeLessThanOrEqual(sideAngle))
240162
+ continue; // ignore side facet
240163
+ facets.push(visitor.currentReadIndex());
240100
240164
  }
240101
- return undefined;
240165
+ return IndexedPolyfaceSubsetVisitor.createSubsetVisitor(visitor.clientPolyface(), facets, numWrap);
240102
240166
  }
240103
240167
  }
240104
240168
 
@@ -245082,13 +245146,17 @@ class PolyfaceQuery {
245082
245146
  }
245083
245147
  return builder.claimPolyface(true);
245084
245148
  }
245085
- /** Return the point count of the `source`. */
245149
+ /**
245150
+ * Return the point count of the `source`.
245151
+ * * If `source` is a visitor, this is an upper bound on the number of addressed mesh vertices.
245152
+ */
245086
245153
  static visitorClientPointCount(source) {
245087
245154
  if (source instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface)
245088
245155
  return source.data.point.length;
245089
245156
  const polyface = source.clientPolyface();
245090
245157
  if (polyface !== undefined)
245091
245158
  return polyface.data.point.length;
245159
+ const saveReadIndex = source.currentReadIndex();
245092
245160
  source.reset();
245093
245161
  let maxIndex = -1;
245094
245162
  while (source.moveToNextFacet()) {
@@ -245096,22 +245164,30 @@ class PolyfaceQuery {
245096
245164
  if (pointIndex > maxIndex)
245097
245165
  maxIndex = pointIndex;
245098
245166
  }
245167
+ source.moveToReadIndex(saveReadIndex);
245099
245168
  return maxIndex + 1;
245100
245169
  }
245101
- /** Return the facet count of the `source`. */
245170
+ /**
245171
+ * Return the facet count of the `source`.
245172
+ * * If `source` is a visitor, this is the number of facets it can visit.
245173
+ */
245102
245174
  static visitorClientFacetCount(source) {
245103
245175
  if (source instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface) {
245104
245176
  if (source.facetCount !== undefined)
245105
245177
  return source.facetCount;
245106
245178
  source = source.createVisitor(0);
245107
245179
  }
245180
+ if (source.getVisitableFacetCount)
245181
+ return source.getVisitableFacetCount();
245108
245182
  const polyface = source.clientPolyface();
245109
245183
  if (polyface !== undefined && polyface.facetCount !== undefined)
245110
245184
  return polyface.facetCount;
245185
+ const saveReadIndex = source.currentReadIndex();
245111
245186
  let facetCount = 0;
245112
245187
  source.reset();
245113
245188
  while (source.moveToNextFacet())
245114
245189
  ++facetCount;
245190
+ source.moveToReadIndex(saveReadIndex);
245115
245191
  return facetCount;
245116
245192
  }
245117
245193
  /**
@@ -245479,10 +245555,10 @@ class PolyfaceQuery {
245479
245555
  return result;
245480
245556
  }
245481
245557
  /**
245482
- * Return a new facet set with a subset of facets in polyface.
245558
+ * Return a new facet set from the source facets, specifying how to copy duplicate facets.
245483
245559
  * @param source the polyface.
245484
245560
  * @param includeSingletons true to copy facets that only appear once
245485
- * @param clusterSelector indicates whether duplicate clusters are to have 0, 1, or all facets included.
245561
+ * @param clusterSelector indicates whether to copy 0, 1, or all facets in each cluster of duplicate facets.
245486
245562
  */
245487
245563
  static cloneByFacetDuplication(source, includeSingletons, clusterSelector) {
245488
245564
  const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
@@ -290213,7 +290289,7 @@ class TestContext {
290213
290289
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
290214
290290
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
290215
290291
  await core_frontend_1.NoRenderApp.startup({
290216
- applicationVersion: "4.7.0-dev.13",
290292
+ applicationVersion: "4.7.0-dev.15",
290217
290293
  applicationId: this.settings.gprid,
290218
290294
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
290219
290295
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -314208,7 +314284,7 @@ function __disposeResources(env) {
314208
314284
  /***/ ((module) => {
314209
314285
 
314210
314286
  "use strict";
314211
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.7.0-dev.13","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 --no-inline-config -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.7.0-dev.13","@itwin/core-bentley":"workspace:^4.7.0-dev.13","@itwin/core-common":"workspace:^4.7.0-dev.13","@itwin/core-geometry":"workspace:^4.7.0-dev.13","@itwin/core-orbitgt":"workspace:^4.7.0-dev.13","@itwin/core-quantity":"workspace:^4.7.0-dev.13"},"//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.2","@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.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.3.3","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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
314287
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.7.0-dev.15","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 --no-inline-config -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.7.0-dev.15","@itwin/core-bentley":"workspace:^4.7.0-dev.15","@itwin/core-common":"workspace:^4.7.0-dev.15","@itwin/core-geometry":"workspace:^4.7.0-dev.15","@itwin/core-orbitgt":"workspace:^4.7.0-dev.15","@itwin/core-quantity":"workspace:^4.7.0-dev.15"},"//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.2","@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.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.3.3","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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
314212
314288
 
314213
314289
  /***/ }),
314214
314290