@itwin/rpcinterface-full-stack-tests 4.0.0-dev.72 → 4.0.0-dev.73

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.
@@ -144841,7 +144841,7 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
144841
144841
  super(props, tree);
144842
144842
  this._everDisplayed = false;
144843
144843
  this.transformToRoot = props.transformToRoot;
144844
- this.additiveRefinement = (undefined === props.additiveRefinement) ? this.realityParent?.additiveRefinement : props.additiveRefinement;
144844
+ this.additiveRefinement = props.additiveRefinement ?? this.realityParent?.additiveRefinement;
144845
144845
  this.noContentButTerminateOnSelection = props.noContentButTerminateOnSelection;
144846
144846
  this.rangeCorners = props.rangeCorners;
144847
144847
  this.region = props.region;
@@ -144956,21 +144956,31 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
144956
144956
  child.preloadRealityTilesAtDepth(depth, context, args);
144957
144957
  }
144958
144958
  }
144959
+ // Preload tiles that are protected:
144960
+ // * used tiles (where "used" may mean: selected/preloaded for display or content requested);
144961
+ // * parents and siblings of other protected tiles.
144959
144962
  /** @internal */
144960
- selectRealityChildren(context, args, traversalDetails) {
144961
- const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
144962
- if (_internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading === childrenLoadStatus) {
144963
- args.markChildrenLoading();
144964
- traversalDetails.childrenLoading = true;
144965
- return;
144963
+ preloadProtectedTiles(args, context) {
144964
+ const children = this.realityChildren;
144965
+ let hasProtectedChildren = false;
144966
+ if (children && !this.additiveRefinement) {
144967
+ for (const child of children) {
144968
+ hasProtectedChildren = child.preloadProtectedTiles(args, context) || hasProtectedChildren;
144969
+ }
144966
144970
  }
144967
- if (undefined !== this.realityChildren) {
144968
- const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);
144969
- traversalChildren.initialize();
144970
- for (let i = 0; i < this.children.length; i++)
144971
- this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));
144972
- traversalChildren.combine(traversalDetails);
144971
+ if (children && hasProtectedChildren) {
144972
+ for (const child of children) {
144973
+ if (child.isDisplayable && !child.isLoaded)
144974
+ context.preload(child, args);
144975
+ }
144976
+ return true; // Parents of protected tiles are protected
144977
+ }
144978
+ // Special case of the root tile
144979
+ if (this === this.realityRoot.rootTile) {
144980
+ context.preload(this, args);
144981
+ return true;
144973
144982
  }
144983
+ return context.selected.find((tile) => tile === this) !== undefined;
144974
144984
  }
144975
144985
  /** @internal */
144976
144986
  addBoundingGraphic(builder, color) {
@@ -145007,55 +145017,157 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
145007
145017
  if (child.isReady && child.computeVisibilityFactor(args) > 0) {
145008
145018
  scratchLoadedChildren.push(child);
145009
145019
  }
145010
- else if (!child.getLoadedRealityChildren(args))
145020
+ else if (!child.getLoadedRealityChildren(args)) {
145011
145021
  return false;
145022
+ }
145012
145023
  }
145013
145024
  return true;
145014
145025
  }
145015
145026
  /** @internal */
145016
145027
  forceSelectRealityTile() { return false; }
145017
145028
  /** @internal */
145029
+ minimumVisibleFactor() {
145030
+ if (this.additiveRefinement)
145031
+ return 0.25;
145032
+ else
145033
+ return 0;
145034
+ }
145035
+ /** @internal */
145018
145036
  selectRealityTiles(context, args, traversalDetails) {
145019
145037
  const visibility = this.computeVisibilityFactor(args);
145020
- if (visibility < 0)
145038
+ const isNotVisible = visibility < 0;
145039
+ if (isNotVisible)
145021
145040
  return;
145041
+ // Force loading if loader requires this tile. (cesium terrain visibility).
145022
145042
  if (this.realityRoot.loader.forceTileLoad(this) && !this.isReady) {
145023
- context.selectOrQueue(this, args, traversalDetails); // Force loading if loader requires this tile. (cesium terrain visibility).
145043
+ context.selectOrQueue(this, args, traversalDetails);
145024
145044
  return;
145025
145045
  }
145046
+ // Force to return early without selecting
145026
145047
  if (visibility >= 1 && this.noContentButTerminateOnSelection)
145027
145048
  return;
145028
- if (this.isDisplayable && (visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded)) {
145029
- if (!this.isOccluded(args.viewingSpace)) {
145030
- context.selectOrQueue(this, args, traversalDetails);
145031
- if (!this.isReady) { // This tile is visible but not loaded - Use higher resolution children if present
145032
- if (this.getLoadedRealityChildren(args))
145033
- context.select(scratchLoadedChildren, args);
145034
- scratchLoadedChildren.length = 0;
145035
- }
145036
- }
145049
+ const shouldSelectThisTile = visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded;
145050
+ if (shouldSelectThisTile && this.isDisplayable) { // Select this tile
145051
+ // Return early if tile is totally occluded
145052
+ if (this.isOccluded(args.viewingSpace))
145053
+ return;
145054
+ // Attempt to select this tile. If not ready, queue it
145055
+ context.selectOrQueue(this, args, traversalDetails);
145056
+ // This tile is visible but not loaded - Use higher resolution children if present
145057
+ if (!this.isReady)
145058
+ this.selectRealityChildrenAsFallback(context, args, traversalDetails);
145037
145059
  }
145038
- else {
145060
+ else { // Select children instead of this tile
145061
+ // With additive refinement it is necessary to display this tile along with any displayed children
145039
145062
  if (this.additiveRefinement && this.isDisplayable && !this.useAdditiveRefinementStepchildren())
145040
- context.selectOrQueue(this, args, traversalDetails); // With additive refinement it is necessary to display this tile along with any displayed children.
145063
+ context.selectOrQueue(this, args, traversalDetails);
145041
145064
  this.selectRealityChildren(context, args, traversalDetails);
145042
- if (this.isReady && (traversalDetails.childrenLoading || 0 !== traversalDetails.queuedChildren.length)) {
145043
- const minimumVisibleFactor = .25; // If the tile has not yet been displayed in this viewport -- display only if it is within 25% of visible. Avoid overly tiles popping into view unexpectedly (terrain)
145044
- if (visibility > minimumVisibleFactor || this._everDisplayed)
145065
+ // Children are not ready: use this tile to avoid leaving a hole
145066
+ traversalDetails.shouldSelectParent = traversalDetails.shouldSelectParent || traversalDetails.queuedChildren.length !== 0;
145067
+ if (traversalDetails.shouldSelectParent) {
145068
+ // If the tile has not yet been displayed in this viewport -- display only if it is visible enough. Avoid overly tiles popping into view unexpectedly (terrain)
145069
+ if (visibility > this.minimumVisibleFactor() || this._everDisplayed) {
145045
145070
  context.selectOrQueue(this, args, traversalDetails);
145071
+ }
145046
145072
  }
145047
145073
  }
145048
145074
  }
145075
+ // Attempt to select the children of a tile in case they could be displayed while this tile is loading. This does not take into account visibility.
145076
+ /** @internal */
145077
+ selectRealityChildrenAsFallback(context, args, traversalDetails) {
145078
+ const childrenReady = this.getLoadedRealityChildren(args);
145079
+ if (childrenReady) {
145080
+ context.select(scratchLoadedChildren, args);
145081
+ traversalDetails.shouldSelectParent = false;
145082
+ }
145083
+ scratchLoadedChildren.length = 0;
145084
+ }
145085
+ // Recurse through children to select them normally
145049
145086
  /** @internal */
145050
- purgeContents(olderThan) {
145051
- // Discard contents of tiles that have not been "used" recently, where "used" may mean: selected/preloaded for display or content requested.
145087
+ selectRealityChildren(context, args, traversalDetails) {
145088
+ // Load children if not yet requested
145089
+ const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
145090
+ // Children are not ready yet
145091
+ if (childrenLoadStatus === _internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading) {
145092
+ args.markChildrenLoading();
145093
+ traversalDetails.shouldSelectParent = true;
145094
+ return;
145095
+ }
145096
+ if (this.realityChildren !== undefined) {
145097
+ // Attempt to select the children
145098
+ const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);
145099
+ traversalChildren.initialize();
145100
+ for (let i = 0; i < this.children.length; i++)
145101
+ this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));
145102
+ traversalChildren.combine(traversalDetails);
145103
+ }
145104
+ }
145105
+ /** @internal */
145106
+ purgeContents(olderThan, useProtectedTiles) {
145107
+ const tilesToPurge = new Set();
145108
+ // Get the list of tiles to purge
145109
+ if (useProtectedTiles && !this.additiveRefinement)
145110
+ this.getTilesToPurge(olderThan, tilesToPurge);
145111
+ else
145112
+ this.getTilesToPurgeWithoutProtection(olderThan, tilesToPurge);
145113
+ // Discard contents of tiles that have been marked.
145052
145114
  // Note we do not discard the child Tile objects themselves.
145053
- if (this.usageMarker.isExpired(olderThan))
145054
- this.disposeContents();
145115
+ for (const tile of tilesToPurge)
145116
+ tile.disposeContents();
145117
+ }
145118
+ // Populate a set with tiles that should be disposed. Prevent some tiles to be disposed to avoid holes when moving.
145119
+ // Return true if the current tile is "protected".
145120
+ getTilesToPurge(olderThan, tilesToPurge) {
145055
145121
  const children = this.realityChildren;
145056
- if (children)
145057
- for (const child of children)
145058
- child.purgeContents(olderThan);
145122
+ // Protected tiles cannot be purged. They are:
145123
+ // * used tiles (where "used" may mean: selected/preloaded for display or content requested);
145124
+ // * parents and siblings of other protected tiles.
145125
+ let hasProtectedChildren = false;
145126
+ if (children) {
145127
+ for (const child of children) {
145128
+ hasProtectedChildren = child.getTilesToPurge(olderThan, tilesToPurge) || hasProtectedChildren;
145129
+ }
145130
+ if (hasProtectedChildren) {
145131
+ // Siblings of protected tiles are protected too. We need to remove them from it
145132
+ for (const child of children) {
145133
+ // Because the current tile can be invisible, relying on its children to display geometry,
145134
+ // we have to recurse in order to remove the first children that has geometry, otherwise,
145135
+ // some holes might appear
145136
+ child.removeFirstDisplayableChildrenFromSet(tilesToPurge);
145137
+ }
145138
+ return true; // Parents of protected tiles are protected
145139
+ }
145140
+ }
145141
+ const isInUse = this.usageMarker.getIsTileInUse();
145142
+ if (!isInUse && this.usageMarker.isTimestampExpired(olderThan)) {
145143
+ tilesToPurge.add(this);
145144
+ }
145145
+ return isInUse;
145146
+ }
145147
+ // Populate a set with tiles that should be disposed. Does not prevent some tiles to be disposed to avoid holes when moving.
145148
+ // This method is simpler and more fitting for devices that has a bigger memory constraint, such as mobiles.
145149
+ // However, it causes the apparition of holes by letting important tiles to be purged.
145150
+ getTilesToPurgeWithoutProtection(olderThan, tilesToPurge) {
145151
+ const children = this.realityChildren;
145152
+ if (children) {
145153
+ for (const child of children) {
145154
+ child.getTilesToPurgeWithoutProtection(olderThan, tilesToPurge);
145155
+ }
145156
+ }
145157
+ if (this.usageMarker.isExpired(olderThan))
145158
+ tilesToPurge.add(this);
145159
+ }
145160
+ removeFirstDisplayableChildrenFromSet(set) {
145161
+ if (set.size === 0)
145162
+ return;
145163
+ if (this.isDisplayable) {
145164
+ set.delete(this);
145165
+ return;
145166
+ }
145167
+ if (this.realityChildren !== undefined) {
145168
+ for (const child of this.realityChildren)
145169
+ child.removeFirstDisplayableChildrenFromSet(set);
145170
+ }
145059
145171
  }
145060
145172
  /** @internal */
145061
145173
  computeVisibilityFactor(args) {
@@ -145082,26 +145194,6 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
145082
145194
  return this.maximumSize / args.getPixelSize(this);
145083
145195
  }
145084
145196
  /** @internal */
145085
- preloadTilesInFrustum(args, context, preloadSizeModifier) {
145086
- const visibility = this.computeVisibilityFactor(args);
145087
- if (visibility < 0)
145088
- return;
145089
- if (visibility * preloadSizeModifier > 1) {
145090
- if (this.isDisplayable)
145091
- context.preload(this, args);
145092
- }
145093
- else {
145094
- const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
145095
- if (_internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading === childrenLoadStatus) {
145096
- args.markChildrenLoading();
145097
- }
145098
- else if (undefined !== this.realityChildren) {
145099
- for (const child of this.realityChildren)
145100
- child.preloadTilesInFrustum(args, context, preloadSizeModifier);
145101
- }
145102
- }
145103
- }
145104
- /** @internal */
145105
145197
  get _anyChildNotFound() {
145106
145198
  if (undefined !== this.children)
145107
145199
  for (const child of this.children)
@@ -145538,13 +145630,13 @@ __webpack_require__.r(__webpack_exports__);
145538
145630
  class TraversalDetails {
145539
145631
  constructor() {
145540
145632
  this.queuedChildren = new Array();
145541
- this.childrenLoading = false;
145542
145633
  this.childrenSelected = false;
145634
+ this.shouldSelectParent = false;
145543
145635
  }
145544
145636
  initialize() {
145545
145637
  this.queuedChildren.length = 0;
145546
- this.childrenLoading = false;
145547
145638
  this.childrenSelected = false;
145639
+ this.shouldSelectParent = false;
145548
145640
  }
145549
145641
  }
145550
145642
  /** @internal */
@@ -145563,11 +145655,11 @@ class TraversalChildrenDetails {
145563
145655
  }
145564
145656
  combine(parentDetails) {
145565
145657
  parentDetails.queuedChildren.length = 0;
145566
- parentDetails.childrenLoading = false;
145567
145658
  parentDetails.childrenSelected = false;
145659
+ parentDetails.shouldSelectParent = false;
145568
145660
  for (const child of this._childDetails) {
145569
- parentDetails.childrenLoading = parentDetails.childrenLoading || child.childrenLoading;
145570
145661
  parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;
145662
+ parentDetails.shouldSelectParent = parentDetails.shouldSelectParent || child.shouldSelectParent;
145571
145663
  for (const queuedChild of child.queuedChildren)
145572
145664
  parentDetails.queuedChildren.push(queuedChild);
145573
145665
  }
@@ -145587,14 +145679,15 @@ class TraversalSelectionContext {
145587
145679
  selectOrQueue(tile, args, traversalDetails) {
145588
145680
  tile.selectSecondaryTiles(args, this);
145589
145681
  tile.markUsed(args);
145682
+ traversalDetails.shouldSelectParent = true;
145590
145683
  if (tile.isReady) {
145591
145684
  args.markReady(tile);
145592
145685
  this.selected.push(tile);
145593
145686
  tile.markDisplayed();
145594
145687
  this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);
145595
145688
  traversalDetails.queuedChildren.length = 0;
145596
- traversalDetails.childrenLoading = false;
145597
145689
  traversalDetails.childrenSelected = true;
145690
+ traversalDetails.shouldSelectParent = false;
145598
145691
  }
145599
145692
  else if (!tile.isNotFound) {
145600
145693
  traversalDetails.queuedChildren.push(tile);
@@ -145621,7 +145714,6 @@ class TraversalSelectionContext {
145621
145714
  }
145622
145715
  }
145623
145716
  }
145624
- const scratchFrustum = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Frustum();
145625
145717
  const scratchCarto = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Cartographic.createZero();
145626
145718
  const scratchPoint = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero(), scratchOrigin = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero();
145627
145719
  const scratchRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
@@ -145681,7 +145773,7 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
145681
145773
  /** @internal */
145682
145774
  prune() {
145683
145775
  const olderThan = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeTimePoint.now().minus(this.expirationTime);
145684
- this.rootTile.purgeContents(olderThan);
145776
+ this.rootTile.purgeContents(olderThan, !_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.ProcessDetector.isMobileBrowser);
145685
145777
  }
145686
145778
  /** @internal */
145687
145779
  draw(args) {
@@ -145868,7 +145960,7 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
145868
145960
  if (baseDepth > 0) // Maps may force loading of low level globe tiles.
145869
145961
  rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);
145870
145962
  if (!freezeTiles)
145871
- this.preloadTilesForScene(args, context, undefined);
145963
+ rootTile.preloadProtectedTiles(args, context);
145872
145964
  }
145873
145965
  if (!freezeTiles)
145874
145966
  for (const tile of context.missing) {
@@ -145899,19 +145991,6 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
145899
145991
  return selected;
145900
145992
  }
145901
145993
  /** @internal */
145902
- preloadTilesForScene(args, context, frustumTransform) {
145903
- const preloadFrustum = args.viewingSpace.getPreloadFrustum(frustumTransform, scratchFrustum);
145904
- const preloadFrustumPlanes = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.FrustumPlanes.fromFrustum(preloadFrustum);
145905
- const worldToNpc = preloadFrustum.toMap4d();
145906
- const preloadWorldToViewMap = args.viewingSpace.calcNpcToView().multiplyMapMap(worldToNpc);
145907
- const preloadArgs = new _internal__WEBPACK_IMPORTED_MODULE_6__.RealityTileDrawArgs(args, preloadWorldToViewMap, preloadFrustumPlanes);
145908
- if (context.preloadDebugBuilder) {
145909
- context.preloadDebugBuilder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.blue, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.blue, 2, 0);
145910
- context.preloadDebugBuilder.addFrustum(preloadFrustum);
145911
- }
145912
- this.rootTile.preloadTilesInFrustum(preloadArgs, context, 2);
145913
- }
145914
- /** @internal */
145915
145994
  logTiles(label, tiles) {
145916
145995
  let depthString = "";
145917
145996
  let min = 10000, max = -10000;
@@ -149136,7 +149215,15 @@ class TileUsageMarker {
149136
149215
  }
149137
149216
  /** Returns true if this tile is currently in use by no [[TileUser]]s and its timestamp pre-dates `expirationTime`. */
149138
149217
  isExpired(expirationTime) {
149139
- return this._timePoint.before(expirationTime) && !_IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.tileAdmin.isTileInUse(this);
149218
+ return this.isTimestampExpired(expirationTime) && !this.getIsTileInUse();
149219
+ }
149220
+ /** Returns true if this tile is currently in use by any [[TileUser]]. */
149221
+ getIsTileInUse() {
149222
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.tileAdmin.isTileInUse(this);
149223
+ }
149224
+ /** Returns true if this tile's timestamp pre-dates `expirationTime`, without checking if it is in use. */
149225
+ isTimestampExpired(expirationTime) {
149226
+ return this._timePoint.before(expirationTime);
149140
149227
  }
149141
149228
  /** Updates the timestamp to the specified time and marks the tile as being in use by the specified [[TileUser]]. */
149142
149229
  mark(user, time) {
@@ -154109,6 +154196,10 @@ class MapTile extends _internal__WEBPACK_IMPORTED_MODULE_7__.RealityTile {
154109
154196
  return parentHeightDepth > MapTile._maxParentHeightDepth;
154110
154197
  }
154111
154198
  /** @internal */
154199
+ minimumVisibleFactor() {
154200
+ return 0.25;
154201
+ }
154202
+ /** @internal */
154112
154203
  getDrapeTextures() {
154113
154204
  if (undefined === this._imageryTiles)
154114
154205
  return undefined;
@@ -276483,7 +276574,7 @@ class TestContext {
276483
276574
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
276484
276575
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
276485
276576
  await core_frontend_1.NoRenderApp.startup({
276486
- applicationVersion: "4.0.0-dev.72",
276577
+ applicationVersion: "4.0.0-dev.73",
276487
276578
  applicationId: this.settings.gprid,
276488
276579
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
276489
276580
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -296036,7 +296127,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
296036
296127
  /***/ ((module) => {
296037
296128
 
296038
296129
  "use strict";
296039
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.72","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","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","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 \\"./node_modules/@itwin/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.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.0.0-dev.72","@itwin/core-bentley":"workspace:^4.0.0-dev.72","@itwin/core-common":"workspace:^4.0.0-dev.72","@itwin/core-geometry":"workspace:^4.0.0-dev.72","@itwin/core-orbitgt":"workspace:^4.0.0-dev.72","@itwin/core-quantity":"workspace:^4.0.0-dev.72"},"//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.33","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/semver":"7.3.10","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.36.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":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.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","semver":"^7.3.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"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"}}]}}');
296130
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.73","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","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","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 \\"./node_modules/@itwin/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.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.0.0-dev.73","@itwin/core-bentley":"workspace:^4.0.0-dev.73","@itwin/core-common":"workspace:^4.0.0-dev.73","@itwin/core-geometry":"workspace:^4.0.0-dev.73","@itwin/core-orbitgt":"workspace:^4.0.0-dev.73","@itwin/core-quantity":"workspace:^4.0.0-dev.73"},"//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.33","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/semver":"7.3.10","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.36.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":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.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","semver":"^7.3.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"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"}}]}}');
296040
296131
 
296041
296132
  /***/ }),
296042
296133