@itwin/ecschema-rpcinterface-tests 4.3.2 → 4.3.5

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.
@@ -148406,19 +148406,23 @@ __webpack_require__.r(__webpack_exports__);
148406
148406
  */
148407
148407
 
148408
148408
 
148409
+ const loggerCategory = "ArcGISTileMap";
148409
148410
  const nonVisibleChildren = [false, false, false, false];
148410
148411
  /** @internal */
148411
148412
  class ArcGISTileMap {
148412
- constructor(restBaseUrl, settings, fetchFunc, nbLods) {
148413
- this.tileMapRequestSize = 32;
148413
+ // We want to query a tile map that covers an area all around the top-lef missing tile, we offset the top-left corner position of the tilemap.
148414
+ // We used to create a 32x32 tiles area around the missing tiles, but this was causing the tilemap top-left position
148415
+ // to fall outside the dataset bundle of the remote server, thus giving invalid response.
148416
+ get tileMapOffset() { return (this.tileMapRequestSize * 0.5); }
148417
+ constructor(restBaseUrl, settings, fetchFunc) {
148418
+ // For similar reasons as the corner offset, we need to keep the tile map size not too big to avoid covering multiple bundles.
148419
+ this.tileMapRequestSize = 8;
148414
148420
  this.fallbackTileMapRequestSize = 2;
148415
148421
  this._tilesCache = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Dictionary((lhs, rhs) => (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.compareStrings)(lhs, rhs));
148416
148422
  this._restBaseUrl = restBaseUrl;
148417
148423
  this._fetchFunc = fetchFunc;
148418
148424
  this._settings = settings;
148419
- if (nbLods !== undefined && nbLods > 0) {
148420
- this._callQueues = new Array(nbLods).fill(Promise.resolve(nonVisibleChildren));
148421
- }
148425
+ this._callQueues = new Array(ArcGISTileMap.maxLod).fill(Promise.resolve(nonVisibleChildren));
148422
148426
  }
148423
148427
  async fetchTileMapFromServer(level, row, column, width, height) {
148424
148428
  const tmpUrl = `${this._restBaseUrl}/tilemap/${level}/${row}/${column}/${width}/${height}?f=json`;
@@ -148440,10 +148444,12 @@ class ArcGISTileMap {
148440
148444
  async getChildrenAvailability(childIds) {
148441
148445
  if (!childIds.length)
148442
148446
  return [];
148443
- // We need to check cache again:
148444
- // Tiles we are looking for may have been added to cache while we were waiting in the call queue.
148447
+ // Before entering the queue for a backend request,
148448
+ // let check if cache doesn't already contain what we are looking for.
148445
148449
  const cacheInfo = this.getAvailableTilesFromCache(childIds);
148446
148450
  if (cacheInfo.allTilesFound) {
148451
+ if (cacheInfo.available.includes(false))
148452
+ return cacheInfo.available;
148447
148453
  return cacheInfo.available;
148448
148454
  }
148449
148455
  // If we never encountered this tile level before, then a tilemap request must be made to get tiles visibility.
@@ -148452,48 +148458,115 @@ class ArcGISTileMap {
148452
148458
  // before making another one.
148453
148459
  const childLevel = childIds[0].level + 1;
148454
148460
  if (this._callQueues && childLevel < this._callQueues.length) {
148455
- const res = this._callQueues[childLevel].then(async () => this.getChildrenAvailabilityFromServer(childIds));
148461
+ const res = this._callQueues[childLevel].then(async () => {
148462
+ return this.getChildrenAvailabilityFromServer(childIds);
148463
+ });
148456
148464
  this._callQueues[childLevel] = res.catch(() => nonVisibleChildren);
148457
148465
  return res;
148458
148466
  }
148459
148467
  else {
148460
148468
  // We should not be in this case, probably because server info is missing LODs in the capabilities?!
148469
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(loggerCategory, `Skipped request queue for child level ${childLevel}`);
148461
148470
  return this.getChildrenAvailabilityFromServer(childIds);
148462
148471
  }
148463
148472
  }
148473
+ isCacheMissingTile(level, startRow, startColumn, endRow, endColumn) {
148474
+ let missingTileFound = false;
148475
+ if (endRow <= startRow || endColumn <= startColumn)
148476
+ return missingTileFound;
148477
+ for (let j = startColumn; j <= endColumn && !missingTileFound; j++) {
148478
+ for (let i = startRow; i <= endRow && !missingTileFound; i++) {
148479
+ if (j >= 0 && i >= 0) {
148480
+ const contentId = _internal__WEBPACK_IMPORTED_MODULE_1__.QuadId.getTileContentId(level, j, i);
148481
+ if (this._tilesCache.get(contentId) === undefined) {
148482
+ missingTileFound = true;
148483
+ }
148484
+ }
148485
+ }
148486
+ }
148487
+ return missingTileFound;
148488
+ }
148489
+ collectTilesMissingFromCache(missingQueryTiles) {
148490
+ const missingTiles = [];
148491
+ for (const quad of missingQueryTiles) {
148492
+ const contentId = _internal__WEBPACK_IMPORTED_MODULE_1__.QuadId.getTileContentId(quad.level, quad.column, quad.row);
148493
+ const avail = this._tilesCache.get(contentId);
148494
+ if (avail === undefined)
148495
+ missingTiles.push(quad);
148496
+ }
148497
+ return missingTiles;
148498
+ }
148464
148499
  // Query tiles are tiles that we need to check availability
148465
148500
  // The array is assumed to be in in row major orientation, i.e.: [TileRow0Col0, TileRow0Col1, TileRow1Col0, TileRow1Col1,]
148466
148501
  async fetchAndReadTilemap(queryTiles, reqWidth, reqHeight) {
148467
- let available = [];
148502
+ let available = queryTiles.map(() => false);
148468
148503
  if (queryTiles.length === 0) {
148469
148504
  return available;
148470
148505
  }
148471
- const row = queryTiles[0].row;
148472
- const column = queryTiles[0].column;
148473
- const level = queryTiles[0].level;
148474
- let reqRow, reqColumn;
148475
- if (reqWidth === this.fallbackTileMapRequestSize && reqHeight === this.fallbackTileMapRequestSize) {
148476
- reqRow = row;
148477
- reqColumn = column;
148478
- }
148479
- else {
148480
- // If tile map if big enough. create offset that will place the current tile in the middle of the tilemap.
148481
- // If we place the first query tile in the top-left corner (i.e. without offset), any query for a tile located above or on the left
148482
- // will trigger a new request.
148483
- const offsetRow = (reqHeight / 2.0) - 1;
148484
- const offsetColumn = (reqWidth / 2.0) - 1;
148485
- reqRow = Math.max(row - offsetRow, 0);
148486
- reqColumn = Math.max(column - offsetColumn, 0);
148487
- }
148488
- try {
148489
- // console.log(`Tilemap request: ${level},${reqRow},${reqColumn},${reqWidth},${reqHeight}`);
148490
- const json = await this.fetchTileMapFromServer(level, reqRow, reqColumn, reqWidth, reqHeight);
148506
+ // console.log(`queryTiles: ${queryTiles.map((quad) => quad.contentId)}`);
148507
+ // Find the top-left most corner of the extent covering the query tiles.
148508
+ const getTopLeftCorner = (tiles) => {
148509
+ let row;
148510
+ let column;
148511
+ for (const quad of tiles) {
148512
+ if (row === undefined || quad.row <= row)
148513
+ row = quad.row;
148514
+ if (column === undefined || quad.column <= column) {
148515
+ column = quad.column;
148516
+ }
148517
+ }
148518
+ return { row, column };
148519
+ };
148520
+ const level = queryTiles[0].level; // We assume all tiles to be on the same level
148521
+ let missingQueryTiles = this.collectTilesMissingFromCache(queryTiles);
148522
+ let gotAdjusted = false;
148523
+ let nbAttempt = 0; // Safety: We should never be making more requests than the number of queries tiles (otherwise something is wrong)
148524
+ while (missingQueryTiles.length > 0
148525
+ && (nbAttempt++ < queryTiles.length)) {
148526
+ const tileMapTopLeft = getTopLeftCorner(missingQueryTiles);
148527
+ if (tileMapTopLeft.row === undefined || tileMapTopLeft.column === undefined)
148528
+ return available; // Should not occurs since missingQueryTiles is non empty
148529
+ let tileMapRow = tileMapTopLeft.row;
148530
+ let tileMapColumn = tileMapTopLeft.column;
148531
+ const logLocationOffset = (newRow, newCol) => `[Row:${newRow !== tileMapTopLeft.row ? `${tileMapTopLeft.row}->${newRow}` : `${newRow}`} Column:${newCol !== tileMapTopLeft.column ? `${tileMapTopLeft.column}->${newCol}` : `${newCol}`}]`;
148532
+ // Position the top-left missing tile in the middle of the tilemap; minimizing requests if sibling tiles are requested right after
148533
+ // If previous response got adjusted, don't try to optimize tile map location
148534
+ if (queryTiles.length < this.tileMapRequestSize && !gotAdjusted) {
148535
+ const tileMapOffset = this.tileMapOffset - Math.floor(Math.sqrt(queryTiles.length) * 0.5);
148536
+ const missingTileBufferSize = Math.ceil(tileMapOffset * 0.5);
148537
+ if (this.isCacheMissingTile(level, tileMapRow - missingTileBufferSize, tileMapColumn - missingTileBufferSize, tileMapRow - 1, tileMapColumn - 1)) {
148538
+ tileMapRow = Math.max(tileMapRow - tileMapOffset, 0);
148539
+ tileMapColumn = Math.max(tileMapColumn - tileMapOffset, 0);
148540
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `Offset applied to location in top-left direction: ${logLocationOffset(tileMapRow, tileMapColumn)}`);
148541
+ }
148542
+ else {
148543
+ const leftMissingTiles = this.isCacheMissingTile(level, tileMapRow, tileMapColumn - missingTileBufferSize, tileMapRow + missingTileBufferSize, tileMapColumn - 1);
148544
+ const topMissingTiles = this.isCacheMissingTile(level, tileMapRow - missingTileBufferSize, tileMapColumn, tileMapRow - 1, tileMapColumn + missingTileBufferSize);
148545
+ if (leftMissingTiles && topMissingTiles) {
148546
+ tileMapRow = Math.max(tileMapRow - tileMapOffset, 0);
148547
+ tileMapColumn = Math.max(tileMapColumn - tileMapOffset, 0);
148548
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `Offset applied to location in top-left direction. ${logLocationOffset(tileMapRow, tileMapColumn)}`);
148549
+ }
148550
+ else if (leftMissingTiles) {
148551
+ tileMapColumn = Math.max(tileMapColumn - tileMapOffset, 0);
148552
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `Offset applied to location in left direction. ${logLocationOffset(tileMapRow, tileMapColumn)}`);
148553
+ }
148554
+ else if (topMissingTiles) {
148555
+ tileMapRow = Math.max(tileMapRow - tileMapOffset, 0);
148556
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `Offset applied to location in top direction: ${logLocationOffset(tileMapRow, tileMapColumn)}`);
148557
+ }
148558
+ else
148559
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `No offset applied to location: ${logLocationOffset(tileMapRow, tileMapColumn)}`);
148560
+ }
148561
+ }
148562
+ const json = await this.fetchTileMapFromServer(level, tileMapRow, tileMapColumn, reqWidth, reqHeight);
148491
148563
  let tileMapWidth = reqWidth;
148492
148564
  let tileMapHeight = reqHeight;
148493
148565
  if (Array.isArray(json.data)) {
148494
148566
  // The response width and height might be different than the requested dimensions.
148495
148567
  // Ref: https://developers.arcgis.com/rest/services-reference/enterprise/tile-map.htm
148496
148568
  if (json.adjusted) {
148569
+ gotAdjusted = true;
148497
148570
  // If tilemap size got adjusted, I'm expecting to get adjusted size...
148498
148571
  // otherwise there is something really odd with this server.
148499
148572
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(json.location?.width !== undefined && json.location?.height !== undefined);
@@ -148502,71 +148575,57 @@ class ArcGISTileMap {
148502
148575
  tileMapHeight = json.location?.height;
148503
148576
  }
148504
148577
  }
148505
- let k = 0;
148506
- for (let j = 0; j < tileMapWidth; j++) {
148507
- for (let i = 0; i < tileMapHeight; i++) {
148578
+ // Build cache from tile map response
148579
+ for (let j = 0; j < tileMapHeight; j++) {
148580
+ for (let i = 0; i < tileMapWidth; i++) {
148508
148581
  const avail = json.data[(j * tileMapWidth) + i] !== 0;
148509
- const curColumn = reqColumn + i;
148510
- const curRow = reqRow + j;
148511
- // console.log(`Tilemap tile:: ${level},${curRow},${curColumn} => ${avail}`);
148582
+ const curColumn = tileMapColumn + i;
148583
+ const curRow = tileMapRow + j;
148512
148584
  this._tilesCache.set(_internal__WEBPACK_IMPORTED_MODULE_1__.QuadId.getTileContentId(level, curColumn, curRow), avail);
148513
- // Check if actual tile is among the children we are looking for, if so update the availability array.
148514
- if (curColumn >= queryTiles[0].column && curColumn <= queryTiles[queryTiles.length - 1].column
148515
- && curRow >= queryTiles[0].row && curRow <= queryTiles[queryTiles.length - 1].row) {
148516
- available[k++] = avail;
148517
- }
148518
148585
  }
148519
148586
  }
148587
+ // Collect tile missing from the cache
148588
+ // There are 2 reasons why the tile map response would not cover all the missing tiles:
148589
+ // 1. The requested tile map size is not large enough to cover all tiles
148590
+ // 2. The tile map size has been adjusted by the server (i.e. data bundle limits)
148591
+ missingQueryTiles = this.collectTilesMissingFromCache(missingQueryTiles);
148592
+ if (missingQueryTiles.length > 0)
148593
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, `There are ${missingQueryTiles.length} missing tiles from previous request`);
148520
148594
  }
148521
148595
  else {
148522
- // If server returns data (i.e. error 422), thats fine we assume all tiles of tilemap are not available.
148523
- available = queryTiles.map(() => false);
148524
- // Mark all tilemap tiles to non-available in the cache too
148596
+ missingQueryTiles = [];
148597
+ // Mark all tilemap tiles to non-available in the cache too.
148525
148598
  for (let j = 0; j < tileMapWidth; j++) {
148526
148599
  for (let i = 0; i < tileMapHeight; i++) {
148527
- this._tilesCache.set(_internal__WEBPACK_IMPORTED_MODULE_1__.QuadId.getTileContentId(level, reqColumn + i, reqRow + j), false);
148600
+ this._tilesCache.set(_internal__WEBPACK_IMPORTED_MODULE_1__.QuadId.getTileContentId(level, tileMapColumn + i, tileMapRow + j), false);
148528
148601
  }
148529
148602
  }
148530
148603
  }
148604
+ } // end loop missing tiles
148605
+ if (nbAttempt > queryTiles.length) {
148606
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, `Request loop was terminated; unable to get missing tiles; `);
148531
148607
  }
148532
- catch (_error) {
148533
- available = queryTiles.map(() => false);
148534
- }
148608
+ // Create final output array from cache
148609
+ available = queryTiles.map((quad) => this._tilesCache.get(quad.contentId) ?? false);
148610
+ if (available.includes(false))
148611
+ return available;
148535
148612
  return available;
148536
148613
  }
148537
148614
  async getChildrenAvailabilityFromServer(childIds) {
148538
- // We need to check cache again:
148539
- // Tiles we are looking for may have been added to cache while we were waiting in the call queue.
148540
- const cacheInfo = this.getAvailableTilesFromCache(childIds);
148541
- if (cacheInfo.allTilesFound) {
148542
- return cacheInfo.available;
148543
- }
148544
148615
  let available;
148545
148616
  try {
148546
148617
  available = await this.fetchAndReadTilemap(childIds, this.tileMapRequestSize, this.tileMapRequestSize);
148547
- if (available.length !== childIds.length) {
148548
- if (this.tileMapRequestSize > this.fallbackTileMapRequestSize) {
148549
- // Maybe we were unlucky and the tilemap got adjusted our the tiles we are looking for got clipped,
148550
- // so let try we a smaller tilemap
148551
- available = await this.fetchAndReadTilemap(childIds, this.fallbackTileMapRequestSize, this.fallbackTileMapRequestSize);
148552
- }
148553
- if (available.length < childIds.length) {
148554
- // Could not all tiles children tiles, returns what we got and fill any gaps with false.
148555
- const tmpAvail = childIds.map(() => false);
148556
- for (let i = 0; i < available.length; i++) {
148557
- tmpAvail[i] = available[i];
148558
- }
148559
- available = tmpAvail;
148560
- }
148561
- }
148562
148618
  }
148563
- catch (_error) {
148619
+ catch (err) {
148564
148620
  // if any error occurs, we assume tiles not to be visible
148621
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, `Error while fetching tile map data : ${err}`);
148565
148622
  available = childIds.map(() => false);
148566
148623
  }
148567
148624
  return available;
148568
148625
  }
148569
148626
  }
148627
+ ArcGISTileMap.maxLod = 30;
148628
+
148570
148629
 
148571
148630
 
148572
148631
  /***/ }),
@@ -150006,7 +150065,7 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
150006
150065
  const fetch = async (url, options) => {
150007
150066
  return this.fetch(url, options);
150008
150067
  };
150009
- this._tileMap = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGISTileMap(this._settings.url, this._settings, fetch, json.tileInfo?.lods?.length);
150068
+ this._tileMap = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGISTileMap(this._settings.url, this._settings, fetch);
150010
150069
  }
150011
150070
  }
150012
150071
  // Read range using fullextent from service metadata
@@ -288995,7 +289054,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
288995
289054
  /***/ ((module) => {
288996
289055
 
288997
289056
  "use strict";
288998
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.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 && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.2","@itwin/core-bentley":"workspace:^4.3.2","@itwin/core-common":"workspace:^4.3.2","@itwin/core-geometry":"workspace:^4.3.2","@itwin/core-orbitgt":"workspace:^4.3.2","@itwin/core-quantity":"workspace:^4.3.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":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","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.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
289057
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.5","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.5","@itwin/core-bentley":"workspace:^4.3.5","@itwin/core-common":"workspace:^4.3.5","@itwin/core-geometry":"workspace:^4.3.5","@itwin/core-orbitgt":"workspace:^4.3.5","@itwin/core-quantity":"workspace:^4.3.5"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","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"}}');
288999
289058
 
289000
289059
  /***/ })
289001
289060