@itwin/ecschema-rpcinterface-tests 3.2.6 → 3.2.9

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.
@@ -61035,7 +61035,7 @@ var Id64;
61035
61035
  */
61036
61036
  function isInvalid(id) { return Id64.invalid === id; }
61037
61037
  Id64.isInvalid = isInvalid;
61038
- /** A specialized replacement for Set<Id64String> optimized for performance-critical code which represents large sets of 64-bit IDs as pairs of
61038
+ /** A specialized replacement for Set<Id64String> optimized for performance-critical code which represents large sets of [[Id64]]s as pairs of
61039
61039
  * 32-bit integers.
61040
61040
  * The internal representation is a Map<number, Set<number>> where the Map key is the upper 4 bytes of the IDs and the Set elements are the lower 4 bytes of the IDs.
61041
61041
  * Because the upper 4 bytes store the 24-bit briefcase ID plus the upper 8 bits of the local ID, there will be a very small distribution of unique Map keys.
@@ -61098,6 +61098,10 @@ var Id64;
61098
61098
  const set = this._map.get(high);
61099
61099
  return undefined !== set && set.has(low);
61100
61100
  }
61101
+ /** Returns true if the set contains the Id specified by `pair`. */
61102
+ hasPair(pair) {
61103
+ return this.has(pair.lower, pair.upper);
61104
+ }
61101
61105
  /** Returns true if the set contains no Ids. */
61102
61106
  get isEmpty() { return 0 === this._map.size; }
61103
61107
  /** Returns the number of Ids contained in the set. */
@@ -90890,8 +90894,6 @@ class RpcProtocol {
90890
90894
  async fulfill(request) {
90891
90895
  return new (this.invocationType)(this, request).fulfillment;
90892
90896
  }
90893
- /** @internal */
90894
- async initialize(_token) { }
90895
90897
  /** Serializes a request. */
90896
90898
  async serialize(request) {
90897
90899
  const serializedContext = await _RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__["RpcConfiguration"].requestContext.serialize(request);
@@ -91382,7 +91384,7 @@ class RpcRequest {
91382
91384
  this._retryAfter = null;
91383
91385
  this._transientFaults = 0;
91384
91386
  this._response = undefined;
91385
- this.responseProtocolVersion = 0;
91387
+ this.responseProtocolVersion = _RpcProtocol__WEBPACK_IMPORTED_MODULE_6__["RpcProtocolVersion"].None;
91386
91388
  this._created = new Date().getTime();
91387
91389
  this.path = "";
91388
91390
  this.method = "";
@@ -91462,10 +91464,6 @@ class RpcRequest {
91462
91464
  setLastUpdatedTime() {
91463
91465
  this._lastUpdated = new Date().getTime();
91464
91466
  }
91465
- /** Override to describe available headers based on a protocol-specific criteria (such as a CORS whitelist). */
91466
- isHeaderAvailable(_name) {
91467
- return true;
91468
- }
91469
91467
  computeRetryAfter(attempts) {
91470
91468
  return (((Math.pow(2, attempts) - 1) / 2) * 500) + 500;
91471
91469
  }
@@ -91506,7 +91504,6 @@ class RpcRequest {
91506
91504
  this._connecting = true;
91507
91505
  RpcRequest._activeRequests.set(this.id, this);
91508
91506
  this.protocol.events.raiseEvent(_RpcConstants__WEBPACK_IMPORTED_MODULE_3__["RpcProtocolEvent"].RequestCreated, this);
91509
- await this.protocol.initialize(this.operation.policy.token(this));
91510
91507
  this._sending = new Cancellable(this.setHeaders().then(async () => this.send()));
91511
91508
  this.operation.policy.sentCallback(this);
91512
91509
  const response = await this._sending.promise;
@@ -91707,9 +91704,8 @@ class RpcRequest {
91707
91704
  }
91708
91705
  async setHeaders() {
91709
91706
  const versionHeader = this.protocol.protocolVersionHeaderName;
91710
- if (versionHeader && _RpcProtocol__WEBPACK_IMPORTED_MODULE_6__["RpcProtocol"].protocolVersion && this.isHeaderAvailable(versionHeader)) {
91707
+ if (versionHeader && _RpcProtocol__WEBPACK_IMPORTED_MODULE_6__["RpcProtocol"].protocolVersion)
91711
91708
  this.setHeader(versionHeader, _RpcProtocol__WEBPACK_IMPORTED_MODULE_6__["RpcProtocol"].protocolVersion.toString());
91712
- }
91713
91709
  const headerNames = this.protocol.serializedClientRequestContextHeaderNames;
91714
91710
  const headerValues = await _RpcConfiguration__WEBPACK_IMPORTED_MODULE_2__["RpcConfiguration"].requestContext.serialize(this);
91715
91711
  if (headerNames.id)
@@ -92366,17 +92362,11 @@ class WebAppRpcLogging {
92366
92362
  "use strict";
92367
92363
  __webpack_require__.r(__webpack_exports__);
92368
92364
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebAppRpcProtocol", function() { return WebAppRpcProtocol; });
92369
- /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
92370
- /* harmony import */ var _core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/RpcConfiguration */ "../../core/common/lib/esm/rpc/core/RpcConfiguration.js");
92371
- /* harmony import */ var _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/RpcConstants */ "../../core/common/lib/esm/rpc/core/RpcConstants.js");
92372
- /* harmony import */ var _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/RpcProtocol */ "../../core/common/lib/esm/rpc/core/RpcProtocol.js");
92373
- /* harmony import */ var _OpenAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OpenAPI */ "../../core/common/lib/esm/rpc/web/OpenAPI.js");
92374
- /* harmony import */ var _WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./WebAppRpcLogging */ "../../core/common/lib/esm/rpc/web/WebAppRpcLogging.js");
92375
- /* harmony import */ var _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./WebAppRpcRequest */ "../../core/common/lib/esm/rpc/web/WebAppRpcRequest.js");
92376
- /* harmony import */ var _CommonLoggerCategory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../CommonLoggerCategory */ "../../core/common/lib/esm/CommonLoggerCategory.js");
92377
- /* harmony import */ var _RpcInterface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../RpcInterface */ "../../core/common/lib/esm/RpcInterface.js");
92378
- /* harmony import */ var _RpcManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../RpcManager */ "../../core/common/lib/esm/RpcManager.js");
92379
- /* harmony import */ var _core_RpcRoutingToken__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../core/RpcRoutingToken */ "../../core/common/lib/esm/rpc/core/RpcRoutingToken.js");
92365
+ /* harmony import */ var _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/RpcConstants */ "../../core/common/lib/esm/rpc/core/RpcConstants.js");
92366
+ /* harmony import */ var _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/RpcProtocol */ "../../core/common/lib/esm/rpc/core/RpcProtocol.js");
92367
+ /* harmony import */ var _OpenAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./OpenAPI */ "../../core/common/lib/esm/rpc/web/OpenAPI.js");
92368
+ /* harmony import */ var _WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./WebAppRpcLogging */ "../../core/common/lib/esm/rpc/web/WebAppRpcLogging.js");
92369
+ /* harmony import */ var _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./WebAppRpcRequest */ "../../core/common/lib/esm/rpc/web/WebAppRpcRequest.js");
92380
92370
  /*---------------------------------------------------------------------------------------------
92381
92371
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
92382
92372
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -92389,67 +92379,20 @@ __webpack_require__.r(__webpack_exports__);
92389
92379
 
92390
92380
 
92391
92381
 
92392
-
92393
-
92394
-
92395
-
92396
-
92397
-
92398
- class InitializeInterface extends _RpcInterface__WEBPACK_IMPORTED_MODULE_8__["RpcInterface"] {
92399
- async initialize(_token) { return this.forward(arguments); }
92400
- static createRequest(protocol, token) {
92401
- const routing = _core_RpcRoutingToken__WEBPACK_IMPORTED_MODULE_10__["RpcRoutingToken"].generate();
92402
- const config = class extends _core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__["RpcConfiguration"] {
92403
- constructor() {
92404
- super(...arguments);
92405
- this.interfaces = () => [InitializeInterface];
92406
- this.protocol = protocol;
92407
- }
92408
- };
92409
- _core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__["RpcConfiguration"].assignWithRouting(InitializeInterface, routing, config);
92410
- const instance = _core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__["RpcConfiguration"].obtain(config);
92411
- _core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_1__["RpcConfiguration"].initializeInterfaces(instance);
92412
- const client = _RpcManager__WEBPACK_IMPORTED_MODULE_9__["RpcManager"].getClientForInterface(InitializeInterface, routing);
92413
- return new (protocol.requestType)(client, "initialize", [token]);
92414
- }
92415
- }
92416
- InitializeInterface.interfaceName = "InitializeInterface";
92417
- InitializeInterface.interfaceVersion = "1.0.0";
92418
92382
  /** The HTTP application protocol.
92419
92383
  * @internal
92420
92384
  */
92421
- class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__["RpcProtocol"] {
92385
+ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_1__["RpcProtocol"] {
92422
92386
  /** Constructs an HTTP protocol. */
92423
92387
  constructor(configuration) {
92424
92388
  super(configuration);
92425
92389
  this.preserveStreams = true;
92426
- /** @internal */
92427
- this.allowedHeaders = new Set();
92428
92390
  /** An optional prefix for RPC operation URI paths. */
92429
92391
  this.pathPrefix = "";
92430
92392
  /** The RPC request class for this protocol. */
92431
- this.requestType = _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__["WebAppRpcRequest"];
92393
+ this.requestType = _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_4__["WebAppRpcRequest"];
92432
92394
  this.supportsStatusCategory = true;
92433
- this.events.addListener(_WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__["WebAppRpcLogging"].logProtocolEvent);
92434
- }
92435
- /** @internal */
92436
- async initialize(token) {
92437
- if (this._initialized) {
92438
- return this._initialized;
92439
- }
92440
- return this._initialized = new Promise(async (resolve) => {
92441
- try {
92442
- const request = InitializeInterface.createRequest(this, token);
92443
- const response = await request.preflight();
92444
- if (response && response.ok) {
92445
- (response.headers.get("Access-Control-Allow-Headers") || "").split(",").forEach((v) => this.allowedHeaders.add(v.trim()));
92446
- }
92447
- }
92448
- catch (err) {
92449
- _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["Logger"].logWarning(_CommonLoggerCategory__WEBPACK_IMPORTED_MODULE_7__["CommonLoggerCategory"].RpcInterfaceFrontend, "Unable to discover backend capabilities.", _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["BentleyError"].getErrorProps(err));
92450
- }
92451
- resolve();
92452
- });
92395
+ this.events.addListener(_WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_3__["WebAppRpcLogging"].logProtocolEvent);
92453
92396
  }
92454
92397
  /** Convenience handler for an RPC operation get request for an HTTP server. */
92455
92398
  async handleOperationGetRequest(req, res) {
@@ -92457,9 +92400,9 @@ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__["
92457
92400
  }
92458
92401
  /** Convenience handler for an RPC operation post request for an HTTP server. */
92459
92402
  async handleOperationPostRequest(req, res) {
92460
- const request = await _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__["WebAppRpcRequest"].parseRequest(this, req);
92403
+ const request = await _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_4__["WebAppRpcRequest"].parseRequest(this, req);
92461
92404
  const fulfillment = await this.fulfill(request);
92462
- await _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__["WebAppRpcRequest"].sendResponse(this, request, fulfillment, req, res);
92405
+ await _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_4__["WebAppRpcRequest"].sendResponse(this, request, fulfillment, req, res);
92463
92406
  }
92464
92407
  /** Convenience handler for an OpenAPI description request for an HTTP server. */
92465
92408
  handleOpenApiDescriptionRequest(_req, res) {
@@ -92469,45 +92412,45 @@ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__["
92469
92412
  /** Converts an HTTP content type value to an RPC content type value. */
92470
92413
  static computeContentType(httpType) {
92471
92414
  if (!httpType)
92472
- return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcContentType"].Unknown;
92473
- if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["WEB_RPC_CONSTANTS"].ANY_TEXT) === 0) {
92474
- return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcContentType"].Text;
92415
+ return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcContentType"].Unknown;
92416
+ if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["WEB_RPC_CONSTANTS"].ANY_TEXT) === 0) {
92417
+ return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcContentType"].Text;
92475
92418
  }
92476
- else if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["WEB_RPC_CONSTANTS"].BINARY) === 0) {
92477
- return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcContentType"].Binary;
92419
+ else if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["WEB_RPC_CONSTANTS"].BINARY) === 0) {
92420
+ return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcContentType"].Binary;
92478
92421
  }
92479
- else if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["WEB_RPC_CONSTANTS"].MULTIPART) === 0) {
92480
- return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcContentType"].Multipart;
92422
+ else if (httpType.indexOf(_core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["WEB_RPC_CONSTANTS"].MULTIPART) === 0) {
92423
+ return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcContentType"].Multipart;
92481
92424
  }
92482
92425
  else {
92483
- return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcContentType"].Unknown;
92426
+ return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcContentType"].Unknown;
92484
92427
  }
92485
92428
  }
92486
92429
  /** Supplies the status corresponding to a protocol-specific code value. */
92487
92430
  getStatus(code) {
92488
92431
  switch (code) {
92489
- case 404: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].NotFound;
92490
- case 202: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Pending;
92491
- case 200: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Resolved;
92492
- case 500: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Rejected;
92493
- case 204: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].NoContent;
92494
- case 502: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].BadGateway;
92495
- case 503: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].ServiceUnavailable;
92496
- case 504: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].GatewayTimeout;
92497
- default: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Unknown;
92432
+ case 404: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].NotFound;
92433
+ case 202: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Pending;
92434
+ case 200: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Resolved;
92435
+ case 500: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Rejected;
92436
+ case 204: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].NoContent;
92437
+ case 502: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].BadGateway;
92438
+ case 503: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].ServiceUnavailable;
92439
+ case 504: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].GatewayTimeout;
92440
+ default: return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Unknown;
92498
92441
  }
92499
92442
  }
92500
92443
  /** Supplies the protocol-specific code corresponding to a status value. */
92501
92444
  getCode(status) {
92502
92445
  switch (status) {
92503
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].NotFound: return 404;
92504
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Pending: return 202;
92505
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Resolved: return 200;
92506
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].Rejected: return 500;
92507
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].NoContent: return 204;
92508
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].BadGateway: return 502;
92509
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].ServiceUnavailable: return 503;
92510
- case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_2__["RpcRequestStatus"].GatewayTimeout: return 504;
92446
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].NotFound: return 404;
92447
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Pending: return 202;
92448
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Resolved: return 200;
92449
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].Rejected: return 500;
92450
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].NoContent: return 204;
92451
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].BadGateway: return 502;
92452
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].ServiceUnavailable: return 503;
92453
+ case _core_RpcConstants__WEBPACK_IMPORTED_MODULE_0__["RpcRequestStatus"].GatewayTimeout: return 504;
92511
92454
  default: return 501;
92512
92455
  }
92513
92456
  }
@@ -92518,7 +92461,7 @@ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__["
92518
92461
  /** An OpenAPI-compatible description of this protocol.
92519
92462
  * @internal
92520
92463
  */
92521
- get openAPIDescription() { return new _OpenAPI__WEBPACK_IMPORTED_MODULE_4__["RpcOpenAPIDescription"](this); }
92464
+ get openAPIDescription() { return new _OpenAPI__WEBPACK_IMPORTED_MODULE_2__["RpcOpenAPIDescription"](this); }
92522
92465
  }
92523
92466
 
92524
92467
 
@@ -92678,18 +92621,6 @@ class WebAppRpcRequest extends _core_RpcRequest__WEBPACK_IMPORTED_MODULE_6__["Rp
92678
92621
  return _core_RpcConstants__WEBPACK_IMPORTED_MODULE_3__["RpcContentType"].Text;
92679
92622
  }
92680
92623
  }
92681
- /** @internal */
92682
- async preflight() {
92683
- this.method = "options";
92684
- this._request.method = "options";
92685
- await this.setHeaders();
92686
- await this.send();
92687
- return this._response;
92688
- }
92689
- isHeaderAvailable(name) {
92690
- const allowed = this.protocol.allowedHeaders;
92691
- return allowed.has("*") || allowed.has(name);
92692
- }
92693
92624
  /** Sets request header values. */
92694
92625
  setHeader(name, value) {
92695
92626
  this._headers[name] = value;
@@ -92860,9 +92791,6 @@ class WebAppRpcRequest extends _core_RpcRequest__WEBPACK_IMPORTED_MODULE_6__["Rp
92860
92791
  return value;
92861
92792
  }
92862
92793
  async setupTransport() {
92863
- if (this.method === "options") {
92864
- return;
92865
- }
92866
92794
  const parameters = (await this.protocol.serialize(this)).parameters;
92867
92795
  const transportType = WebAppRpcRequest.computeTransportType(parameters, this.parameters);
92868
92796
  if (transportType === _core_RpcConstants__WEBPACK_IMPORTED_MODULE_3__["RpcContentType"].Binary) {
@@ -114972,17 +114900,24 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__["
114972
114900
  this.elements = new IModelConnection.Elements(this);
114973
114901
  this.codeSpecs = new IModelConnection.CodeSpecs(this);
114974
114902
  this.views = new IModelConnection.Views(this);
114903
+ this.categories = new IModelConnection.Categories(this);
114975
114904
  this.selectionSet = new _SelectionSet__WEBPACK_IMPORTED_MODULE_8__["SelectionSet"](this);
114976
114905
  this.hilited = new _SelectionSet__WEBPACK_IMPORTED_MODULE_8__["HiliteSet"](this);
114977
114906
  this.tiles = new _Tiles__WEBPACK_IMPORTED_MODULE_11__["Tiles"](this);
114978
- this.subcategories = new _SubCategoriesCache__WEBPACK_IMPORTED_MODULE_9__["SubCategoriesCache"](this);
114979
114907
  this.geoServices = new _GeoServices__WEBPACK_IMPORTED_MODULE_4__["GeoServices"](this);
114980
114908
  this.displayedExtents = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__["Range3d"].fromJSON(this.projectExtents);
114981
114909
  this.onProjectExtentsChanged.addListener(() => {
114982
114910
  // Compute new displayed extents as the union of the ranges we previously expanded by with the new project extents.
114983
114911
  this.expandDisplayedExtents(this._extentsExpansion);
114984
114912
  });
114913
+ this.hilited.onModelSubCategoryModeChanged.addListener(() => {
114914
+ _IModelApp__WEBPACK_IMPORTED_MODULE_5__["IModelApp"].viewManager.onSelectionSetChanged(this);
114915
+ });
114985
114916
  }
114917
+ /** A cache of information about SubCategories chiefly used for rendering.
114918
+ * @internal
114919
+ */
114920
+ get subcategories() { return this.categories.cache; }
114986
114921
  /** @internal Return true if a GCS is not defined for this iModelConnection; also returns true if GCS is defined but disabled. */
114987
114922
  get noGcsDefined() { return this._gcsDisabled || undefined === this.geographicCoordinateSystem; }
114988
114923
  /** @internal */
@@ -115796,6 +115731,25 @@ class SnapshotConnection extends IModelConnection {
115796
115731
  }
115797
115732
  }
115798
115733
  IModelConnection.Views = Views;
115734
+ /** Provides access to information about the [Category]($backend)'s stored in an [[IModelConnection]].
115735
+ * This information is cached internally so that repeated requests need not query the backend.
115736
+ * @see [[IModelConnection.categories]] for the categories associated with a specific iModel.
115737
+ */
115738
+ class Categories {
115739
+ /** @internal */
115740
+ constructor(iModel) {
115741
+ this.cache = new _SubCategoriesCache__WEBPACK_IMPORTED_MODULE_9__["SubCategoriesCache"](iModel);
115742
+ }
115743
+ /** Obtain information about one or more [Category]($backend)'s. */
115744
+ async getCategoryInfo(categoryIds) {
115745
+ return this.cache.getCategoryInfo(categoryIds);
115746
+ }
115747
+ /** Obtain information about one or more [SubCategory]($backend)'s belonging to the specified [Category]($backend). */
115748
+ async getSubCategoryInfo(args) {
115749
+ return this.cache.getSubCategoryInfo(args.category, args.subCategories);
115750
+ }
115751
+ }
115752
+ IModelConnection.Categories = Categories;
115799
115753
  })(IModelConnection || (IModelConnection = {}));
115800
115754
 
115801
115755
 
@@ -119341,11 +119295,17 @@ class HilitedElementIds extends HilitedIds {
119341
119295
  }
119342
119296
  /** A set of *hilited* elements for an [[IModelConnection]], by element id.
119343
119297
  * Hilited elements are displayed with a customizable hilite effect within a [[Viewport]].
119344
- * The set exposes 3 types of elements in 3 separate collections: geometric elements, subcategories, and geometric models.
119298
+ * The set exposes 3 types of elements in 3 separate collections: [GeometricElement]($backend), [GeometricModel]($backend), and [SubCategory]($backend).
119299
+ * The [[models]] and [[subcategories]] can be hilited independently or as an intersection of the two sets, as specified by [[modelSubCategoryMode]].
119300
+ *
119301
+ * Technically, the hilite effect is applied to [Feature]($common)s, not [Element]($backend)s. An element's geometry stream can contain multiple
119302
+ * features belonging to different subcategories.
119303
+ *
119304
+ * Because Javascript lacks efficient support for 64-bit integers, the Ids are stored as pairs of 32-bit integers via [Id64.Uint32Set]($bentley).
119305
+ *
119345
119306
  * @note Typically, elements are hilited by virtue of their presence in the IModelConnection's [[SelectionSet]]. The HiliteSet allows additional
119346
119307
  * elements to be displayed with the hilite effect without adding them to the [[SelectionSet]]. If you add elements to the HiliteSet directly, you
119347
119308
  * are also responsible for removing them as appropriate.
119348
- * @note Support for subcategories and geometric models in the HiliteSet is currently `beta`.
119349
119309
  * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel.
119350
119310
  * @see [Hilite.Settings]($common) for customization of the hilite effect.
119351
119311
  * @public
@@ -119359,12 +119319,30 @@ class HiliteSet {
119359
119319
  */
119360
119320
  constructor(iModel, syncWithSelectionSet = true) {
119361
119321
  this.iModel = iModel;
119322
+ this._mode = "union";
119323
+ /** Event raised just before changing the value of [[modelSubCategoryMode]]. */
119324
+ this.onModelSubCategoryModeChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["BeEvent"]();
119362
119325
  this._elements = new HilitedElementIds(iModel, syncWithSelectionSet);
119363
119326
  this.subcategories = new HilitedIds(iModel);
119364
119327
  this.models = new HilitedIds(iModel);
119365
119328
  }
119366
119329
  /** The set of hilited elements. */
119367
119330
  get elements() { return this._elements; }
119331
+ /** Controls how the sets of hilited [[models]] and [[subcategories]] interact with one another.
119332
+ * By default they are treated as a union: a [Feature]($common) is hilited if either its model **or** its subcategory is hilited.
119333
+ * This can be changed to an intersection such that a [Feature]($common) is hilited only if both its model **and** subcategory are hilited.
119334
+ * @note The sets of hilited models and subcategories are independent of the set of hilited [[elements]] - an element whose Id is present in
119335
+ * [[elements]] is always hilited regardless of its model or subcategories.
119336
+ */
119337
+ get modelSubCategoryMode() {
119338
+ return this._mode;
119339
+ }
119340
+ set modelSubCategoryMode(mode) {
119341
+ if (mode === this._mode)
119342
+ return;
119343
+ this.onModelSubCategoryModeChanged.raiseEvent(mode);
119344
+ this._mode = mode;
119345
+ }
119368
119346
  /** Control whether the hilited elements will be synchronized with the contents of the [[SelectionSet]].
119369
119347
  * By default they are synchronized. Applications that override this take responsibility for managing the set of hilited entities.
119370
119348
  * When turning synchronization off, the contents of the HiliteSet will remain unchanged.
@@ -120982,6 +120960,40 @@ class SubCategoriesCache {
120982
120960
  set.add(subCategoryId);
120983
120961
  this._appearances.set(subCategoryId, appearance);
120984
120962
  }
120963
+ async getCategoryInfo(inputCategoryIds) {
120964
+ // Eliminate duplicates...
120965
+ const categoryIds = new Set(typeof inputCategoryIds === "string" ? [inputCategoryIds] : inputCategoryIds);
120966
+ const req = this.load(categoryIds);
120967
+ if (req)
120968
+ await req.promise;
120969
+ const map = new Map();
120970
+ for (const categoryId of categoryIds) {
120971
+ const subCategoryIds = this._byCategoryId.get(categoryId);
120972
+ if (!subCategoryIds)
120973
+ continue;
120974
+ const subCategories = this.mapSubCategoryInfos(categoryId, subCategoryIds);
120975
+ map.set(categoryId, { id: categoryId, subCategories });
120976
+ }
120977
+ return map;
120978
+ }
120979
+ async getSubCategoryInfo(categoryId, inputSubCategoryIds) {
120980
+ // Eliminate duplicates...
120981
+ const subCategoryIds = new Set(typeof inputSubCategoryIds === "string" ? [inputSubCategoryIds] : inputSubCategoryIds);
120982
+ const req = this.load(categoryId);
120983
+ if (req)
120984
+ await req.promise;
120985
+ return this.mapSubCategoryInfos(categoryId, subCategoryIds);
120986
+ }
120987
+ mapSubCategoryInfos(categoryId, subCategoryIds) {
120988
+ const map = new Map();
120989
+ for (const id of subCategoryIds) {
120990
+ const appearance = this._appearances.get(id);
120991
+ Object(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["assert"])(undefined !== appearance);
120992
+ if (appearance)
120993
+ map.set(id, { id, categoryId, appearance });
120994
+ }
120995
+ return map;
120996
+ }
120985
120997
  }
120986
120998
  /** This namespace and the types within it are exported strictly for use in tests.
120987
120999
  * @internal
@@ -142389,7 +142401,7 @@ function extractHilitedVolumeClassifierCommands(hilites, cmds) {
142389
142401
  if (undefined === surface || undefined === surface.mesh.uniformFeatureId)
142390
142402
  continue;
142391
142403
  const feature = batch.featureTable.getPackedFeature(surface.mesh.uniformFeatureId);
142392
- if (undefined === feature || !Object(_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1__["isFeatureHilited"])(feature, hilites))
142404
+ if (undefined === feature || !Object(_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1__["isFeatureHilited"])(feature, hilites, hilites.models.hasId(batch.featureTable.modelId)))
142393
142405
  continue;
142394
142406
  break;
142395
142407
  }
@@ -142736,11 +142748,12 @@ function computeWidthAndHeight(nEntries, nRgbaPerEntry, nExtraRgba = 0, nTables
142736
142748
  Object(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["assert"])(0 === width % nRgbaPerEntry);
142737
142749
  return { width, height };
142738
142750
  }
142739
- function isFeatureHilited(feature, hilites) {
142751
+ function isFeatureHilited(feature, hilites, isModelHilited) {
142740
142752
  if (hilites.isEmpty)
142741
142753
  return false;
142742
- return hilites.elements.has(feature.elementId.lower, feature.elementId.upper) ||
142743
- hilites.subcategories.has(feature.subCategoryId.lower, feature.subCategoryId.upper);
142754
+ if ("union" === hilites.modelSubCategoryMode)
142755
+ return isModelHilited || hilites.elements.hasPair(feature.elementId) || hilites.subcategories.hasPair(feature.subCategoryId);
142756
+ return hilites.elements.hasPair(feature.elementId) || (isModelHilited && hilites.subcategories.hasPair(feature.subCategoryId));
142744
142757
  }
142745
142758
  /** @internal */
142746
142759
  class FeatureOverrides {
@@ -142765,6 +142778,8 @@ class FeatureOverrides {
142765
142778
  get anyViewIndependentTranslucent() { return this._anyViewIndependentTranslucent; }
142766
142779
  get anyOpaque() { return this._anyOpaque; }
142767
142780
  get anyHilited() { return this._anyHilited; }
142781
+ /** For tests. */
142782
+ get lutData() { var _a; return (_a = this._lut) === null || _a === void 0 ? void 0 : _a.dataBytes; }
142768
142783
  get byteLength() { return undefined !== this._lut ? this._lut.bytesUsed : 0; }
142769
142784
  get isUniform() { return 2 === this._lutParams[0] && 1 === this._lutParams[1]; }
142770
142785
  get isUniformFlashed() {
@@ -142814,7 +142829,7 @@ class FeatureOverrides {
142814
142829
  const allowFlash = true !== this._options.noFlash;
142815
142830
  const allowEmphasis = true !== this._options.noEmphasis;
142816
142831
  const modelIdParts = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["Id64"].getUint32Pair(map.modelId);
142817
- const isModelHilited = allowHilite && hilites.models.has(modelIdParts.lower, modelIdParts.upper);
142832
+ const isModelHilited = allowHilite && hilites.models.hasPair(modelIdParts);
142818
142833
  this._anyOpaque = this._anyTranslucent = this._anyViewIndependentTranslucent = this._anyHilited = false;
142819
142834
  let nHidden = 0;
142820
142835
  let nOverridden = 0;
@@ -142842,7 +142857,7 @@ class FeatureOverrides {
142842
142857
  continue;
142843
142858
  }
142844
142859
  let flags = app.nonLocatable ? 32 /* NonLocatable */ : 0 /* None */;
142845
- if (isModelHilited || (allowHilite && isFeatureHilited(feature, hilites))) {
142860
+ if (allowHilite && isFeatureHilited(feature, hilites, isModelHilited)) {
142846
142861
  flags |= 256 /* Hilited */;
142847
142862
  this._anyHilited = true;
142848
142863
  }
@@ -142902,39 +142917,42 @@ class FeatureOverrides {
142902
142917
  }
142903
142918
  // NB: If hilites is undefined, it means that the hilited set has not changed.
142904
142919
  updateFlashedAndHilited(data, map, flashed, hilites) {
142905
- const allowHilite = true !== this._options.noHilite;
142920
+ if (!hilites || true === this._options.noHilite) {
142921
+ this.updateFlashed(data, map, flashed);
142922
+ return;
142923
+ }
142906
142924
  const allowFlash = true !== this._options.noFlash;
142907
- this._anyOverridden = this._anyHilited = false;
142925
+ const intersect = "intersection" === hilites.modelSubCategoryMode;
142908
142926
  let isModelHilited = false;
142909
- let needElemId = allowFlash && undefined !== flashed;
142910
- let needSubCatId = false;
142911
- if (undefined !== hilites) {
142927
+ if (!hilites.models.isEmpty) {
142912
142928
  const modelId = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["Id64"].getUint32Pair(map.modelId);
142913
- isModelHilited = allowHilite && hilites.models.has(modelId.lower, modelId.upper);
142914
- needSubCatId = !isModelHilited && allowHilite && !hilites.subcategories.isEmpty;
142915
- needElemId = needElemId || (!isModelHilited && allowHilite && !hilites.elements.isEmpty);
142929
+ isModelHilited = hilites.models.hasPair(modelId);
142916
142930
  }
142931
+ this._anyOverridden = this._anyHilited = false;
142917
142932
  for (let i = 0; i < map.numFeatures; i++) {
142918
142933
  const dataIndex = i * 4 * 2;
142919
142934
  const oldFlags = data.getOvrFlagsAtIndex(dataIndex);
142920
142935
  if (0 /* None */ !== (oldFlags & 1 /* Visibility */)) {
142921
- // Do the same thing as when applying feature overrides - if it's invisible, none of the other flags matter
142922
- // (and if we don't check this we can end up rendering silhouettes around invisible elements in selection set)
142936
+ // If it's invisible, none of the other flags matter. We can't flash it and don't want to hilite it.
142923
142937
  this._anyOverridden = true;
142924
142938
  continue;
142925
142939
  }
142926
- let isFlashed = false;
142927
- let isHilited = undefined !== hilites ? isModelHilited : (0 !== (oldFlags & 256 /* Hilited */));
142928
- if (needElemId) {
142929
- const elemId = map.getElementIdPair(i);
142930
- if (undefined !== flashed && allowFlash)
142931
- isFlashed = elemId.lower === flashed.lower && elemId.upper === flashed.upper;
142932
- if (!isHilited && allowHilite && undefined !== hilites)
142933
- isHilited = hilites.elements.has(elemId.lower, elemId.upper);
142940
+ let elemId;
142941
+ let isHilited = isModelHilited && !intersect;
142942
+ if (!isHilited && !hilites.elements.isEmpty) {
142943
+ elemId = map.getElementIdPair(i);
142944
+ isHilited = hilites.elements.hasPair(elemId);
142945
+ }
142946
+ if (!isHilited && !hilites.subcategories.isEmpty) {
142947
+ if (isModelHilited || !intersect) {
142948
+ const subcat = map.getSubCategoryIdPair(i);
142949
+ isHilited = hilites.subcategories.hasPair(subcat);
142950
+ }
142934
142951
  }
142935
- if (needSubCatId && !isHilited && allowHilite) {
142936
- const subcat = map.getSubCategoryIdPair(i);
142937
- isHilited = hilites.subcategories.has(subcat.lower, subcat.upper);
142952
+ let isFlashed = false;
142953
+ if (flashed && allowFlash) {
142954
+ elemId = elemId !== null && elemId !== void 0 ? elemId : map.getElementIdPair(i);
142955
+ isFlashed = elemId.lower === flashed.lower && elemId.upper === flashed.upper;
142938
142956
  }
142939
142957
  let newFlags = isFlashed ? (oldFlags | 16 /* Flashed */) : (oldFlags & ~16 /* Flashed */);
142940
142958
  newFlags = isHilited ? (newFlags | 256 /* Hilited */) : (newFlags & ~256 /* Hilited */);
@@ -142946,6 +142964,30 @@ class FeatureOverrides {
142946
142964
  }
142947
142965
  this.updateUniformSymbologyFlags();
142948
142966
  }
142967
+ updateFlashed(data, map, flashed) {
142968
+ if (true === this._options.noFlash)
142969
+ return;
142970
+ this._anyOverridden = false;
142971
+ for (let i = 0; i < map.numFeatures; i++) {
142972
+ const dataIndex = i * 4 * 2;
142973
+ const oldFlags = data.getOvrFlagsAtIndex(dataIndex);
142974
+ if (0 /* None */ !== (oldFlags & 1 /* Visibility */)) {
142975
+ // If it's invisible, none of the other flags matter and we can't flash it.
142976
+ this._anyOverridden = true;
142977
+ continue;
142978
+ }
142979
+ let isFlashed = false;
142980
+ if (flashed) {
142981
+ const elemId = map.getElementIdPair(i);
142982
+ isFlashed = elemId.lower === flashed.lower && elemId.upper === flashed.upper;
142983
+ }
142984
+ const newFlags = isFlashed ? (oldFlags | 16 /* Flashed */) : (oldFlags & ~16 /* Flashed */);
142985
+ data.setOvrFlagsAtIndex(dataIndex, newFlags);
142986
+ if (0 /* None */ !== newFlags)
142987
+ this._anyOverridden = true;
142988
+ }
142989
+ this.updateUniformSymbologyFlags();
142990
+ }
142949
142991
  static createFromTarget(target, options, cleanup) {
142950
142992
  return new FeatureOverrides(target, options, cleanup);
142951
142993
  }
@@ -155125,6 +155167,7 @@ function swapImageByte(image, i0, i1) {
155125
155167
  class EmptyHiliteSet {
155126
155168
  constructor() {
155127
155169
  this.isEmpty = true;
155170
+ this.modelSubCategoryMode = "union";
155128
155171
  this.elements = this.subcategories = this.models = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__["Id64"].Uint32Set();
155129
155172
  }
155130
155173
  }
@@ -197886,7 +197929,7 @@ SetupWalkCameraTool.iconSpec = "icon-camera-location";
197886
197929
  /*! exports provided: name, version, description, main, module, typings, license, scripts, repository, keywords, author, peerDependencies, //devDependencies, devDependencies, //dependencies, dependencies, nyc, eslintConfig, default */
197887
197930
  /***/ (function(module) {
197888
197931
 
197889
- module.exports = JSON.parse("{\"name\":\"@itwin/core-frontend\",\"version\":\"3.2.6\",\"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.2.6\",\"@itwin/core-bentley\":\"workspace:^3.2.6\",\"@itwin/core-common\":\"workspace:^3.2.6\",\"@itwin/core-geometry\":\"workspace:^3.2.6\",\"@itwin/core-orbitgt\":\"workspace:^3.2.6\",\"@itwin/core-quantity\":\"workspace:^3.2.6\",\"@itwin/webgl-compatibility\":\"workspace:^3.2.6\"},\"//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.1.4\",\"@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\":\"^5.5.0\",\"@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\":\"^8.3.2\",\"nyc\":\"^15.1.0\",\"rimraf\":\"^3.0.2\",\"sinon\":\"^9.0.2\",\"source-map-loader\":\"^1.0.0\",\"typescript\":\"~4.4.0\",\"webpack\":\"4.42.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/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\":\"^5.5.0\",\"superagent\":\"^7.0.1\",\"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\"}}]}}");
197932
+ module.exports = JSON.parse("{\"name\":\"@itwin/core-frontend\",\"version\":\"3.2.9\",\"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.2.9\",\"@itwin/core-bentley\":\"workspace:^3.2.9\",\"@itwin/core-common\":\"workspace:^3.2.9\",\"@itwin/core-geometry\":\"workspace:^3.2.9\",\"@itwin/core-orbitgt\":\"workspace:^3.2.9\",\"@itwin/core-quantity\":\"workspace:^3.2.9\",\"@itwin/webgl-compatibility\":\"workspace:^3.2.9\"},\"//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.1.4\",\"@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\":\"^5.5.0\",\"@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\":\"^8.3.2\",\"nyc\":\"^15.1.0\",\"rimraf\":\"^3.0.2\",\"sinon\":\"^9.0.2\",\"source-map-loader\":\"^1.0.0\",\"typescript\":\"~4.4.0\",\"webpack\":\"4.42.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/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\":\"^5.5.0\",\"superagent\":\"^7.0.1\",\"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\"}}]}}");
197890
197933
 
197891
197934
  /***/ }),
197892
197935