@itwin/rpcinterface-full-stack-tests 3.4.0-dev.1 → 3.4.0-dev.2

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":"_c41d.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\1\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.2.5\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_c41d.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\1147\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.2.5\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -87120,6 +87120,7 @@ class IModelReadRpcInterface extends _RpcInterface__WEBPACK_IMPORTED_MODULE_2__.
87120
87120
  ===========================================================================================*/
87121
87121
  async getConnectionProps(_iModelToken) { return this.forward(arguments); }
87122
87122
  async queryRows(_iModelToken, _request) { return this.forward(arguments); }
87123
+ async querySubCategories(_iModelToken, _categoryIds) { return this.forward(arguments); }
87123
87124
  async queryBlob(_iModelToken, _request) { return this.forward(arguments); }
87124
87125
  async getModelProps(_iModelToken, _modelIds) { return this.forward(arguments); }
87125
87126
  async queryModelRanges(_iModelToken, _modelIds) { return this.forward(arguments); }
@@ -87157,6 +87158,9 @@ IModelReadRpcInterface.interfaceVersion = "3.2.0";
87157
87158
  __decorate([
87158
87159
  _core_RpcOperation__WEBPACK_IMPORTED_MODULE_1__.RpcOperation.allowResponseCaching(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__.RpcResponseCacheControl.Immutable)
87159
87160
  ], IModelReadRpcInterface.prototype, "getConnectionProps", null);
87161
+ __decorate([
87162
+ _core_RpcOperation__WEBPACK_IMPORTED_MODULE_1__.RpcOperation.allowResponseCaching(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__.RpcResponseCacheControl.Immutable)
87163
+ ], IModelReadRpcInterface.prototype, "querySubCategories", null);
87160
87164
  __decorate([
87161
87165
  _core_RpcOperation__WEBPACK_IMPORTED_MODULE_1__.RpcOperation.allowResponseCaching(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__.RpcResponseCacheControl.Immutable)
87162
87166
  ], IModelReadRpcInterface.prototype, "getModelProps", null);
@@ -103475,6 +103479,15 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
103475
103479
  };
103476
103480
  return new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ECSqlReader(executor, ecsql, params, config);
103477
103481
  }
103482
+ /**
103483
+ * queries the BisCore.SubCategory table for the entries that are children of the passed categoryIds
103484
+ * @param compressedCategoryIds compressed category Ids
103485
+ * @returns array of SubCategoryResultRow
103486
+ * @internal
103487
+ */
103488
+ async querySubCategories(compressedCategoryIds) {
103489
+ return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelReadRpcInterface.getClientForRouting(this.routingContext.token).querySubCategories(this.getRpcProps(), compressedCategoryIds);
103490
+ }
103478
103491
  /** Execute a query and stream its results
103479
103492
  * The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
103480
103493
  * [ECSQL row]($docs/learning/ECSQLRowFormat).
@@ -106669,29 +106682,73 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
106669
106682
  else
106670
106683
  return PerModelCategoryVisibility.Override.None;
106671
106684
  }
106672
- setOverride(modelIds, categoryIds, override) {
106685
+ /**
106686
+ * set the overrides for multiple perModelCategoryVisibility props, loading categoryIds from the iModel if necessary.
106687
+ * @see [[PerModelCategoryVisibility]]
106688
+ * @param perModelCategoryVisibility array of model category visibility overrides @see [[PerModelCategoryVisibility.Props]]
106689
+ * @param iModel Optional param iModel. If no iModel is provided, then the iModel associated with the viewport (used to construct this class) is used.
106690
+ * This optional iModel param is useful for apps which may show multiple iModels at once. Passing in an iModel ensures that the subcategories cache for the provided iModel
106691
+ * is populated as opposed to the iModel associated with the viewport which may or may not be an empty iModel.
106692
+ * @returns a promise that resolves once the overrides have been applied.
106693
+ */
106694
+ async setOverrides(perModelCategoryVisibility, iModel) {
106695
+ let anyChanged = false;
106696
+ const catIdsToLoad = [];
106697
+ const iModelToUse = iModel ? iModel : this._vp.iModel;
106698
+ for (const override of perModelCategoryVisibility) {
106699
+ const modelId = override.modelId;
106700
+ // The caller may pass a single categoryId as a string, if we don't convert this to an array we will iterate
106701
+ // over each individual character of that string, which is not the desired behavior.
106702
+ const categoryIds = typeof override.categoryIds === "string" ? [override.categoryIds] : override.categoryIds;
106703
+ const visOverride = override.visOverride;
106704
+ for (const categoryId of categoryIds) {
106705
+ if (this.findAndUpdateOverrideInArray(modelId, categoryId, visOverride)) {
106706
+ anyChanged = true;
106707
+ if (PerModelCategoryVisibility.Override.None !== visOverride) {
106708
+ catIdsToLoad.push(categoryId);
106709
+ }
106710
+ }
106711
+ }
106712
+ }
106713
+ if (anyChanged) {
106714
+ this._vp.setViewedCategoriesPerModelChanged();
106715
+ if (catIdsToLoad.length !== 0) {
106716
+ this._vp.subcategories.push(iModelToUse.subcategories, catIdsToLoad, () => this._vp.setViewedCategoriesPerModelChanged());
106717
+ }
106718
+ }
106719
+ return;
106720
+ }
106721
+ /** Find and update the override in the array of overrides. If override not found, adds it to the array.
106722
+ * If the array was changed, returns true. */
106723
+ findAndUpdateOverrideInArray(modelId, categoryId, override) {
106673
106724
  const ovr = this._scratch;
106725
+ ovr.reset(modelId, categoryId, false);
106726
+ let changed = false;
106727
+ const index = this.indexOf(ovr);
106728
+ if (-1 === index) {
106729
+ if (PerModelCategoryVisibility.Override.None !== override) {
106730
+ this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));
106731
+ changed = true;
106732
+ }
106733
+ }
106734
+ else {
106735
+ if (PerModelCategoryVisibility.Override.None === override) {
106736
+ this._array.splice(index, 1);
106737
+ changed = true;
106738
+ }
106739
+ else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {
106740
+ this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);
106741
+ changed = true;
106742
+ }
106743
+ }
106744
+ return changed;
106745
+ }
106746
+ setOverride(modelIds, categoryIds, override) {
106674
106747
  let changed = false;
106675
106748
  for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
106676
106749
  for (const categoryId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds)) {
106677
- ovr.reset(modelId, categoryId, false);
106678
- const index = this.indexOf(ovr);
106679
- if (-1 === index) {
106680
- if (PerModelCategoryVisibility.Override.None !== override) {
106681
- this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));
106682
- changed = true;
106683
- }
106684
- }
106685
- else {
106686
- if (PerModelCategoryVisibility.Override.None === override) {
106687
- this._array.splice(index, 1);
106688
- changed = true;
106689
- }
106690
- else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {
106691
- this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);
106692
- changed = true;
106693
- }
106694
- }
106750
+ if (this.findAndUpdateOverrideInArray(modelId, categoryId, override))
106751
+ changed = true;
106695
106752
  }
106696
106753
  }
106697
106754
  if (changed) {
@@ -109311,29 +109368,6 @@ class SubCategoriesCache {
109311
109368
  cancel: () => request.cancel(),
109312
109369
  };
109313
109370
  }
109314
- /**
109315
- * Populates the notLoadedCategoryIds property of the HydrateViewStateRequestProps.
109316
- * notLoadedCategoryIds is a subset of categoryIds, filtering out any ids which already have an entry in the cache.
109317
- */
109318
- preload(options, categoryIds) {
109319
- const missing = this.getMissing(categoryIds);
109320
- if (undefined === missing)
109321
- return;
109322
- this._missingAtTimeOfPreload = missing;
109323
- options.notLoadedCategoryIds = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.CompressedId64Set.sortAndCompress(missing);
109324
- }
109325
- /**
109326
- * Populates the SubCategoriesCache using the categoryIdsResult of the HydrateViewStateResponseProps
109327
- */
109328
- postload(options) {
109329
- if (options.categoryIdsResult === undefined)
109330
- return;
109331
- // missingAtTimeOfPreload shouldn't be undefined if options.categoryIdsResult is defined... but just to be safe we'll check
109332
- const missing = this._missingAtTimeOfPreload === undefined ? new Set() : this._missingAtTimeOfPreload;
109333
- this.processResults(options.categoryIdsResult, missing);
109334
- // clear missing
109335
- this._missingAtTimeOfPreload = undefined;
109336
- }
109337
109371
  /** Given categoryIds, return which of these are not cached. */
109338
109372
  getMissing(categoryIds) {
109339
109373
  let missing;
@@ -109415,38 +109449,38 @@ class SubCategoriesCache {
109415
109449
  (function (SubCategoriesCache) {
109416
109450
  class Request {
109417
109451
  constructor(categoryIds, imodel, maxCategoriesPerQuery = 200) {
109418
- this._ecsql = [];
109452
+ this._categoryIds = [];
109419
109453
  this._result = [];
109420
109454
  this._canceled = false;
109421
- this._curECSqlIndex = 0;
109455
+ this._curCategoryIdsIndex = 0;
109422
109456
  this._imodel = imodel;
109423
109457
  const catIds = [...categoryIds];
109458
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.OrderedId64Iterable.sortArray(catIds); // sort categories, so that given the same set of categoryIds we will always create the same batches.
109424
109459
  while (catIds.length !== 0) {
109425
109460
  const end = (catIds.length > maxCategoriesPerQuery) ? maxCategoriesPerQuery : catIds.length;
109426
- const where = catIds.splice(0, end).join(",");
109427
- this._ecsql.push(`SELECT ECInstanceId as id, Parent.Id as parentId, Properties as appearance FROM BisCore.SubCategory WHERE Parent.Id IN (${where})`);
109461
+ const compressedIds = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.CompressedId64Set.compressArray(catIds.splice(0, end));
109462
+ this._categoryIds.push(compressedIds);
109428
109463
  }
109429
109464
  }
109430
109465
  get wasCanceled() { return this._canceled || this._imodel.isClosed; }
109431
109466
  cancel() { this._canceled = true; }
109432
109467
  async dispatch() {
109433
- if (this.wasCanceled || this._curECSqlIndex >= this._ecsql.length) // handle case of empty category Id set...
109468
+ if (this.wasCanceled || this._curCategoryIdsIndex >= this._categoryIds.length) // handle case of empty category Id set...
109434
109469
  return undefined;
109435
109470
  try {
109436
- const ecsql = this._ecsql[this._curECSqlIndex];
109437
- for await (const row of this._imodel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
109438
- this._result.push(row);
109439
- if (this.wasCanceled)
109440
- return undefined;
109441
- }
109471
+ const catIds = this._categoryIds[this._curCategoryIdsIndex];
109472
+ const result = await this._imodel.querySubCategories(catIds);
109473
+ this._result.push(...result);
109474
+ if (this.wasCanceled)
109475
+ return undefined;
109442
109476
  }
109443
109477
  catch {
109444
109478
  // ###TODO: detect cases in which retry is warranted
109445
109479
  // Note that currently, if we succeed in obtaining some pages of results and fail to retrieve another page, we will end up processing the
109446
109480
  // incomplete results. Since we're not retrying, that's the best we can do.
109447
109481
  }
109448
- // Finished with current ECSql query. Dispatch the next if one exists.
109449
- if (++this._curECSqlIndex < this._ecsql.length) {
109482
+ // Finished with current batch of categoryIds. Dispatch the next batch if one exists.
109483
+ if (++this._curCategoryIdsIndex < this._categoryIds.length) {
109450
109484
  if (this.wasCanceled)
109451
109485
  return undefined;
109452
109486
  else
@@ -109521,7 +109555,7 @@ class SubCategoriesCache {
109521
109555
  this._request.promise.then((completed) => {
109522
109556
  if (this._disposed)
109523
109557
  return;
109524
- // Invoke all the functions which were awaiting this set of categories.
109558
+ // Invoke all the functions which were awaiting this set of IModelConnection.Categories.
109525
109559
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== this._current);
109526
109560
  if (completed)
109527
109561
  for (const func of this._current.funcs)
@@ -112094,7 +112128,6 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
112094
112128
  const acsId = this.getAuxiliaryCoordinateSystemId();
112095
112129
  if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.isValid(acsId))
112096
112130
  hydrateRequest.acsId = acsId;
112097
- this.iModel.subcategories.preload(hydrateRequest, this.categorySelector.categories);
112098
112131
  }
112099
112132
  /** Asynchronously load any required data for this ViewState from the backend.
112100
112133
  * FINAL, No subclass should override load. If additional load behavior is needed, see preload and postload.
@@ -112109,15 +112142,16 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
112109
112142
  const hydrateRequest = {};
112110
112143
  this.preload(hydrateRequest);
112111
112144
  const promises = [
112112
- _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.IModelReadRpcInterface.getClientForRouting(this.iModel.routingContext.token).hydrateViewState(this.iModel.getRpcProps(), hydrateRequest),
112145
+ _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.IModelReadRpcInterface.getClientForRouting(this.iModel.routingContext.token).hydrateViewState(this.iModel.getRpcProps(), hydrateRequest).
112146
+ then(async (hydrateResponse) => this.postload(hydrateResponse)),
112113
112147
  this.displayStyle.load(),
112114
112148
  ];
112115
- const result = await Promise.all(promises);
112116
- const hydrateResponse = result[0];
112117
- await this.postload(hydrateResponse);
112149
+ const subcategories = this.iModel.subcategories.load(this.categorySelector.categories);
112150
+ if (undefined !== subcategories)
112151
+ promises.push(subcategories.promise.then((_) => { }));
112152
+ await Promise.all(promises);
112118
112153
  }
112119
112154
  async postload(hydrateResponse) {
112120
- this.iModel.subcategories.postload(hydrateResponse);
112121
112155
  if (hydrateResponse.acsElementProps)
112122
112156
  this._auxCoordSystem = _AuxCoordSys__WEBPACK_IMPORTED_MODULE_3__.AuxCoordSystemState.fromProps(hydrateResponse.acsElementProps, this.iModel);
112123
112157
  }
@@ -287059,7 +287093,7 @@ class TestContext {
287059
287093
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
287060
287094
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${(_a = process.env.IMJS_URL_PREFIX) !== null && _a !== void 0 ? _a : ""}api.bentley.com/imodels` } });
287061
287095
  await core_frontend_1.NoRenderApp.startup({
287062
- applicationVersion: "3.4.0-dev.1",
287096
+ applicationVersion: "3.4.0-dev.2",
287063
287097
  applicationId: this.settings.gprid,
287064
287098
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
287065
287099
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -305516,7 +305550,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
305516
305550
  /***/ ((module) => {
305517
305551
 
305518
305552
  "use strict";
305519
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"3.4.0-dev.1","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","build:ci":"npm run -s build && npm run -s build:esm","build:cjs":"tsc 1>&2 --outDir lib/cjs","build:esm":"tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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-eslintrc -c \\"../../tools/eslint-plugin/dist/configs/extension-exports-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"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core/tree/master/core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^3.4.0-dev.1","@itwin/core-bentley":"workspace:^3.4.0-dev.1","@itwin/core-common":"workspace:^3.4.0-dev.1","@itwin/core-geometry":"workspace:^3.4.0-dev.1","@itwin/core-orbitgt":"workspace:^3.4.0-dev.1","@itwin/core-quantity":"workspace:^3.4.0-dev.1","@itwin/webgl-compatibility":"workspace:^3.4.0-dev.1"},"//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":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/lodash":"^4.14.0","@types/mocha":"^8.2.2","@types/node":"16.11.7","@types/qs":"^6.5.0","@types/semver":"^7.3.9","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^7.11.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~4.4.0","webpack":"^5.64.4"},"//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/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","lodash":"^4.17.10","qs":"^6.5.1","semver":"^7.3.5","superagent":"7.1.3","wms-capabilities":"0.4.0","xml-js":"~1.6.11"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
305553
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"3.4.0-dev.2","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","build:ci":"npm run -s build && npm run -s build:esm","build:cjs":"tsc 1>&2 --outDir lib/cjs","build:esm":"tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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-eslintrc -c \\"../../tools/eslint-plugin/dist/configs/extension-exports-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"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core/tree/master/core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^3.4.0-dev.2","@itwin/core-bentley":"workspace:^3.4.0-dev.2","@itwin/core-common":"workspace:^3.4.0-dev.2","@itwin/core-geometry":"workspace:^3.4.0-dev.2","@itwin/core-orbitgt":"workspace:^3.4.0-dev.2","@itwin/core-quantity":"workspace:^3.4.0-dev.2","@itwin/webgl-compatibility":"workspace:^3.4.0-dev.2"},"//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":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/lodash":"^4.14.0","@types/mocha":"^8.2.2","@types/node":"16.11.7","@types/qs":"^6.5.0","@types/semver":"^7.3.9","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^7.11.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~4.4.0","webpack":"^5.64.4"},"//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/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","lodash":"^4.17.10","qs":"^6.5.1","semver":"^7.3.5","superagent":"7.1.3","wms-capabilities":"0.4.0","xml-js":"~1.6.11"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
305520
305554
 
305521
305555
  /***/ }),
305522
305556