@itwin/ecschema-rpcinterface-tests 5.16.0-dev.4 → 5.16.0-dev.6

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.
@@ -5394,9 +5394,9 @@ __webpack_require__.r(__webpack_exports__);
5394
5394
 
5395
5395
  /***/ },
5396
5396
 
5397
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"
5397
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"
5398
5398
  /*!*****************************************************************************************************************************************************************************************!*\
5399
- !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js ***!
5399
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js ***!
5400
5400
  \*****************************************************************************************************************************************************************************************/
5401
5401
  (__unused_webpack_module, exports, __webpack_require__) {
5402
5402
 
@@ -5451,9 +5451,9 @@ exports.TestFrontendAuthorizationClient = TestFrontendAuthorizationClient;
5451
5451
 
5452
5452
  /***/ },
5453
5453
 
5454
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"
5454
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"
5455
5455
  /*!*******************************************************************************************************************************************************************!*\
5456
- !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js ***!
5456
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js ***!
5457
5457
  \*******************************************************************************************************************************************************************/
5458
5458
  (__unused_webpack_module, exports) {
5459
5459
 
@@ -5539,9 +5539,9 @@ exports.TestUsers = TestUsers;
5539
5539
 
5540
5540
  /***/ },
5541
5541
 
5542
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"
5542
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"
5543
5543
  /*!***************************************************************************************************************************************************************************!*\
5544
- !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js ***!
5544
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js ***!
5545
5545
  \***************************************************************************************************************************************************************************/
5546
5546
  (__unused_webpack_module, exports, __webpack_require__) {
5547
5547
 
@@ -5577,9 +5577,9 @@ async function getServiceAuthTokenFromBackend(oidcConfig) {
5577
5577
 
5578
5578
  /***/ },
5579
5579
 
5580
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js"
5580
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js"
5581
5581
  /*!******************************************************************************************************************************************************************!*\
5582
- !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js ***!
5582
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js ***!
5583
5583
  \******************************************************************************************************************************************************************/
5584
5584
  (__unused_webpack_module, exports, __webpack_require__) {
5585
5585
 
@@ -5604,9 +5604,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
5604
5604
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
5605
5605
  };
5606
5606
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5607
- __exportStar(__webpack_require__(/*! ./TestUsers */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"), exports);
5608
- __exportStar(__webpack_require__(/*! ./TestFrontendAuthorizationClient */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"), exports);
5609
- __exportStar(__webpack_require__(/*! ./certa/certaCommon */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"), exports);
5607
+ __exportStar(__webpack_require__(/*! ./TestUsers */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestUsers.js"), exports);
5608
+ __exportStar(__webpack_require__(/*! ./TestFrontendAuthorizationClient */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/TestFrontendAuthorizationClient.js"), exports);
5609
+ __exportStar(__webpack_require__(/*! ./certa/certaCommon */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/certa/certaCommon.js"), exports);
5610
5610
  //# sourceMappingURL=frontend.js.map
5611
5611
 
5612
5612
  /***/ },
@@ -28306,9 +28306,9 @@ class QueryOptionsBuilder {
28306
28306
  return this;
28307
28307
  }
28308
28308
  /**
28309
- * By default all blobs are abbreviated to save memory and network bandwidth. If set to false, all blob data will be returned by query as is.
28309
+ * By default blobs are not abbreviated and all blob data is returned by query as is. If set to true, blobs are abbreviated to save memory and network bandwidth.
28310
28310
  * Use @type BlobReader to access blob data more efficiently.
28311
- * @param val A boolean value, if set to false will return complete blob type property data. This could cost time and network bandwidth.
28311
+ * @param val A boolean value, if set to true will abbreviate blob type property data instead of returning it in full. Returning complete blob data could cost time and network bandwidth.
28312
28312
  * @returns @type QueryOptionsBuilder for fluent interface.
28313
28313
  */
28314
28314
  setAbbreviateBlobs(val) {
@@ -36790,12 +36790,24 @@ class ImageMapLayerSettings extends MapLayerSettings {
36790
36790
  userName;
36791
36791
  password;
36792
36792
  accessKey;
36793
- /** List of query parameters to append to the settings URL and persisted as part of the JSON representation.
36794
- * @note Sensitive information like user credentials should be provided in [[unsavedQueryParams]] to ensure it is never persisted.
36793
+ /** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
36794
+ * and `delete` keep working.
36795
+ * @deprecated in 5.16. Use [[queryParams]].
36795
36796
  * @beta
36796
36797
  */
36797
36798
  savedQueryParams;
36799
+ /** Non-secret query parameters appended to every request made for the layer, persisted as part of the JSON
36800
+ * representation ([[ImageMapLayerProps.queryParams]]). Secrets must never be placed here; the hosting application
36801
+ * injects them per session through a fetch handler (see `MapLayerFormatRegistry.addMapLayerFetchHandler` in
36802
+ * `@itwin/core-frontend`), which also protects them against leaking through redirects.
36803
+ * @beta
36804
+ */
36805
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
36806
+ get queryParams() { return this.savedQueryParams; }
36807
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
36808
+ set queryParams(value) { this.savedQueryParams = value; }
36798
36809
  /** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.
36810
+ * @deprecated in 5.16. Register a fetch handler (`MapLayerFormatRegistry.addMapLayerFetchHandler` in `@itwin/core-frontend`) to inject secret or per-session parameters, which unlike this field are protected against leaking through redirects; use [[queryParams]] for non-secret parameters.
36799
36811
  * @beta
36800
36812
  */
36801
36813
  unsavedQueryParams;
@@ -36813,7 +36825,7 @@ class ImageMapLayerSettings extends MapLayerSettings {
36813
36825
  this.url = props.url;
36814
36826
  this.accessKey = props.accessKey;
36815
36827
  if (props.queryParams) {
36816
- this.savedQueryParams = { ...props.queryParams };
36828
+ this.queryParams = { ...props.queryParams };
36817
36829
  }
36818
36830
  if (props.properties) {
36819
36831
  this.properties = { ...props.properties };
@@ -36837,8 +36849,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
36837
36849
  props.formatId = this.formatId;
36838
36850
  if (this.subLayers.length > 0)
36839
36851
  props.subLayers = this.subLayers.map((x) => x.toJSON());
36840
- if (this.savedQueryParams)
36841
- props.queryParams = { ...this.savedQueryParams };
36852
+ if (this.queryParams)
36853
+ props.queryParams = { ...this.queryParams };
36842
36854
  if (this.properties) {
36843
36855
  props.properties = structuredClone(this.properties);
36844
36856
  }
@@ -36853,10 +36865,10 @@ class ImageMapLayerSettings extends MapLayerSettings {
36853
36865
  // Clone members not part of MapLayerProps
36854
36866
  clone.userName = this.userName;
36855
36867
  clone.password = this.password;
36868
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
36856
36869
  if (this.unsavedQueryParams)
36870
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
36857
36871
  clone.unsavedQueryParams = { ...this.unsavedQueryParams };
36858
- if (this.savedQueryParams)
36859
- clone.savedQueryParams = { ...this.savedQueryParams };
36860
36872
  return clone;
36861
36873
  }
36862
36874
  /** @internal */
@@ -36869,8 +36881,8 @@ class ImageMapLayerSettings extends MapLayerSettings {
36869
36881
  if (changedProps.queryParams) {
36870
36882
  props.queryParams = { ...changedProps.queryParams };
36871
36883
  }
36872
- else if (this.savedQueryParams) {
36873
- props.queryParams = { ...this.savedQueryParams };
36884
+ else if (this.queryParams) {
36885
+ props.queryParams = { ...this.queryParams };
36874
36886
  }
36875
36887
  if (changedProps.properties) {
36876
36888
  props.properties = { ...changedProps.properties };
@@ -36946,14 +36958,17 @@ class ImageMapLayerSettings extends MapLayerSettings {
36946
36958
  this.userName = userName;
36947
36959
  this.password = password;
36948
36960
  }
36949
- /** Collect all query parameters
36950
- * @beta
36951
- */
36961
+ /** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
36962
+ * (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
36963
+ * @beta
36964
+ */
36952
36965
  collectQueryParams() {
36953
36966
  let queryParams = {};
36954
- if (this.savedQueryParams)
36955
- queryParams = { ...this.savedQueryParams };
36967
+ if (this.queryParams)
36968
+ queryParams = { ...this.queryParams };
36969
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
36956
36970
  if (this.unsavedQueryParams)
36971
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
36957
36972
  queryParams = { ...queryParams, ...this.unsavedQueryParams };
36958
36973
  return queryParams;
36959
36974
  }
@@ -115999,6 +116014,7 @@ __webpack_require__.r(__webpack_exports__);
115999
116014
  /* harmony export */ ManipulatorToolEvent: () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_115__.ManipulatorToolEvent),
116000
116015
  /* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapCartoRectangle),
116001
116016
  /* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapFeatureInfoRecord),
116017
+ /* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerAuthenticationFailedError),
116002
116018
  /* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFeatureRecord),
116003
116019
  /* harmony export */ MapLayerFormat: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormat),
116004
116020
  /* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerFormatRegistry),
@@ -116008,6 +116024,7 @@ __webpack_require__.r(__webpack_exports__);
116008
116024
  /* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSourceStatus),
116009
116025
  /* harmony export */ MapLayerSources: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerSources),
116010
116026
  /* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapLayerTileTreeReference),
116027
+ /* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.MapLayerUntrustedOriginError),
116011
116028
  /* harmony export */ MapTile: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTile),
116012
116029
  /* harmony export */ MapTileProjection: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileProjection),
116013
116030
  /* harmony export */ MapTileTree: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.MapTileTree),
@@ -116223,10 +116240,12 @@ __webpack_require__.r(__webpack_exports__);
116223
116240
  /* harmony export */ createQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_72__.createQuantityDescription),
116224
116241
  /* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.createSpatialTileTreeReferences),
116225
116242
  /* harmony export */ createWorkerProxy: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.createWorkerProxy),
116243
+ /* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.credentialedFetchRedirect),
116226
116244
  /* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.deflateCoordinates),
116227
116245
  /* harmony export */ extractImageSourceDimensions: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.extractImageSourceDimensions),
116228
116246
  /* harmony export */ eyeToCartographicOnGlobe: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobe),
116229
116247
  /* harmony export */ eyeToCartographicOnGlobeFromGcs: () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_60__.eyeToCartographicOnGlobeFromGcs),
116248
+ /* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.fetchMapLayerRequest),
116230
116249
  /* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_125__.formatAnimationBranchId),
116231
116250
  /* harmony export */ getCenteredViewRect: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_12__.getCenteredViewRect),
116232
116251
  /* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_101__.getCesiumAssetUrl),
@@ -118639,6 +118658,7 @@ __webpack_require__.r(__webpack_exports__);
118639
118658
  /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeHandler),
118640
118659
  /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler),
118641
118660
  /* harmony export */ LogoDecoration: () => (/* reexport safe */ _GoogleMapsDecorator__WEBPACK_IMPORTED_MODULE_9__.LogoDecoration),
118661
+ /* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapLayerUntrustedOriginError),
118642
118662
  /* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapTileTreeReference),
118643
118663
  /* harmony export */ OnScreenTarget: () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_3__.OnScreenTarget),
118644
118664
  /* harmony export */ PerformanceMetrics: () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_4__.PerformanceMetrics),
@@ -118656,7 +118676,9 @@ __webpack_require__.r(__webpack_exports__);
118656
118676
  /* harmony export */ appendQueryParams: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.appendQueryParams),
118657
118677
  /* harmony export */ collectMaskRefs: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.collectMaskRefs),
118658
118678
  /* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.createSpatialTileTreeReferences),
118679
+ /* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.credentialedFetchRedirect),
118659
118680
  /* harmony export */ deflateCoordinates: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.deflateCoordinates),
118681
+ /* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.fetchMapLayerRequest),
118660
118682
  /* harmony export */ formatAnimationBranchId: () => (/* reexport safe */ _render_AnimationBranchState__WEBPACK_IMPORTED_MODULE_6__.formatAnimationBranchId)
118661
118683
  /* harmony export */ });
118662
118684
  /* harmony import */ var _common_internal_Symbols__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/internal/Symbols */ "../../core/frontend/lib/esm/common/internal/Symbols.js");
@@ -157742,6 +157764,8 @@ class ArcGisUtilities {
157742
157764
  metadata = await this.getServiceJson({ url: source.url, formatId: source.formatId, userName: source.userName, password: source.password, queryParams: source.collectQueryParams(), ignoreCache });
157743
157765
  }
157744
157766
  catch (err) {
157767
+ if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
157768
+ return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
157745
157769
  if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError) {
157746
157770
  let blockedOrigin;
157747
157771
  try {
@@ -157756,16 +157780,17 @@ class ArcGisUtilities {
157756
157780
  if (json === undefined) {
157757
157781
  return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidUrl };
157758
157782
  }
157759
- else if (json.error !== undefined) {
157783
+ const errorCode = metadata?.errorCode;
157784
+ if (errorCode !== undefined) {
157760
157785
  // If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers
157761
157786
  // and return information needed to initiate the authentification process... the end-user
157762
157787
  // will have to provide his credentials before we can fully validate this source.
157763
157788
  // Note: Some servers will throw a error 403 (You do not have permissions to access this resource or perform this operation),
157764
157789
  // instead of 499 (TokenRequired)
157765
- if (json.error.code === ArcGisErrorCode.TokenRequired || json.error.code === ArcGisErrorCode.MissingPermissions) {
157790
+ if (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions) {
157766
157791
  return (source.userName || source.password) ? { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials } : { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
157767
157792
  }
157768
- else if (json.error.code === ArcGisErrorCode.InvalidCredentials)
157793
+ else if (errorCode === ArcGisErrorCode.InvalidCredentials)
157769
157794
  return { status: _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials };
157770
157795
  }
157771
157796
  // Check this service support the expected queries
@@ -157816,11 +157841,17 @@ class ArcGisUtilities {
157816
157841
  * @param requireToken Flag to indicate if a token is required
157817
157842
  * @throws [[MapLayerUntrustedOriginError]] if an NTLM/Negotiate challenge could not be answered because
157818
157843
  * the URL's origin is not trusted (see [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]]);
157844
+ * [[MapLayerAuthenticationFailedError]] if a registered [[MapLayerFetchHandler]] reported an
157845
+ * authentication failure;
157819
157846
  * all other errors are caught and reported by returning `undefined`.
157820
157847
  */
157821
157848
  static async getServiceJson(args) {
157822
- const { url, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
157823
- if (!ignoreCache) {
157849
+ const { url, layerUrl = url, layerProperties, formatId, userName, password, queryParams, ignoreCache, requireToken } = args;
157850
+ const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.getAccessClient(formatId);
157851
+ // The cache is keyed by URL only, so responses customized by the fetch handler (e.g.
157852
+ // header-authenticated) must not be shared with or served from differently-customized requests.
157853
+ const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
157854
+ if (!ignoreCache && !hasFetchHandler) {
157824
157855
  const cached = ArcGisUtilities._serviceCache.get(url);
157825
157856
  if (cached !== undefined)
157826
157857
  return cached;
@@ -157839,55 +157870,71 @@ class ArcGisUtilities {
157839
157870
  appendParams(tmpUrl, queryParams);
157840
157871
  return tmpUrl;
157841
157872
  };
157873
+ // Routes each request through the registered fetch handler (if any); handler failures propagate.
157874
+ // The NTLM/SSO retry applies only to the initial request, and never to sends the handler modified.
157875
+ const requestJson = async (target, allowSsoRetry) => {
157876
+ return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.fetchMapLayerRequest)({
157877
+ url: target.toString(),
157878
+ formatId,
157879
+ layerUrl,
157880
+ layerProperties,
157881
+ send: async (request, credentialed) => {
157882
+ // Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
157883
+ let rsp = await fetch(request.url, { method: "GET", headers: request.headers, redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.credentialedFetchRedirect)() : undefined });
157884
+ if (allowSsoRetry && rsp.status === 401 && !requireToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
157885
+ // fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
157886
+ const challengedUrl = rsp.url || request.url;
157887
+ if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
157888
+ throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
157889
+ _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
157890
+ // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
157891
+ rsp = await fetch(challengedUrl, {
157892
+ method: "GET",
157893
+ credentials: "include",
157894
+ redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
157895
+ });
157896
+ }
157897
+ return rsp;
157898
+ },
157899
+ });
157900
+ };
157842
157901
  let accessTokenRequired = false;
157843
157902
  try {
157844
157903
  let tmpUrl = createUrlObj();
157845
157904
  // In some cases, caller might already know token is required, so append it immediately
157846
157905
  if (requireToken) {
157847
- const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
157848
157906
  if (accessClient) {
157849
157907
  accessTokenRequired = true;
157850
157908
  await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
157851
157909
  }
157852
157910
  }
157853
- let response = await fetch(tmpUrl, { method: "GET" });
157854
- if (response.status === 401 && !requireToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
157855
- // fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
157856
- const challengedUrl = response.url || tmpUrl.toString();
157857
- if (!_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.isSsoAllowed(challengedUrl))
157858
- throw new _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError(challengedUrl);
157859
- _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(challengedUrl);
157860
- // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
157861
- response = await fetch(challengedUrl, {
157862
- method: "GET",
157863
- credentials: "include",
157864
- redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
157865
- });
157866
- }
157911
+ let { response, managedByHandler } = await requestJson(tmpUrl, true);
157867
157912
  // Append security token when corresponding error code is returned by ArcGIS service
157868
- let errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
157913
+ const errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
157869
157914
  if (!accessTokenRequired
157870
157915
  && (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions)) {
157871
157916
  accessTokenRequired = true;
157872
157917
  // If token required
157873
- const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
157874
157918
  if (accessClient) {
157875
157919
  tmpUrl = createUrlObj();
157876
157920
  await ArcGisUtilities.appendSecurityToken(tmpUrl, accessClient, { mapLayerUrl: new URL(url), userName, password });
157877
- response = await fetch(tmpUrl.toString(), { method: "GET" });
157878
- errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
157921
+ ({ response, managedByHandler } = await requestJson(tmpUrl, false));
157879
157922
  }
157880
157923
  }
157881
157924
  const json = await response.json();
157882
- const info = { content: json, accessTokenRequired };
157883
- // Cache the response only if it doesn't contain any error.
157884
- ArcGisUtilities._serviceCache.set(url, (errorCode === undefined ? info : undefined));
157925
+ // Classified from the parsed body regardless of the Content-Type the server labelled it with.
157926
+ const contentErrorCode = json?.error?.code;
157927
+ const info = { content: json, accessTokenRequired, errorCode: managedByHandler ? undefined : contentErrorCode };
157928
+ // Cache the response only if it doesn't contain any error, and never when a fetch handler managed it or
157929
+ // is registered (the cache is keyed by URL only, so protected data must not be cached).
157930
+ if (!hasFetchHandler && !managedByHandler)
157931
+ ArcGisUtilities._serviceCache.set(url, (contentErrorCode === undefined ? info : undefined));
157885
157932
  return info; // Always return json, even though it contains an error code.
157886
157933
  }
157887
157934
  catch (err) {
157888
157935
  ArcGisUtilities._serviceCache.set(url, undefined);
157889
- if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError)
157890
- throw err; // propagate so callers can report the blocked origin
157936
+ if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerUntrustedOriginError || err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerAuthenticationFailedError)
157937
+ throw err; // propagate so callers can report the blocked origin / authentication failure
157891
157938
  return undefined;
157892
157939
  }
157893
157940
  }
@@ -158023,6 +158070,8 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158023
158070
  */
158024
158071
  _accessTokenRequired = false;
158025
158072
  _querySupported = false;
158073
+ /** Responses of [[fetch]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
158074
+ _handlerManagedFetchResponses = new WeakSet();
158026
158075
  get supportsMapFeatureInfo() { return this._querySupported; }
158027
158076
  constructor(settings, usesCachedTiles) {
158028
158077
  super(settings, usesCachedTiles);
@@ -158047,11 +158096,13 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158047
158096
  async getServiceJson() {
158048
158097
  let metadata;
158049
158098
  try {
158050
- metadata = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.getServiceJson({ url: this._settings.url, formatId: this._settings.formatId, userName: this._settings.userName, password: this._settings.password, queryParams: this._settings.collectQueryParams() });
158099
+ metadata = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.getServiceJson({ url: this._settings.url, layerProperties: this._settings.properties, formatId: this._settings.formatId, userName: this._settings.userName, password: this._settings.password, queryParams: this._settings.collectQueryParams() });
158051
158100
  }
158052
158101
  catch (err) {
158053
158102
  if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerUntrustedOriginError)
158054
158103
  this.reportBlockedOrigin(err.url);
158104
+ else if (err instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
158105
+ this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerImageryProviderStatus.RequireAuth);
158055
158106
  }
158056
158107
  if (metadata && metadata.accessTokenRequired) {
158057
158108
  const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.getAccessClient(this._settings.formatId);
@@ -158069,6 +158120,56 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158069
158120
  }
158070
158121
  return metadata;
158071
158122
  }
158123
+ /** The default send for [[fetch]]: legacy redirect policy and origin-trust checks for one target.
158124
+ * The NTLM/SSO retry applies only when `allowSsoRetry` (the initial request of an operation), and
158125
+ * never to sends a fetch handler modified.
158126
+ */
158127
+ async sendArcGisRequest(request, credentialed, allowSsoRetry, options) {
158128
+ const includeCredentials = this.includeUserCredentials(request.url);
158129
+ let rsp = await fetch(request.url, {
158130
+ ...options,
158131
+ headers: request.headers,
158132
+ credentials: includeCredentials ? "include" : undefined,
158133
+ // Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
158134
+ redirect: (includeCredentials || credentialed) ? ((0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.credentialedFetchRedirect)() ?? options?.redirect) : options?.redirect,
158135
+ });
158136
+ if (includeCredentials || credentialed)
158137
+ this.checkCredentialedRedirect(request.url, rsp);
158138
+ if (allowSsoRetry && rsp.status === 401 && !this._lastAccessToken && !credentialed && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])) {
158139
+ // fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
158140
+ const challengedUrl = rsp.url || request.url;
158141
+ if (this.isSsoAllowed(challengedUrl)) {
158142
+ // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
158143
+ this.logUntrustedOriginUse(challengedUrl);
158144
+ rsp = await fetch(challengedUrl, {
158145
+ ...options,
158146
+ credentials: "include",
158147
+ redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
158148
+ });
158149
+ if (rsp.status === 200) {
158150
+ this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
158151
+ }
158152
+ }
158153
+ else {
158154
+ this.reportBlockedOrigin(challengedUrl);
158155
+ }
158156
+ }
158157
+ return rsp;
158158
+ }
158159
+ /** Routes one request - initial, HTML fallback or token retry - through the registered fetch handler
158160
+ * (if any), with fresh headers per request so injected values are neither accumulated nor exposed to
158161
+ * cross-origin redirects.
158162
+ */
158163
+ async requestViaHandler(target, allowSsoRetry, options) {
158164
+ return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_0__.fetchMapLayerRequest)({
158165
+ url: target.toString(),
158166
+ formatId: this._settings.formatId,
158167
+ layerUrl: this._settings.url,
158168
+ layerProperties: this._settings.properties,
158169
+ headers: new Headers(options?.headers),
158170
+ send: async (request, credentialed) => this.sendArcGisRequest(request, credentialed, allowSsoRetry, options),
158171
+ });
158172
+ }
158072
158173
  /**
158073
158174
  * Make a request to an ArcGIS service using the provided URL and init parameters.
158074
158175
  * @param url URL to query
@@ -158077,19 +158178,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158077
158178
  */
158078
158179
  async fetch(url, options) {
158079
158180
  let errorCode;
158080
- const urlObj = new URL(url);
158081
158181
  const queryParams = this._settings.collectQueryParams();
158082
- Object.keys(queryParams).forEach((paramKey) => {
158083
- if (!urlObj.searchParams.has(paramKey))
158084
- urlObj.searchParams.append(paramKey, queryParams[paramKey]);
158085
- });
158086
- if (this._accessTokenRequired && this._accessClient) {
158087
- this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, {
158088
- mapLayerUrl: new URL(this._settings.url),
158089
- portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
158090
- userName: this._settings.userName,
158091
- password: this._settings.password
158182
+ const buildRequestUrl = () => {
158183
+ const requestUrl = new URL(url);
158184
+ Object.keys(queryParams).forEach((paramKey) => {
158185
+ if (!requestUrl.searchParams.has(paramKey))
158186
+ requestUrl.searchParams.append(paramKey, queryParams[paramKey]);
158092
158187
  });
158188
+ return requestUrl;
158189
+ };
158190
+ const accessTokenParams = {
158191
+ mapLayerUrl: new URL(this._settings.url),
158192
+ portal: typeof this._settings.properties?.portal === "string" ? this._settings.properties.portal : undefined,
158193
+ userName: this._settings.userName,
158194
+ password: this._settings.password,
158195
+ };
158196
+ const urlObj = buildRequestUrl();
158197
+ if (this._accessTokenRequired && this._accessClient) {
158198
+ this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, accessTokenParams);
158093
158199
  }
158094
158200
  // We want to complete the first request before letting other requests go;
158095
158201
  // this done to avoid flooding server with requests missing credentials
@@ -158098,35 +158204,9 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158098
158204
  else
158099
158205
  await this._firstRequestPromise;
158100
158206
  let response;
158207
+ let managedByHandler = false;
158101
158208
  try {
158102
- const requestUrl = urlObj.toString();
158103
- const includeCredentials = this.includeUserCredentials(requestUrl);
158104
- response = await fetch(urlObj, {
158105
- ...options,
158106
- credentials: includeCredentials ? "include" : undefined,
158107
- redirect: includeCredentials ? this.credentialedRedirect : options?.redirect,
158108
- });
158109
- if (includeCredentials)
158110
- this.checkCredentialedRedirect(requestUrl, response);
158111
- if (response.status === 401 && !this._lastAccessToken && (0,_request_utils__WEBPACK_IMPORTED_MODULE_3__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
158112
- // fetch follows redirects transparently, so trust decisions target the final (post-redirect) URL.
158113
- const challengedUrl = response.url || requestUrl;
158114
- if (this.isSsoAllowed(challengedUrl)) {
158115
- // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication).
158116
- this.logUntrustedOriginUse(challengedUrl);
158117
- response = await fetch(challengedUrl, {
158118
- ...options,
158119
- credentials: "include",
158120
- redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
158121
- });
158122
- if (response.status === 200) {
158123
- this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
158124
- }
158125
- }
158126
- else {
158127
- this.reportBlockedOrigin(challengedUrl);
158128
- }
158129
- }
158209
+ ({ response, managedByHandler } = await this.requestViaHandler(urlObj, true, options));
158130
158210
  if ((this._lastAccessToken && response.status === 400)
158131
158211
  || response.headers.get("content-type")?.toLowerCase().includes("htm")) {
158132
158212
  // For some reasons when we make a request with the fetch() api and there is a token error
@@ -158137,7 +158217,7 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158137
158217
  if (this._lastAccessToken && this._accessTokenRequired)
158138
158218
  tmpUrl.searchParams.append("token", this._lastAccessToken.token);
158139
158219
  tmpUrl.searchParams.append("f", "json");
158140
- response = await fetch(tmpUrl.toString(), options);
158220
+ ({ response, managedByHandler } = await this.requestViaHandler(tmpUrl, false, options));
158141
158221
  }
158142
158222
  errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
158143
158223
  if (errorCode !== undefined &&
@@ -158149,19 +158229,21 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158149
158229
  // Token might have expired, make a second attempt by forcing new token.
158150
158230
  if (this._accessClient?.invalidateToken !== undefined && this._lastAccessToken !== undefined)
158151
158231
  this._accessClient.invalidateToken(this._lastAccessToken);
158152
- const urlObj2 = new URL(url);
158232
+ // A fresh URL: the expired token must not remain as a first `token` parameter.
158233
+ const retryUrl = buildRequestUrl();
158153
158234
  if (this._accessClient) {
158154
158235
  try {
158155
- this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(urlObj, this._accessClient, { mapLayerUrl: urlObj, userName: this._settings.userName, password: this._settings.password });
158236
+ this._lastAccessToken = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.appendSecurityToken(retryUrl, this._accessClient, accessTokenParams);
158156
158237
  }
158157
158238
  catch {
158158
158239
  }
158159
158240
  }
158160
158241
  // Make a second attempt with refreshed token
158161
- response = await fetch(urlObj2.toString(), options);
158242
+ ({ response, managedByHandler } = await this.requestViaHandler(retryUrl, false, options));
158162
158243
  errorCode = await _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
158163
158244
  }
158164
- if (errorCode !== undefined &&
158245
+ // An error code in a response managed by the fetch handler is not classified here.
158246
+ if (!managedByHandler && errorCode !== undefined &&
158165
158247
  (errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
158166
158248
  || errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.InvalidToken
158167
158249
  || errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.MissingPermissions)) {
@@ -158176,13 +158258,24 @@ class ArcGISImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.
158176
158258
  }
158177
158259
  }
158178
158260
  }
158261
+ catch (error) {
158262
+ if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError)
158263
+ this.reportAuthenticationFailure();
158264
+ throw error;
158265
+ }
158179
158266
  finally {
158180
158267
  this.onFirstRequestCompleted.raiseEvent();
158181
158268
  }
158182
158269
  if (response === undefined)
158183
158270
  throw new Error("fetch call failed");
158271
+ if (managedByHandler)
158272
+ this._handlerManagedFetchResponses.add(response);
158184
158273
  return response;
158185
158274
  }
158275
+ /** Also true for responses of [[fetch]] a handler returned as its own. */
158276
+ isManagedByHandler(response) {
158277
+ return this._handlerManagedFetchResponses.has(response) || super.isManagedByHandler(response);
158278
+ }
158186
158279
  }
158187
158280
 
158188
158281
 
@@ -158339,14 +158432,15 @@ class ArcGISMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MOD
158339
158432
  const metadata = await this.getServiceJson();
158340
158433
  if (metadata?.content === undefined) {
158341
158434
  // By returning (i.e., not throwing), we ensure the tile tree gets created and the current provider is preserved to report status.
158342
- if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin)
158435
+ if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.UntrustedOrigin || this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth)
158343
158436
  return;
158344
158437
  throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.ServerError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_5__.IModelStatus.ValidationFailed, "");
158345
158438
  }
158346
158439
  const json = metadata.content;
158347
- if (json?.error?.code === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
158348
- || json?.error?.code === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.InvalidToken
158349
- || json?.error?.code === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.MissingPermissions) {
158440
+ const errorCode = metadata.errorCode;
158441
+ if (errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
158442
+ || errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.InvalidToken
158443
+ || errorCode === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.MissingPermissions) {
158350
158444
  // Check again layer status, it might have change during await.
158351
158445
  if (this.status === _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.Valid) {
158352
158446
  this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
@@ -159362,7 +159456,13 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
159362
159456
  async initialize() {
159363
159457
  try {
159364
159458
  const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
159365
- this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl, credentials);
159459
+ this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsCapabilities.create(this._baseUrl, {
159460
+ credentials,
159461
+ queryParams: this._settings.collectQueryParams(),
159462
+ formatId: this._settings.formatId,
159463
+ layerUrl: this._settings.url,
159464
+ layerProperties: this._settings.properties,
159465
+ });
159366
159466
  if (undefined !== this._capabilities) {
159367
159467
  this._allLayersRange = this._capabilities.cartoRange;
159368
159468
  if (this._capabilities.layer && Array.isArray(this._capabilities.layer.subLayers)) {
@@ -159396,7 +159496,7 @@ class WmsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODULE
159396
159496
  if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError) {
159397
159497
  this.reportBlockedOrigin(error.url);
159398
159498
  }
159399
- else if (error?.status === 401) {
159499
+ else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerAuthenticationFailedError || error?.status === 401) {
159400
159500
  this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerImageryProviderStatus.RequireAuth);
159401
159501
  }
159402
159502
  else {
@@ -159559,7 +159659,13 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
159559
159659
  async initialize() {
159560
159660
  try {
159561
159661
  const credentials = (this._settings.userName && this._settings.password ? { user: this._settings.userName, password: this._settings.password } : undefined);
159562
- this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl, credentials);
159662
+ this._capabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmtsCapabilities.create(this._baseUrl, {
159663
+ credentials,
159664
+ queryParams: this._settings.collectQueryParams(),
159665
+ formatId: this._settings.formatId,
159666
+ layerUrl: this._settings.url,
159667
+ layerProperties: this._settings.properties,
159668
+ });
159563
159669
  this.initPreferredTileMatrixSet();
159564
159670
  this.initPreferredStyle();
159565
159671
  this.initDisplayedLayer();
@@ -159575,7 +159681,7 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
159575
159681
  if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerUntrustedOriginError) {
159576
159682
  this.reportBlockedOrigin(error.url);
159577
159683
  }
159578
- else if (error?.status === 401) {
159684
+ else if (error instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerAuthenticationFailedError || error?.status === 401) {
159579
159685
  this.setStatus(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
159580
159686
  }
159581
159687
  else {
@@ -159735,6 +159841,113 @@ class WmtsMapLayerImageryProvider extends _tile_internal__WEBPACK_IMPORTED_MODUL
159735
159841
  }
159736
159842
 
159737
159843
 
159844
+ /***/ },
159845
+
159846
+ /***/ "../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js"
159847
+ /*!**********************************************************************!*\
159848
+ !*** ../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js ***!
159849
+ \**********************************************************************/
159850
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
159851
+
159852
+ "use strict";
159853
+ __webpack_require__.r(__webpack_exports__);
159854
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
159855
+ /* harmony export */ credentialedFetchRedirect: () => (/* binding */ credentialedFetchRedirect),
159856
+ /* harmony export */ fetchMapLayerRequest: () => (/* binding */ fetchMapLayerRequest)
159857
+ /* harmony export */ });
159858
+ /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
159859
+ /*---------------------------------------------------------------------------------------------
159860
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
159861
+ * See LICENSE.md in the project root for license terms and full copyright notice.
159862
+ *--------------------------------------------------------------------------------------------*/
159863
+ /** @packageDocumentation
159864
+ * @module Tiles
159865
+ */
159866
+
159867
+ /** Routes an outgoing map-layer request through the pipeline of [[MapLayerFetchHandler]]s registered via
159868
+ * [[MapLayerFormatRegistry.addMapLayerFetchHandler]]; issues the default send directly when there is none or
159869
+ * every handler declines. A handler may decline, pass a copy of the request with other query parameters or
159870
+ * headers to `fetchRequest` (which offers it to the remaining handlers, then sends it credentialed), call it
159871
+ * any number of times, short-circuit with its own response, or throw [[MapLayerAuthenticationFailedError]].
159872
+ * @internal
159873
+ */
159874
+ async function fetchMapLayerRequest(args) {
159875
+ const headers = args.headers ?? new Headers();
159876
+ const { layerUrl, layerProperties, formatId } = args;
159877
+ // Snapshot: registrations changing while a handler awaits must not shift the pipeline of a request in flight.
159878
+ const handlers = [...(_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers ?? [])];
159879
+ let parsed;
159880
+ if (handlers.length > 0) {
159881
+ try {
159882
+ // Relative URLs are valid targets (fetch resolves them against the document); resolve them the same way so
159883
+ // they are not opted out of the pipeline. Parsing only: the URL sent stays the caller's unless its query changes.
159884
+ parsed = new URL(args.url, typeof document !== "undefined" ? document.baseURI : undefined);
159885
+ }
159886
+ catch {
159887
+ // Not a parseable URL; issue the original request unhandled.
159888
+ }
159889
+ }
159890
+ if (!parsed) {
159891
+ const unhandled = await args.send({ url: args.url, layerUrl, layerProperties, formatId, searchParams: new URLSearchParams(), headers }, false);
159892
+ return { response: unhandled, managedByHandler: false };
159893
+ }
159894
+ const original = parsed;
159895
+ const originalSearch = original.searchParams.toString();
159896
+ const request = { url: args.url, layerUrl, layerProperties, formatId, searchParams: original.searchParams, headers };
159897
+ // Copies the mutable fields (including provider properties and their arrays; `readonly` is shallow), so a handler that
159898
+ // mutates its request in place and then declines cannot leak the mutation to the next handler or to the default
159899
+ // send. The URL string stays ours verbatim (URL serialization would normalize it) unless the query parameters
159900
+ // changed, in which case it is recomputed from them; the target never changes.
159901
+ const snapshot = (source) => {
159902
+ const searchParams = new URLSearchParams(source.searchParams);
159903
+ let url = args.url;
159904
+ if (searchParams.toString() !== originalSearch) {
159905
+ const changed = new URL(original);
159906
+ changed.search = searchParams.toString();
159907
+ url = changed.toString();
159908
+ }
159909
+ // Properties are informational layer context, not handler-editable request data. Always clone the
159910
+ // original settings, not source.layerProperties, so forwarding a modified copy cannot change that context.
159911
+ return { url, layerUrl, layerProperties: layerProperties === undefined ? undefined : structuredClone(layerProperties), formatId, searchParams, headers: new Headers(source.headers) };
159912
+ };
159913
+ // Offers the request to handlers[index..]: a declined request goes unchanged to the next handler; a request a
159914
+ // handler sends is offered to the remaining ones, then issued credentialed.
159915
+ const dispatch = async (index, toOffer) => {
159916
+ for (let i = index; i < handlers.length; ++i) {
159917
+ const handled = await handlers[i](snapshot(toOffer), async (toSend) => {
159918
+ const next = snapshot(toSend);
159919
+ return (await dispatch(i + 1, next)) ?? args.send(next, true);
159920
+ });
159921
+ if (handled)
159922
+ return handled;
159923
+ }
159924
+ return undefined;
159925
+ };
159926
+ const response = await dispatch(0, request);
159927
+ if (response)
159928
+ return { response, managedByHandler: true };
159929
+ return { response: await args.send(request, false), managedByHandler: false };
159930
+ }
159931
+ /** The redirect policy for a request that carries credentials: browser credentials (see
159932
+ * [[MapLayerImageryProvider.includeUserCredentials]]), settings-derived basic auth, or values a fetch handler
159933
+ * injected (see [[MapLayerFetchRequest]]).
159934
+ *
159935
+ * When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
159936
+ * outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
159937
+ * followed redirect can be inspected the credentials have already been delivered to the destination — so
159938
+ * refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
159939
+ * [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
159940
+ * that is the cost of the opt-in restriction.
159941
+ *
159942
+ * When the restriction is disabled (the default), redirects are followed as before and
159943
+ * [[MapLayerImageryProvider.checkCredentialedRedirect]] reports the destination after the fact.
159944
+ * @internal
159945
+ */
159946
+ function credentialedFetchRedirect() {
159947
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
159948
+ }
159949
+
159950
+
159738
159951
  /***/ },
159739
159952
 
159740
159953
  /***/ "../../core/frontend/lib/esm/internal/tile/map/MapTileAvailability.js"
@@ -160099,7 +160312,7 @@ __webpack_require__.r(__webpack_exports__);
160099
160312
  * @internal
160100
160313
  */
160101
160314
  function appendQueryParams(url, queryParams) {
160102
- if (!queryParams)
160315
+ if (!queryParams || Object.keys(queryParams).length === 0)
160103
160316
  return url;
160104
160317
  // create a lower-case array of keys
160105
160318
  const currentParams = [];
@@ -160151,7 +160364,8 @@ __webpack_require__.r(__webpack_exports__);
160151
160364
  /* harmony export */ WmsCapability: () => (/* binding */ WmsCapability)
160152
160365
  /* harmony export */ });
160153
160366
  /* harmony import */ var wms_capabilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wms-capabilities */ "../../common/temp/node_modules/.pnpm/wms-capabilities@0.6.0/node_modules/wms-capabilities/dist/wms-capabilities.mjs");
160154
- /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
160367
+ /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
160368
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
160155
160369
  /*---------------------------------------------------------------------------------------------
160156
160370
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
160157
160371
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -160161,8 +160375,9 @@ __webpack_require__.r(__webpack_exports__);
160161
160375
  */
160162
160376
 
160163
160377
 
160378
+
160164
160379
  function rangeFromJSONArray(json) {
160165
- return (Array.isArray(json) && json.length === 4) ? _tile_internal__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;
160380
+ return (Array.isArray(json) && json.length === 4) ? _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;
160166
160381
  }
160167
160382
  function rangeFromJSON(json) {
160168
160383
  if (undefined !== json.LatLonBoundingBox)
@@ -160358,13 +160573,9 @@ class WmsCapabilities {
160358
160573
  return undefined; // Degenerate capabilities document
160359
160574
  }
160360
160575
  }
160361
- static async create(url, credentials, ignoreCache, queryParams) {
160362
- if (!ignoreCache) {
160363
- const cached = WmsCapabilities._capabilitiesCache.get(url);
160364
- if (cached !== undefined)
160365
- return cached;
160366
- }
160367
- const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_1__.WmsUtilities.getBaseUrl(url));
160576
+ static async create(url, options) {
160577
+ const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
160578
+ const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
160368
160579
  tmpUrl.searchParams.append("request", "GetCapabilities");
160369
160580
  tmpUrl.searchParams.append("service", "WMS");
160370
160581
  if (queryParams) {
@@ -160373,15 +160584,25 @@ class WmsCapabilities {
160373
160584
  tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
160374
160585
  });
160375
160586
  }
160376
- const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_1__.WmsUtilities.fetchXml(tmpUrl.toString(), credentials);
160587
+ const cacheKey = tmpUrl.toString();
160588
+ // The cache never contains credentialed results (see the write below), so a credentialed request
160589
+ // must not be served a cached public document either; responses customized by the fetch handler
160590
+ // must not be shared with or served from differently-customized requests.
160591
+ const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
160592
+ if (!ignoreCache && !hasFetchHandler && !credentials) {
160593
+ const cached = WmsCapabilities._capabilitiesCache.get(cacheKey);
160594
+ if (cached !== undefined)
160595
+ return cached;
160596
+ }
160597
+ const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMS", layerUrl: layerUrl ?? url, layerProperties });
160377
160598
  if (!xmlCapabilities)
160378
160599
  return undefined;
160379
160600
  const capabilities = WmsCapabilities.tryParse(xmlCapabilities);
160380
160601
  if (capabilities === undefined)
160381
160602
  return undefined;
160382
- if (!credentials) {
160603
+ if (!credentials && !hasFetchHandler) {
160383
160604
  // Avoid caching protected data
160384
- WmsCapabilities._capabilitiesCache.set(url, capabilities);
160605
+ WmsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
160385
160606
  }
160386
160607
  return capabilities;
160387
160608
  }
@@ -160419,9 +160640,6 @@ __webpack_require__.r(__webpack_exports__);
160419
160640
 
160420
160641
 
160421
160642
 
160422
- /** @packageDocumentation
160423
- * @module Tiles
160424
- */
160425
160643
  /** @internal */
160426
160644
  class WmsUtilities {
160427
160645
  static getBaseUrl(url) {
@@ -160432,21 +160650,58 @@ class WmsUtilities {
160432
160650
  * fetch XML from HTTP request
160433
160651
  * @param url server URL to address the request
160434
160652
  */
160435
- static async fetchXml(url, credentials) {
160653
+ static async fetchXml(url, options) {
160654
+ const { credentials, formatId, layerUrl, layerProperties } = options ?? {};
160436
160655
  let headers;
160437
- if (credentials && credentials.user && credentials.password) {
160656
+ const hasCredentials = !!(credentials && credentials.user && credentials.password);
160657
+ if (hasCredentials) {
160438
160658
  // Basic credentials are considered settings-derived credentials for this source. When the registry is
160439
160659
  // enforcing trusted origins, the source URL itself is the only implicitly trusted origin for basic auth;
160440
160660
  // opaque/custom-protocol URLs have no network origin and must therefore be treated as untrusted.
160441
- const allowBasicAuth = !_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins
160661
+ // Optional chaining: some callers run before IModelApp startup.
160662
+ const allowBasicAuth = !_IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry?.restrictCredentialsToTrustedOrigins
160442
160663
  || _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.isCredentialsSharingAllowed(url, url);
160443
160664
  if (allowBasicAuth) {
160444
160665
  headers = new Headers();
160445
160666
  (0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.setBasicAuthorization)(headers, credentials);
160446
160667
  }
160447
160668
  }
160448
- let response = await fetch(url, { method: "GET", headers });
160449
- if (!headers && credentials && credentials.user && credentials.password && (response.status === 401 || response.status === 403)) {
160669
+ const credentialsWithheld = hasCredentials && headers === undefined;
160670
+ // Route the request through the registered fetch handler (if any). Handler failures — including
160671
+ // MapLayerAuthenticationFailedError — propagate so callers can transition to RequireAuth.
160672
+ const { response, managedByHandler } = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.fetchMapLayerRequest)({
160673
+ url,
160674
+ formatId: formatId ?? "",
160675
+ layerUrl: layerUrl ?? url,
160676
+ layerProperties,
160677
+ headers,
160678
+ send: async (request, credentialed) => {
160679
+ const rsp = await fetch(request.url, {
160680
+ method: "GET",
160681
+ headers: request.headers,
160682
+ // Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
160683
+ redirect: credentialed ? (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.credentialedFetchRedirect)() : undefined,
160684
+ });
160685
+ // A send the handler modified never falls back to the legacy basic-auth / NTLM-SSO handling:
160686
+ // the handler is the authentication authority for it.
160687
+ return credentialed ? rsp : WmsUtilities.handleLegacyChallenges(rsp, request.url, credentials, credentialsWithheld);
160688
+ },
160689
+ });
160690
+ if (response.status !== 200) {
160691
+ // A status in a response managed by the fetch handler is not an authentication failure (it would have
160692
+ // thrown MapLayerAuthenticationFailedError): report it without a status so callers do not classify it.
160693
+ if (managedByHandler)
160694
+ throw new Error(`Map-layer fetch handler returned status ${response.status} for '${url}'`);
160695
+ throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
160696
+ }
160697
+ return response.text();
160698
+ }
160699
+ /** Legacy (no injected credentials) challenge handling: basic-auth/untrusted-origin classification and the SSO retry.
160700
+ * `credentialsWithheld` is true when basic credentials exist but were not attached because the origin is untrusted.
160701
+ */
160702
+ static async handleLegacyChallenges(firstResponse, url, credentials, credentialsWithheld) {
160703
+ let response = firstResponse;
160704
+ if (credentialsWithheld && (response.status === 401 || response.status === 403)) {
160450
160705
  throw new _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapLayerUntrustedOriginError(url);
160451
160706
  }
160452
160707
  if (!credentials && response.status === 401 && (0,_request_utils__WEBPACK_IMPORTED_MODULE_2__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])) {
@@ -160462,9 +160717,7 @@ class WmsUtilities {
160462
160717
  redirect: _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined,
160463
160718
  });
160464
160719
  }
160465
- if (response.status !== 200)
160466
- throw new _request_Request__WEBPACK_IMPORTED_MODULE_1__.HttpResponseError(response.status, await response.text());
160467
- return response.text();
160720
+ return response;
160468
160721
  }
160469
160722
  }
160470
160723
 
@@ -160486,7 +160739,8 @@ __webpack_require__.r(__webpack_exports__);
160486
160739
  /* harmony export */ });
160487
160740
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
160488
160741
  /* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
160489
- /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
160742
+ /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
160743
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
160490
160744
  /*---------------------------------------------------------------------------------------------
160491
160745
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
160492
160746
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -160497,6 +160751,7 @@ __webpack_require__.r(__webpack_exports__);
160497
160751
 
160498
160752
 
160499
160753
 
160754
+
160500
160755
  var OwsConstants;
160501
160756
  (function (OwsConstants) {
160502
160757
  OwsConstants["ABSTRACT_XMLTAG"] = "ows:Abstract";
@@ -160902,14 +161157,14 @@ var WmtsCapability;
160902
161157
  upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(" ").map((x) => +x);
160903
161158
  }
160904
161159
  if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)
160905
- this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);
161160
+ this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);
160906
161161
  // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box
160907
161162
  if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes("EPSG:4326") || this.boundingBox?.crs?.includes("CRS:84"))) {
160908
161163
  const range = this.boundingBox.range;
160909
161164
  if (range)
160910
- this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);
161165
+ this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);
160911
161166
  else
160912
- this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_2__.MapCartoRectangle.createMaximum();
161167
+ this.wsg84BoundingBox = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.MapCartoRectangle.createMaximum();
160913
161168
  }
160914
161169
  // Style
160915
161170
  const style = elem.getElementsByTagName("Style");
@@ -160962,13 +161217,9 @@ class WmtsCapabilities {
160962
161217
  const xmlDoc = parser.parseFromString(xmlCapabilities, "text/xml");
160963
161218
  return new WmtsCapabilities(xmlDoc);
160964
161219
  }
160965
- static async create(url, credentials, ignoreCache, queryParams) {
160966
- if (!ignoreCache) {
160967
- const cached = WmtsCapabilities._capabilitiesCache.get(url);
160968
- if (cached !== undefined)
160969
- return cached;
160970
- }
160971
- const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.getBaseUrl(url));
161220
+ static async create(url, options) {
161221
+ const { credentials, ignoreCache, queryParams, formatId, layerUrl, layerProperties } = options ?? {};
161222
+ const tmpUrl = new URL(_tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.getBaseUrl(url));
160972
161223
  tmpUrl.searchParams.append("request", "GetCapabilities");
160973
161224
  tmpUrl.searchParams.append("service", "WMTS");
160974
161225
  if (queryParams) {
@@ -160977,12 +161228,22 @@ class WmtsCapabilities {
160977
161228
  tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
160978
161229
  });
160979
161230
  }
160980
- const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_2__.WmsUtilities.fetchXml(tmpUrl.toString(), credentials);
161231
+ const cacheKey = tmpUrl.toString();
161232
+ // The cache never contains credentialed results (see the write below), so a credentialed request
161233
+ // must not be served a cached public document either; responses customized by the fetch handler
161234
+ // must not be shared with or served from differently-customized requests.
161235
+ const hasFetchHandler = (_IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
161236
+ if (!ignoreCache && !hasFetchHandler && !credentials) {
161237
+ const cached = WmtsCapabilities._capabilitiesCache.get(cacheKey);
161238
+ if (cached !== undefined)
161239
+ return cached;
161240
+ }
161241
+ const xmlCapabilities = await _tile_internal__WEBPACK_IMPORTED_MODULE_3__.WmsUtilities.fetchXml(tmpUrl.toString(), { credentials, formatId: formatId ?? "WMTS", layerUrl: layerUrl ?? url, layerProperties });
160981
161242
  if (!xmlCapabilities)
160982
161243
  return undefined;
160983
161244
  const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);
160984
- if (capabilities)
160985
- WmtsCapabilities._capabilitiesCache.set(url, capabilities);
161245
+ if (capabilities && !credentials && !hasFetchHandler)
161246
+ WmtsCapabilities._capabilitiesCache.set(cacheKey, capabilities);
160986
161247
  return capabilities;
160987
161248
  }
160988
161249
  }
@@ -173006,27 +173267,27 @@ var TiledGraphicsProvider;
173006
173267
  "use strict";
173007
173268
  __webpack_require__.r(__webpack_exports__);
173008
173269
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
173009
- /* harmony export */ AnimatedTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.AnimatedTreeReference),
173010
- /* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_57__.ArcGISIdentifyRequestUrl),
173011
- /* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_53__.ArcGISImageryProvider),
173012
- /* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_57__.ArcGISMapLayerImageryProvider),
173270
+ /* harmony export */ AnimatedTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.AnimatedTreeReference),
173271
+ /* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISIdentifyRequestUrl),
173272
+ /* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_55__.ArcGISImageryProvider),
173273
+ /* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.ArcGISMapLayerImageryProvider),
173013
173274
  /* harmony export */ ArcGISTileMap: () => (/* reexport safe */ _internal_tile_map_ArcGISTileMap__WEBPACK_IMPORTED_MODULE_39__.ArcGISTileMap),
173014
- /* harmony export */ ArcGisErrorCode: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_43__.ArcGisErrorCode),
173015
- /* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_56__.ArcGisGeometryReaderJSON),
173016
- /* harmony export */ ArcGisUtilities: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_43__.ArcGisUtilities),
173275
+ /* harmony export */ ArcGisErrorCode: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisErrorCode),
173276
+ /* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_58__.ArcGisGeometryReaderJSON),
173277
+ /* harmony export */ ArcGisUtilities: () => (/* reexport safe */ _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__.ArcGisUtilities),
173017
173278
  /* harmony export */ B3dmReader: () => (/* reexport safe */ _internal_tile_B3dmReader__WEBPACK_IMPORTED_MODULE_34__.B3dmReader),
173018
173279
  /* harmony export */ BatchedTileIdMap: () => (/* reexport safe */ _internal_tile_BatchedTileIdMap__WEBPACK_IMPORTED_MODULE_12__.BatchedTileIdMap),
173019
- /* harmony export */ BingElevationProvider: () => (/* reexport safe */ _map_BingElevation__WEBPACK_IMPORTED_MODULE_73__.BingElevationProvider),
173020
- /* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_58__.BingMapsImageryLayerProvider),
173021
- /* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */ _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_88__.CesiumIonAssetProvider),
173022
- /* harmony export */ ContextShareProvider: () => (/* reexport safe */ _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_89__.ContextShareProvider),
173280
+ /* harmony export */ BingElevationProvider: () => (/* reexport safe */ _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__.BingElevationProvider),
173281
+ /* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_60__.BingMapsImageryLayerProvider),
173282
+ /* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */ _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__.CesiumIonAssetProvider),
173283
+ /* harmony export */ ContextShareProvider: () => (/* reexport safe */ _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__.ContextShareProvider),
173023
173284
  /* harmony export */ DisclosedTileTreeSet: () => (/* reexport safe */ _DisclosedTileTreeSet__WEBPACK_IMPORTED_MODULE_3__.DisclosedTileTreeSet),
173024
- /* harmony export */ DynamicIModelTile: () => (/* reexport safe */ _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_80__.DynamicIModelTile),
173025
- /* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */ _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_69__.EllipsoidTerrainProvider),
173026
- /* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_54__.FeatureGeometryBaseRenderer),
173027
- /* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_55__.FeatureGraphicsRenderer),
173028
- /* harmony export */ FetchCloudStorage: () => (/* reexport safe */ _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_92__.FetchCloudStorage),
173029
- /* harmony export */ GeographicTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_74__.GeographicTilingScheme),
173285
+ /* harmony export */ DynamicIModelTile: () => (/* reexport safe */ _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__.DynamicIModelTile),
173286
+ /* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */ _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__.EllipsoidTerrainProvider),
173287
+ /* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_56__.FeatureGeometryBaseRenderer),
173288
+ /* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_57__.FeatureGraphicsRenderer),
173289
+ /* harmony export */ FetchCloudStorage: () => (/* reexport safe */ _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__.FetchCloudStorage),
173290
+ /* harmony export */ GeographicTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.GeographicTilingScheme),
173030
173291
  /* harmony export */ GltfBufferData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfBufferData),
173031
173292
  /* harmony export */ GltfGraphicsReader: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfGraphicsReader),
173032
173293
  /* harmony export */ GltfMeshData: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfMeshData),
@@ -173034,67 +173295,68 @@ __webpack_require__.r(__webpack_exports__);
173034
173295
  /* harmony export */ GltfReaderProps: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.GltfReaderProps),
173035
173296
  /* harmony export */ GraphicsCollectorDrawArgs: () => (/* reexport safe */ _internal_tile_GraphicsCollector__WEBPACK_IMPORTED_MODULE_11__.GraphicsCollectorDrawArgs),
173036
173297
  /* harmony export */ I3dmReader: () => (/* reexport safe */ _internal_tile_I3dmReader__WEBPACK_IMPORTED_MODULE_33__.I3dmReader),
173037
- /* harmony export */ IModelTile: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_79__.IModelTile),
173298
+ /* harmony export */ IModelTile: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.IModelTile),
173038
173299
  /* harmony export */ IModelTileRequestChannels: () => (/* reexport safe */ _internal_tile_IModelTileRequestChannels__WEBPACK_IMPORTED_MODULE_27__.IModelTileRequestChannels),
173039
- /* harmony export */ IModelTileTree: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_81__.IModelTileTree),
173040
- /* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_63__.ImageryMapLayerFormat),
173041
- /* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_85__.ImageryMapLayerTreeReference),
173042
- /* harmony export */ ImageryMapTile: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_85__.ImageryMapTile),
173043
- /* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_85__.ImageryMapTileTree),
173044
- /* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_85__.ImageryTileTreeState),
173300
+ /* harmony export */ IModelTileTree: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.IModelTileTree),
173301
+ /* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.ImageryMapLayerFormat),
173302
+ /* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapLayerTreeReference),
173303
+ /* harmony export */ ImageryMapTile: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTile),
173304
+ /* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryMapTileTree),
173305
+ /* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__.ImageryTileTreeState),
173045
173306
  /* harmony export */ ImdlReader: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.ImdlReader),
173046
173307
  /* harmony export */ LRUTileList: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.LRUTileList),
173047
- /* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_94__.LayerTextureParams),
173308
+ /* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.LayerTextureParams),
173048
173309
  /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
173049
173310
  /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
173050
- /* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__.MapBoxLayerImageryProvider),
173311
+ /* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__.MapBoxLayerImageryProvider),
173051
173312
  /* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle),
173052
- /* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_41__.MapFeatureInfoRecord),
173053
- /* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_41__.MapLayerFeatureRecord),
173054
- /* harmony export */ MapLayerFormat: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_42__.MapLayerFormat),
173055
- /* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_42__.MapLayerFormatRegistry),
173056
- /* harmony export */ MapLayerImageryProvider: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.MapLayerImageryProvider),
173057
- /* harmony export */ MapLayerImageryProviderStatus: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.MapLayerImageryProviderStatus),
173058
- /* harmony export */ MapLayerSource: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_86__.MapLayerSource),
173059
- /* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_86__.MapLayerSourceStatus),
173060
- /* harmony export */ MapLayerSources: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_86__.MapLayerSources),
173061
- /* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_64__.MapLayerTileTreeReference),
173062
- /* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_42__.MapLayerUntrustedOriginError),
173063
- /* harmony export */ MapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_70__.MapTile),
173064
- /* harmony export */ MapTileLoader: () => (/* reexport safe */ _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_72__.MapTileLoader),
173065
- /* harmony export */ MapTileProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_70__.MapTileProjection),
173066
- /* harmony export */ MapTileTree: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.MapTileTree),
173067
- /* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.MapTileTreeReference),
173068
- /* harmony export */ MapTileTreeScaleRangeVisibility: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.MapTileTreeScaleRangeVisibility),
173069
- /* harmony export */ MapTiledGraphicsProvider: () => (/* reexport safe */ _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_87__.MapTiledGraphicsProvider),
173070
- /* harmony export */ MapTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_74__.MapTilingScheme),
173071
- /* harmony export */ ModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.ModelMapLayerTileTreeReference),
173072
- /* harmony export */ OPCFormatInterpreter: () => (/* reexport safe */ _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_91__.OPCFormatInterpreter),
173073
- /* harmony export */ OrbitGtTileTree: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__.OrbitGtTileTree),
173074
- /* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__.OrbitGtTreeReference),
173075
- /* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_70__.PlanarProjection),
173076
- /* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_70__.PlanarTilePatch),
173077
- /* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_94__.ProjectedTexture),
173313
+ /* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapFeatureInfoRecord),
173314
+ /* harmony export */ MapLayerAuthenticationFailedError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerAuthenticationFailedError),
173315
+ /* harmony export */ MapLayerFeatureRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__.MapLayerFeatureRecord),
173316
+ /* harmony export */ MapLayerFormat: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormat),
173317
+ /* harmony export */ MapLayerFormatRegistry: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerFormatRegistry),
173318
+ /* harmony export */ MapLayerImageryProvider: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProvider),
173319
+ /* harmony export */ MapLayerImageryProviderStatus: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.MapLayerImageryProviderStatus),
173320
+ /* harmony export */ MapLayerSource: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSource),
173321
+ /* harmony export */ MapLayerSourceStatus: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSourceStatus),
173322
+ /* harmony export */ MapLayerSources: () => (/* reexport safe */ _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__.MapLayerSources),
173323
+ /* harmony export */ MapLayerTileTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.MapLayerTileTreeReference),
173324
+ /* harmony export */ MapLayerUntrustedOriginError: () => (/* reexport safe */ _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__.MapLayerUntrustedOriginError),
173325
+ /* harmony export */ MapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTile),
173326
+ /* harmony export */ MapTileLoader: () => (/* reexport safe */ _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_74__.MapTileLoader),
173327
+ /* harmony export */ MapTileProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.MapTileProjection),
173328
+ /* harmony export */ MapTileTree: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTree),
173329
+ /* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeReference),
173330
+ /* harmony export */ MapTileTreeScaleRangeVisibility: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.MapTileTreeScaleRangeVisibility),
173331
+ /* harmony export */ MapTiledGraphicsProvider: () => (/* reexport safe */ _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__.MapTiledGraphicsProvider),
173332
+ /* harmony export */ MapTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.MapTilingScheme),
173333
+ /* harmony export */ ModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.ModelMapLayerTileTreeReference),
173334
+ /* harmony export */ OPCFormatInterpreter: () => (/* reexport safe */ _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__.OPCFormatInterpreter),
173335
+ /* harmony export */ OrbitGtTileTree: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTileTree),
173336
+ /* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.OrbitGtTreeReference),
173337
+ /* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarProjection),
173338
+ /* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.PlanarTilePatch),
173339
+ /* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.ProjectedTexture),
173078
173340
  /* harmony export */ QuadId: () => (/* reexport safe */ _map_QuadId__WEBPACK_IMPORTED_MODULE_2__.QuadId),
173079
173341
  /* harmony export */ ReadonlyTileUserSet: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.ReadonlyTileUserSet),
173080
- /* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.RealityModelTileTree),
173081
- /* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.RealityModelTileTreeProps),
173082
- /* harmony export */ RealityModelTileUtils: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.RealityModelTileUtils),
173342
+ /* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTree),
173343
+ /* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileTreeProps),
173344
+ /* harmony export */ RealityModelTileUtils: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityModelTileUtils),
173083
173345
  /* harmony export */ RealityTile: () => (/* reexport safe */ _RealityTile__WEBPACK_IMPORTED_MODULE_6__.RealityTile),
173084
173346
  /* harmony export */ RealityTileDrawArgs: () => (/* reexport safe */ _internal_tile_RealityTileDrawArgs__WEBPACK_IMPORTED_MODULE_10__.RealityTileDrawArgs),
173085
- /* harmony export */ RealityTileLoader: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_71__.RealityTileLoader),
173086
- /* harmony export */ RealityTileRegion: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.RealityTileRegion),
173347
+ /* harmony export */ RealityTileLoader: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.RealityTileLoader),
173348
+ /* harmony export */ RealityTileRegion: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTileRegion),
173087
173349
  /* harmony export */ RealityTileTree: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.RealityTileTree),
173088
- /* harmony export */ RealityTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.RealityTreeReference),
173089
- /* harmony export */ SelectParent: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_79__.SelectParent),
173090
- /* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_83__.SpatialClassifierTileTreeReference),
173091
- /* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.SpatialTileTreeReferences),
173092
- /* harmony export */ TerrainMeshProvider: () => (/* reexport safe */ _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_66__.TerrainMeshProvider),
173093
- /* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */ _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_67__.TerrainProviderRegistry),
173094
- /* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */ _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_90__.ThreeDTileFormatInterpreter),
173350
+ /* harmony export */ RealityTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.RealityTreeReference),
173351
+ /* harmony export */ SelectParent: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.SelectParent),
173352
+ /* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.SpatialClassifierTileTreeReference),
173353
+ /* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.SpatialTileTreeReferences),
173354
+ /* harmony export */ TerrainMeshProvider: () => (/* reexport safe */ _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__.TerrainMeshProvider),
173355
+ /* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */ _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__.TerrainProviderRegistry),
173356
+ /* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */ _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__.ThreeDTileFormatInterpreter),
173095
173357
  /* harmony export */ Tile: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.Tile),
173096
173358
  /* harmony export */ TileAdmin: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.TileAdmin),
173097
- /* harmony export */ TileAvailability: () => (/* reexport safe */ _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_75__.TileAvailability),
173359
+ /* harmony export */ TileAvailability: () => (/* reexport safe */ _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_77__.TileAvailability),
173098
173360
  /* harmony export */ TileBoundingBoxes: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.TileBoundingBoxes),
173099
173361
  /* harmony export */ TileDrawArgs: () => (/* reexport safe */ _TileDrawArgs__WEBPACK_IMPORTED_MODULE_9__.TileDrawArgs),
173100
173362
  /* harmony export */ TileGeometryCollector: () => (/* reexport safe */ _TileGeometryCollector__WEBPACK_IMPORTED_MODULE_21__.TileGeometryCollector),
@@ -173109,7 +173371,7 @@ __webpack_require__.r(__webpack_exports__);
173109
173371
  /* harmony export */ TileTree: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTree),
173110
173372
  /* harmony export */ TileTreeLoadStatus: () => (/* reexport safe */ _TileTree__WEBPACK_IMPORTED_MODULE_14__.TileTreeLoadStatus),
173111
173373
  /* harmony export */ TileTreeReference: () => (/* reexport safe */ _TileTreeReference__WEBPACK_IMPORTED_MODULE_18__.TileTreeReference),
173112
- /* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_60__.TileUrlImageryProvider),
173374
+ /* harmony export */ TileUrlImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_62__.TileUrlImageryProvider),
173113
173375
  /* harmony export */ TileUsageMarker: () => (/* reexport safe */ _TileUsageMarker__WEBPACK_IMPORTED_MODULE_29__.TileUsageMarker),
173114
173376
  /* harmony export */ TileUser: () => (/* reexport safe */ _TileUser__WEBPACK_IMPORTED_MODULE_30__.TileUser),
173115
173377
  /* harmony export */ TileUserIdSet: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.TileUserIdSet),
@@ -173120,66 +173382,68 @@ __webpack_require__.r(__webpack_exports__);
173120
173382
  /* harmony export */ TraversalDetails: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalDetails),
173121
173383
  /* harmony export */ TraversalSelectionContext: () => (/* reexport safe */ _RealityTileTree__WEBPACK_IMPORTED_MODULE_15__.TraversalSelectionContext),
173122
173384
  /* harmony export */ UniqueTileUserSets: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.UniqueTileUserSets),
173123
- /* harmony export */ UpsampledMapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_70__.UpsampledMapTile),
173124
- /* harmony export */ WebMercator: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_50__.WebMercator),
173125
- /* harmony export */ WebMercatorProjection: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_74__.WebMercatorProjection),
173126
- /* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_74__.WebMercatorTilingScheme),
173127
- /* harmony export */ WmsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_45__.WmsCapabilities),
173128
- /* harmony export */ WmsCapability: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_45__.WmsCapability),
173129
- /* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__.WmsMapLayerImageryProvider),
173130
- /* harmony export */ WmsUtilities: () => (/* reexport safe */ _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_44__.WmsUtilities),
173131
- /* harmony export */ WmtsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_46__.WmtsCapabilities),
173132
- /* harmony export */ WmtsCapability: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_46__.WmtsCapability),
173133
- /* harmony export */ WmtsConstants: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_46__.WmtsConstants),
173134
- /* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_62__.WmtsMapLayerImageryProvider),
173385
+ /* harmony export */ UpsampledMapTile: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_72__.UpsampledMapTile),
173386
+ /* harmony export */ WebMercator: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_52__.WebMercator),
173387
+ /* harmony export */ WebMercatorProjection: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorProjection),
173388
+ /* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */ _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__.WebMercatorTilingScheme),
173389
+ /* harmony export */ WmsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapabilities),
173390
+ /* harmony export */ WmsCapability: () => (/* reexport safe */ _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__.WmsCapability),
173391
+ /* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_63__.WmsMapLayerImageryProvider),
173392
+ /* harmony export */ WmsUtilities: () => (/* reexport safe */ _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_46__.WmsUtilities),
173393
+ /* harmony export */ WmtsCapabilities: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapabilities),
173394
+ /* harmony export */ WmtsCapability: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsCapability),
173395
+ /* harmony export */ WmtsConstants: () => (/* reexport safe */ _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__.WmtsConstants),
173396
+ /* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_64__.WmtsMapLayerImageryProvider),
173135
173397
  /* harmony export */ acquireImdlDecoder: () => (/* reexport safe */ _internal_tile_ImdlDecoder__WEBPACK_IMPORTED_MODULE_36__.acquireImdlDecoder),
173136
173398
  /* harmony export */ acquireImdlParser: () => (/* reexport safe */ _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__.acquireImdlParser),
173137
173399
  /* harmony export */ addRangeGraphic: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.addRangeGraphic),
173138
- /* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_48__.appendQueryParams),
173139
- /* harmony export */ collectMaskRefs: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.collectMaskRefs),
173140
- /* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_94__.compareMapLayer),
173141
- /* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.computeCesiumTokenTimeoutInterval),
173142
- /* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__.computeVerticalDatumShift),
173143
- /* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_83__.createClassifierTileTreeReference),
173400
+ /* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_50__.appendQueryParams),
173401
+ /* harmony export */ collectMaskRefs: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.collectMaskRefs),
173402
+ /* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__.compareMapLayer),
173403
+ /* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.computeCesiumTokenTimeoutInterval),
173404
+ /* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.computeVerticalDatumShift),
173405
+ /* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__.createClassifierTileTreeReference),
173144
173406
  /* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
173145
173407
  /* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
173146
173408
  /* harmony export */ createGraphicTemplateFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicTemplateFromDescription),
173147
- /* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_64__.createMapLayerTreeReference),
173148
- /* harmony export */ createMaskTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.createMaskTreeReference),
173149
- /* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.createModelMapLayerTileTreeReference),
173150
- /* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__.createOrbitGtTileTreeReference),
173151
- /* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.createPrimaryTileTreeReference),
173152
- /* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_71__.createReaderPropsWithBaseUrl),
173153
- /* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__.createRealityTileTreeReference),
173154
- /* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.createSpatialTileTreeReferences),
173409
+ /* harmony export */ createMapLayerTreeReference: () => (/* reexport safe */ _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__.createMapLayerTreeReference),
173410
+ /* harmony export */ createMaskTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createMaskTreeReference),
173411
+ /* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createModelMapLayerTileTreeReference),
173412
+ /* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__.createOrbitGtTileTreeReference),
173413
+ /* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createPrimaryTileTreeReference),
173414
+ /* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */ _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__.createReaderPropsWithBaseUrl),
173415
+ /* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__.createRealityTileTreeReference),
173416
+ /* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.createSpatialTileTreeReferences),
173417
+ /* harmony export */ credentialedFetchRedirect: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.credentialedFetchRedirect),
173155
173418
  /* harmony export */ decodeImdlGraphics: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.decodeImdlGraphics),
173156
- /* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_93__.decodeMeshoptBuffer),
173157
- /* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_47__.deflateCoordinates),
173158
- /* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.disposeTileTreesForGeometricModels),
173159
- /* harmony export */ escapeHtml: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.escapeHtml),
173160
- /* harmony export */ getCesiumAccessClient: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAccessClient),
173161
- /* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAccessTokenAndEndpointUrl),
173162
- /* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAssetUrl),
173163
- /* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumOSMBuildingsUrl),
173164
- /* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainEndpointErrorDescription),
173165
- /* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainProvider),
173166
- /* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.getGcsConverterAvailable),
173419
+ /* harmony export */ decodeMeshoptBuffer: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.decodeMeshoptBuffer),
173420
+ /* harmony export */ deflateCoordinates: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_49__.deflateCoordinates),
173421
+ /* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__.disposeTileTreesForGeometricModels),
173422
+ /* harmony export */ escapeHtml: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.escapeHtml),
173423
+ /* harmony export */ fetchMapLayerRequest: () => (/* reexport safe */ _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__.fetchMapLayerRequest),
173424
+ /* harmony export */ getCesiumAccessClient: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessClient),
173425
+ /* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAccessTokenAndEndpointUrl),
173426
+ /* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumAssetUrl),
173427
+ /* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumOSMBuildingsUrl),
173428
+ /* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainEndpointErrorDescription),
173429
+ /* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.getCesiumTerrainProvider),
173430
+ /* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__.getGcsConverterAvailable),
173167
173431
  /* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
173168
- /* harmony export */ getMeshoptDecoder: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_93__.getMeshoptDecoder),
173169
- /* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_79__.iModelTileParamsFromJSON),
173170
- /* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_81__.iModelTileTreeParamsFromJSON),
173171
- /* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_63__.internalMapLayerImageryFormats),
173432
+ /* harmony export */ getMeshoptDecoder: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__.getMeshoptDecoder),
173433
+ /* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__.iModelTileParamsFromJSON),
173434
+ /* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__.iModelTileTreeParamsFromJSON),
173435
+ /* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */ _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__.internalMapLayerImageryFormats),
173172
173436
  /* harmony export */ overrideRequestTileTreeProps: () => (/* reexport safe */ _TileAdmin__WEBPACK_IMPORTED_MODULE_23__.overrideRequestTileTreeProps),
173173
173437
  /* harmony export */ readElementGraphics: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readElementGraphics),
173174
173438
  /* harmony export */ readGltf: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltf),
173175
173439
  /* harmony export */ readGltfGraphics: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfGraphics),
173176
173440
  /* harmony export */ readGltfTemplate: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.readGltfTemplate),
173177
173441
  /* harmony export */ readImdlContent: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readImdlContent),
173178
- /* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPntsColors),
173179
- /* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPointCloudTileContent),
173180
- /* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.resolveCesiumTerrainEndpoint),
173181
- /* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_78__.tileTreeReferenceFromRenderGraphic),
173182
- /* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.tryGetOrigin)
173442
+ /* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPntsColors),
173443
+ /* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__.readPointCloudTileContent),
173444
+ /* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__.resolveCesiumTerrainEndpoint),
173445
+ /* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__.tileTreeReferenceFromRenderGraphic),
173446
+ /* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__.tryGetOrigin)
173183
173447
  /* harmony export */ });
173184
173448
  /* harmony import */ var _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/tile/ViewFlagOverrides */ "../../core/frontend/lib/esm/internal/tile/ViewFlagOverrides.js");
173185
173449
  /* harmony import */ var _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map/MapCartoRectangle */ "../../core/frontend/lib/esm/tile/map/MapCartoRectangle.js");
@@ -173222,60 +173486,62 @@ __webpack_require__.r(__webpack_exports__);
173222
173486
  /* harmony import */ var _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/tile/ImdlParser */ "../../core/frontend/lib/esm/internal/tile/ImdlParser.js");
173223
173487
  /* harmony import */ var _internal_tile_map_ArcGISTileMap__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/tile/map/ArcGISTileMap */ "../../core/frontend/lib/esm/internal/tile/map/ArcGISTileMap.js");
173224
173488
  /* harmony import */ var _map_MapLayerAuthentication__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./map/MapLayerAuthentication */ "../../core/frontend/lib/esm/tile/map/MapLayerAuthentication.js");
173225
- /* harmony import */ var _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./map/MapFeatureInfo */ "../../core/frontend/lib/esm/tile/map/MapFeatureInfo.js");
173226
- /* harmony import */ var _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./map/MapLayerFormatRegistry */ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js");
173227
- /* harmony import */ var _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../internal/tile/map/ArcGisUtilities */ "../../core/frontend/lib/esm/internal/tile/map/ArcGisUtilities.js");
173228
- /* harmony import */ var _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/tile/map/WmsUtilities */ "../../core/frontend/lib/esm/internal/tile/map/WmsUtilities.js");
173229
- /* harmony import */ var _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/tile/map/WmsCapabilities */ "../../core/frontend/lib/esm/internal/tile/map/WmsCapabilities.js");
173230
- /* harmony import */ var _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/tile/map/WmtsCapabilities */ "../../core/frontend/lib/esm/internal/tile/map/WmtsCapabilities.js");
173231
- /* harmony import */ var _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/CoordinatesUtils */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js");
173232
- /* harmony import */ var _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/tile/map/UrlUtils */ "../../core/frontend/lib/esm/internal/tile/map/UrlUtils.js");
173233
- /* harmony import */ var _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./map/MapLayerImageryProvider */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryProvider.js");
173234
- /* harmony import */ var _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WebMercator */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js");
173235
- /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureSymbologyRenderer__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureSymbologyRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js");
173236
- /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureAttributeDrivenSymbology__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js");
173237
- /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGISImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js");
173238
- /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureGeometryRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js");
173239
- /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureGraphicsRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js");
173240
- /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js");
173241
- /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js");
173242
- /* harmony import */ var _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/BingImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js");
173243
- /* harmony import */ var _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js");
173244
- /* harmony import */ var _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/TileUrlImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js");
173245
- /* harmony import */ var _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js");
173246
- /* harmony import */ var _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js");
173247
- /* harmony import */ var _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./map/MapLayerImageryFormats */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryFormats.js");
173248
- /* harmony import */ var _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./map/MapLayerTileTreeReference */ "../../core/frontend/lib/esm/tile/map/MapLayerTileTreeReference.js");
173249
- /* harmony import */ var _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./map/MapTileTree */ "../../core/frontend/lib/esm/tile/map/MapTileTree.js");
173250
- /* harmony import */ var _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./map/TerrainMeshProvider */ "../../core/frontend/lib/esm/tile/map/TerrainMeshProvider.js");
173251
- /* harmony import */ var _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./map/TerrainProvider */ "../../core/frontend/lib/esm/tile/map/TerrainProvider.js");
173252
- /* harmony import */ var _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./map/CesiumTerrainProvider */ "../../core/frontend/lib/esm/tile/map/CesiumTerrainProvider.js");
173253
- /* harmony import */ var _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./map/EllipsoidTerrainProvider */ "../../core/frontend/lib/esm/tile/map/EllipsoidTerrainProvider.js");
173254
- /* harmony import */ var _map_MapTile__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./map/MapTile */ "../../core/frontend/lib/esm/tile/map/MapTile.js");
173255
- /* harmony import */ var _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../internal/tile/RealityTileLoader */ "../../core/frontend/lib/esm/internal/tile/RealityTileLoader.js");
173256
- /* harmony import */ var _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../internal/tile/map/MapTileLoader */ "../../core/frontend/lib/esm/internal/tile/map/MapTileLoader.js");
173257
- /* harmony import */ var _map_BingElevation__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./map/BingElevation */ "../../core/frontend/lib/esm/tile/map/BingElevation.js");
173258
- /* harmony import */ var _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./map/MapTilingScheme */ "../../core/frontend/lib/esm/tile/map/MapTilingScheme.js");
173259
- /* harmony import */ var _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../internal/tile/map/MapTileAvailability */ "../../core/frontend/lib/esm/internal/tile/map/MapTileAvailability.js");
173260
- /* harmony import */ var _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../internal/tile/PntsReader */ "../../core/frontend/lib/esm/internal/tile/PntsReader.js");
173261
- /* harmony import */ var _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/tile/RealityModelTileTree */ "../../core/frontend/lib/esm/internal/tile/RealityModelTileTree.js");
173262
- /* harmony import */ var _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./RenderGraphicTileTree */ "../../core/frontend/lib/esm/tile/RenderGraphicTileTree.js");
173263
- /* harmony import */ var _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/tile/IModelTile */ "../../core/frontend/lib/esm/internal/tile/IModelTile.js");
173264
- /* harmony import */ var _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../internal/tile/DynamicIModelTile */ "../../core/frontend/lib/esm/internal/tile/DynamicIModelTile.js");
173265
- /* harmony import */ var _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/tile/IModelTileTree */ "../../core/frontend/lib/esm/internal/tile/IModelTileTree.js");
173266
- /* harmony import */ var _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/tile/PrimaryTileTree */ "../../core/frontend/lib/esm/internal/tile/PrimaryTileTree.js");
173267
- /* harmony import */ var _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/tile/ClassifierTileTree */ "../../core/frontend/lib/esm/internal/tile/ClassifierTileTree.js");
173268
- /* harmony import */ var _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/tile/OrbitGtTileTree */ "../../core/frontend/lib/esm/internal/tile/OrbitGtTileTree.js");
173269
- /* harmony import */ var _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./map/ImageryTileTree */ "../../core/frontend/lib/esm/tile/map/ImageryTileTree.js");
173270
- /* harmony import */ var _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./map/MapLayerSources */ "../../core/frontend/lib/esm/tile/map/MapLayerSources.js");
173271
- /* harmony import */ var _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./map/MapTiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/map/MapTiledGraphicsProvider.js");
173272
- /* harmony import */ var _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../internal/tile/CesiumAssetProvider */ "../../core/frontend/lib/esm/internal/tile/CesiumAssetProvider.js");
173273
- /* harmony import */ var _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../internal/tile/ContextShareProvider */ "../../core/frontend/lib/esm/internal/tile/ContextShareProvider.js");
173274
- /* harmony import */ var _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/tile/ThreeDTileFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js");
173275
- /* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
173276
- /* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
173277
- /* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
173278
- /* harmony import */ var _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
173489
+ /* harmony import */ var _map_MapLayerFetchHandler__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./map/MapLayerFetchHandler */ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js");
173490
+ /* harmony import */ var _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./map/MapFeatureInfo */ "../../core/frontend/lib/esm/tile/map/MapFeatureInfo.js");
173491
+ /* harmony import */ var _map_MapLayerFormatRegistry__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./map/MapLayerFormatRegistry */ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js");
173492
+ /* harmony import */ var _internal_tile_map_ArcGisUtilities__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/tile/map/ArcGisUtilities */ "../../core/frontend/lib/esm/internal/tile/map/ArcGisUtilities.js");
173493
+ /* harmony import */ var _internal_tile_map_MapLayerFetch__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/tile/map/MapLayerFetch */ "../../core/frontend/lib/esm/internal/tile/map/MapLayerFetch.js");
173494
+ /* harmony import */ var _internal_tile_map_WmsUtilities__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/tile/map/WmsUtilities */ "../../core/frontend/lib/esm/internal/tile/map/WmsUtilities.js");
173495
+ /* harmony import */ var _internal_tile_map_WmsCapabilities__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/tile/map/WmsCapabilities */ "../../core/frontend/lib/esm/internal/tile/map/WmsCapabilities.js");
173496
+ /* harmony import */ var _internal_tile_map_WmtsCapabilities__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/tile/map/WmtsCapabilities */ "../../core/frontend/lib/esm/internal/tile/map/WmtsCapabilities.js");
173497
+ /* harmony import */ var _internal_tile_map_ImageryProviders_CoordinatesUtils__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/CoordinatesUtils */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js");
173498
+ /* harmony import */ var _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/tile/map/UrlUtils */ "../../core/frontend/lib/esm/internal/tile/map/UrlUtils.js");
173499
+ /* harmony import */ var _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./map/MapLayerImageryProvider */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryProvider.js");
173500
+ /* harmony import */ var _internal_tile_map_ImageryProviders_WebMercator__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WebMercator */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js");
173501
+ /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureSymbologyRenderer__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureSymbologyRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js");
173502
+ /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureAttributeDrivenSymbology__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js");
173503
+ /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGISImageryProvider__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGISImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js");
173504
+ /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureGeometryRenderer__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureGeometryRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js");
173505
+ /* harmony import */ var _internal_tile_map_ImageryProviders_FeatureGraphicsRenderer__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/FeatureGraphicsRenderer */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js");
173506
+ /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGisGeometryReaderJSON__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js");
173507
+ /* harmony import */ var _internal_tile_map_ImageryProviders_ArcGISMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js");
173508
+ /* harmony import */ var _internal_tile_map_ImageryProviders_BingImageryProvider__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/BingImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js");
173509
+ /* harmony import */ var _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js");
173510
+ /* harmony import */ var _internal_tile_map_ImageryProviders_TileUrlImageryProvider__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/TileUrlImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js");
173511
+ /* harmony import */ var _internal_tile_map_ImageryProviders_WmsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js");
173512
+ /* harmony import */ var _internal_tile_map_ImageryProviders_WmtsMapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider */ "../../core/frontend/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js");
173513
+ /* harmony import */ var _map_MapLayerImageryFormats__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./map/MapLayerImageryFormats */ "../../core/frontend/lib/esm/tile/map/MapLayerImageryFormats.js");
173514
+ /* harmony import */ var _map_MapLayerTileTreeReference__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./map/MapLayerTileTreeReference */ "../../core/frontend/lib/esm/tile/map/MapLayerTileTreeReference.js");
173515
+ /* harmony import */ var _map_MapTileTree__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./map/MapTileTree */ "../../core/frontend/lib/esm/tile/map/MapTileTree.js");
173516
+ /* harmony import */ var _map_TerrainMeshProvider__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./map/TerrainMeshProvider */ "../../core/frontend/lib/esm/tile/map/TerrainMeshProvider.js");
173517
+ /* harmony import */ var _map_TerrainProvider__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./map/TerrainProvider */ "../../core/frontend/lib/esm/tile/map/TerrainProvider.js");
173518
+ /* harmony import */ var _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./map/CesiumTerrainProvider */ "../../core/frontend/lib/esm/tile/map/CesiumTerrainProvider.js");
173519
+ /* harmony import */ var _map_EllipsoidTerrainProvider__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./map/EllipsoidTerrainProvider */ "../../core/frontend/lib/esm/tile/map/EllipsoidTerrainProvider.js");
173520
+ /* harmony import */ var _map_MapTile__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./map/MapTile */ "../../core/frontend/lib/esm/tile/map/MapTile.js");
173521
+ /* harmony import */ var _internal_tile_RealityTileLoader__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/tile/RealityTileLoader */ "../../core/frontend/lib/esm/internal/tile/RealityTileLoader.js");
173522
+ /* harmony import */ var _internal_tile_map_MapTileLoader__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../internal/tile/map/MapTileLoader */ "../../core/frontend/lib/esm/internal/tile/map/MapTileLoader.js");
173523
+ /* harmony import */ var _map_BingElevation__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./map/BingElevation */ "../../core/frontend/lib/esm/tile/map/BingElevation.js");
173524
+ /* harmony import */ var _map_MapTilingScheme__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./map/MapTilingScheme */ "../../core/frontend/lib/esm/tile/map/MapTilingScheme.js");
173525
+ /* harmony import */ var _internal_tile_map_MapTileAvailability__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/tile/map/MapTileAvailability */ "../../core/frontend/lib/esm/internal/tile/map/MapTileAvailability.js");
173526
+ /* harmony import */ var _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/tile/PntsReader */ "../../core/frontend/lib/esm/internal/tile/PntsReader.js");
173527
+ /* harmony import */ var _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/tile/RealityModelTileTree */ "../../core/frontend/lib/esm/internal/tile/RealityModelTileTree.js");
173528
+ /* harmony import */ var _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./RenderGraphicTileTree */ "../../core/frontend/lib/esm/tile/RenderGraphicTileTree.js");
173529
+ /* harmony import */ var _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/tile/IModelTile */ "../../core/frontend/lib/esm/internal/tile/IModelTile.js");
173530
+ /* harmony import */ var _internal_tile_DynamicIModelTile__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/tile/DynamicIModelTile */ "../../core/frontend/lib/esm/internal/tile/DynamicIModelTile.js");
173531
+ /* harmony import */ var _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/tile/IModelTileTree */ "../../core/frontend/lib/esm/internal/tile/IModelTileTree.js");
173532
+ /* harmony import */ var _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/tile/PrimaryTileTree */ "../../core/frontend/lib/esm/internal/tile/PrimaryTileTree.js");
173533
+ /* harmony import */ var _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/tile/ClassifierTileTree */ "../../core/frontend/lib/esm/internal/tile/ClassifierTileTree.js");
173534
+ /* harmony import */ var _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/tile/OrbitGtTileTree */ "../../core/frontend/lib/esm/internal/tile/OrbitGtTileTree.js");
173535
+ /* harmony import */ var _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./map/ImageryTileTree */ "../../core/frontend/lib/esm/tile/map/ImageryTileTree.js");
173536
+ /* harmony import */ var _map_MapLayerSources__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./map/MapLayerSources */ "../../core/frontend/lib/esm/tile/map/MapLayerSources.js");
173537
+ /* harmony import */ var _map_MapTiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./map/MapTiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/map/MapTiledGraphicsProvider.js");
173538
+ /* harmony import */ var _internal_tile_CesiumAssetProvider__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/tile/CesiumAssetProvider */ "../../core/frontend/lib/esm/internal/tile/CesiumAssetProvider.js");
173539
+ /* harmony import */ var _internal_tile_ContextShareProvider__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/tile/ContextShareProvider */ "../../core/frontend/lib/esm/internal/tile/ContextShareProvider.js");
173540
+ /* harmony import */ var _internal_tile_ThreeDTileFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/ThreeDTileFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js");
173541
+ /* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
173542
+ /* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
173543
+ /* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
173544
+ /* harmony import */ var _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
173279
173545
  /*---------------------------------------------------------------------------------------------
173280
173546
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
173281
173547
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -173386,6 +173652,8 @@ __webpack_require__.r(__webpack_exports__);
173386
173652
 
173387
173653
 
173388
173654
 
173655
+
173656
+
173389
173657
 
173390
173658
 
173391
173659
 
@@ -174896,6 +175164,26 @@ __webpack_require__.r(__webpack_exports__);
174896
175164
 
174897
175165
 
174898
175166
 
175167
+ /***/ },
175168
+
175169
+ /***/ "../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js"
175170
+ /*!********************************************************************!*\
175171
+ !*** ../../core/frontend/lib/esm/tile/map/MapLayerFetchHandler.js ***!
175172
+ \********************************************************************/
175173
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
175174
+
175175
+ "use strict";
175176
+ __webpack_require__.r(__webpack_exports__);
175177
+ /*---------------------------------------------------------------------------------------------
175178
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
175179
+ * See LICENSE.md in the project root for license terms and full copyright notice.
175180
+ *--------------------------------------------------------------------------------------------*/
175181
+ /** @packageDocumentation
175182
+ * @module MapLayers
175183
+ */
175184
+
175185
+
175186
+
174899
175187
  /***/ },
174900
175188
 
174901
175189
  /***/ "../../core/frontend/lib/esm/tile/map/MapLayerFormatRegistry.js"
@@ -174907,6 +175195,7 @@ __webpack_require__.r(__webpack_exports__);
174907
175195
  "use strict";
174908
175196
  __webpack_require__.r(__webpack_exports__);
174909
175197
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
175198
+ /* harmony export */ MapLayerAuthenticationFailedError: () => (/* binding */ MapLayerAuthenticationFailedError),
174910
175199
  /* harmony export */ MapLayerFormat: () => (/* binding */ MapLayerFormat),
174911
175200
  /* harmony export */ MapLayerFormatRegistry: () => (/* binding */ MapLayerFormatRegistry),
174912
175201
  /* harmony export */ MapLayerUntrustedOriginError: () => (/* binding */ MapLayerUntrustedOriginError)
@@ -174990,6 +175279,22 @@ class MapLayerUntrustedOriginError extends Error {
174990
175279
  this.url = url;
174991
175280
  }
174992
175281
  }
175282
+ /** Error reporting an unrecoverable authentication failure for a map-layer request.
175283
+ * Thrown by a [[MapLayerFetchHandler]] when it recognizes an authentication failure it cannot fix
175284
+ * silently (e.g. a `401` that survives a token refresh, or a protocol-specific error embedded in a
175285
+ * `200` body); callers convert it to [[MapLayerImageryProviderStatus.RequireAuth]] (tile requests and
175286
+ * provider initialization) or [[MapLayerSourceStatus.RequireAuth]] (source validation), letting the
175287
+ * application prompt for re-authentication.
175288
+ * @beta
175289
+ */
175290
+ class MapLayerAuthenticationFailedError extends Error {
175291
+ /** The URL of the request that failed to authenticate. */
175292
+ url;
175293
+ constructor(url) {
175294
+ super("Authentication failed for map-layer request");
175295
+ this.url = url;
175296
+ }
175297
+ }
174993
175298
  /**
174994
175299
  * A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
174995
175300
  * @public
@@ -175009,6 +175314,30 @@ class MapLayerFormatRegistry {
175009
175314
  * @beta
175010
175315
  */
175011
175316
  restrictCredentialsToTrustedOrigins = false;
175317
+ _fetchHandlers = [];
175318
+ /** Appends a [[MapLayerFetchHandler]] to the pipeline wrapping every map-layer network request issued through
175319
+ * [[MapLayerImageryProvider]] — tiles, tooltips, capabilities, service metadata, and source validation.
175320
+ * Handlers run in registration order (the first registered is the outermost), each deciding whether to
175321
+ * manage a request or decline it to the next one; several layers of an application can therefore register
175322
+ * their own handler without coordinating. Returns the function that removes the handler.
175323
+ * @beta
175324
+ */
175325
+ addMapLayerFetchHandler(handler) {
175326
+ // One wrapper per registration, so registering the same function twice yields independent removers.
175327
+ const registration = async (request, fetchRequest) => handler(request, fetchRequest);
175328
+ this._fetchHandlers.push(registration);
175329
+ return () => {
175330
+ const index = this._fetchHandlers.indexOf(registration);
175331
+ if (index >= 0)
175332
+ this._fetchHandlers.splice(index, 1);
175333
+ };
175334
+ }
175335
+ /** The registered [[MapLayerFetchHandler]]s, in pipeline order.
175336
+ * @internal
175337
+ */
175338
+ get mapLayerFetchHandlers() {
175339
+ return this._fetchHandlers;
175340
+ }
175012
175341
  constructor(opts) {
175013
175342
  this._configOptions = opts ?? {};
175014
175343
  _internal__WEBPACK_IMPORTED_MODULE_2__.internalMapLayerImageryFormats.forEach((format) => this.register(format));
@@ -175218,7 +175547,12 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
175218
175547
  try {
175219
175548
  let subLayers;
175220
175549
  const maxVisibleSubLayers = 50;
175221
- const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url, (userName && password ? { user: userName, password } : undefined), ignoreCache, source.collectQueryParams());
175550
+ const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmsCapabilities.create(url, {
175551
+ credentials: (userName && password ? { user: userName, password } : undefined),
175552
+ ignoreCache,
175553
+ queryParams: source.collectQueryParams(),
175554
+ formatId: source.formatId,
175555
+ });
175222
175556
  if (capabilities !== undefined) {
175223
175557
  subLayers = capabilities.getSubLayers(false);
175224
175558
  const rootsSubLayer = subLayers?.find((sublayer) => sublayer.parent === undefined);
@@ -175268,7 +175602,10 @@ class WmsMapLayerFormat extends ImageryMapLayerFormat {
175268
175602
  return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
175269
175603
  }
175270
175604
  let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
175271
- if (err?.status === 401) {
175605
+ if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
175606
+ status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
175607
+ }
175608
+ else if (err?.status === 401) {
175272
175609
  status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
175273
175610
  }
175274
175611
  return { status };
@@ -175293,7 +175630,12 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
175293
175630
  const { url, userName, password } = source;
175294
175631
  try {
175295
175632
  const subLayers = [];
175296
- const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url, (userName && password ? { user: userName, password } : undefined), ignoreCache, source.collectQueryParams());
175633
+ const capabilities = await _internal__WEBPACK_IMPORTED_MODULE_0__.WmtsCapabilities.create(url, {
175634
+ credentials: (userName && password ? { user: userName, password } : undefined),
175635
+ ignoreCache,
175636
+ queryParams: source.collectQueryParams(),
175637
+ formatId: source.formatId,
175638
+ });
175297
175639
  if (!capabilities)
175298
175640
  return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl };
175299
175641
  // Only returns layer that can be published in the Google maps or WGS84 aligned tile trees.
@@ -175341,7 +175683,10 @@ class WmtsMapLayerFormat extends ImageryMapLayerFormat {
175341
175683
  return { status: _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.UntrustedOrigin, blockedOrigin };
175342
175684
  }
175343
175685
  let status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidUrl;
175344
- if (err?.status === 401) {
175686
+ if (err instanceof _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerAuthenticationFailedError) {
175687
+ status = _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth;
175688
+ }
175689
+ else if (err?.status === 401) {
175345
175690
  status = ((userName && password) ? _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.InvalidCredentials : _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerSourceStatus.RequireAuth);
175346
175691
  }
175347
175692
  return { status };
@@ -175433,6 +175778,7 @@ __webpack_require__.r(__webpack_exports__);
175433
175778
  const tileImageSize = 256, untiledImageSize = 256;
175434
175779
  const earthRadius = 6378137;
175435
175780
  const doDebugToolTips = false;
175781
+ const loggerCategory = "MapLayerImageryProvider";
175436
175782
  /** Escapes HTML metacharacters so the text renders literally when assigned to `innerHTML`.
175437
175783
  * Use for any server- or user-supplied string that ends up in the map tooltip, which is rendered
175438
175784
  * as HTML by [[MapLayerTileTreeReference.getToolTip]].
@@ -175719,12 +176065,37 @@ class MapLayerImageryProvider {
175719
176065
  * @internal
175720
176066
  */
175721
176067
  onStatusUpdated(_newStatus) { }
176068
+ /** Transitions to [[MapLayerImageryProviderStatus.RequireAuth]] after a [[MapLayerFetchHandler]] reported an
176069
+ * unrecoverable authentication failure. The user is notified once per transition, and only if tiles had
176070
+ * loaded before: an initialization failure was already reported through source validation.
176071
+ * @internal
176072
+ */
176073
+ reportAuthenticationFailure() {
176074
+ const alreadyReported = this._status === MapLayerImageryProviderStatus.RequireAuth;
176075
+ this.setStatus(MapLayerImageryProviderStatus.RequireAuth);
176076
+ if (alreadyReported || !this._hasSuccessfullyFetchedTile)
176077
+ return;
176078
+ const msg = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Messages.LoadTileTokenError", { layerName: this._settings.name });
176079
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.notifications.outputMessage(new _NotificationManager__WEBPACK_IMPORTED_MODULE_4__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_4__.OutputMessagePriority.Warning, msg));
176080
+ }
175722
176081
  /** @internal */
175723
176082
  setRequestAuthorization(headers) {
175724
176083
  if (this._settings.userName && this._settings.password) {
175725
176084
  (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setBasicAuthorization)(headers, this._settings.userName, this._settings.password);
175726
176085
  }
175727
176086
  }
176087
+ /** The access client registered for this layer's format, if any.
176088
+ * @internal
176089
+ */
176090
+ get accessClient() {
176091
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.getAccessClient(this._settings.formatId);
176092
+ }
176093
+ /** True while at least one [[MapLayerFetchHandler]] is registered via [[MapLayerFormatRegistry.addMapLayerFetchHandler]].
176094
+ * @internal
176095
+ */
176096
+ get hasFetchHandler() {
176097
+ return (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry?.mapLayerFetchHandlers.length ?? 0) > 0;
176098
+ }
175728
176099
  /** Returns true if the given URL has the same origin as this layer's settings URL.
175729
176100
  * Used to avoid leaking credentials to third-party hosts.
175730
176101
  * @internal
@@ -175794,28 +176165,12 @@ class MapLayerImageryProvider {
175794
176165
  logUntrustedOriginUse(url) {
175795
176166
  _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.logUntrustedOriginUse(url);
175796
176167
  }
175797
- /** The redirect policy to apply to a request that carries browser credentials (see [[includeUserCredentials]]).
175798
- *
175799
- * When [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is enabled, redirects are refused
175800
- * outright (`"error"`). `fetch` cannot be asked to follow only same-origin redirects, and by the time a
175801
- * followed redirect can be inspected the credentials have already been delivered to the destination — so
175802
- * refusing is the only way to honour the guarantee that credentials reach none but the origins listed in
175803
- * [[MapLayerFormatRegistry.trustedCredentialsOrigins]]. Legitimate same-origin redirects fail as a result;
175804
- * that is the cost of the opt-in restriction.
175805
- *
175806
- * When the restriction is disabled (the default), redirects are followed as before and
175807
- * [[checkCredentialedRedirect]] reports the destination after the fact.
175808
- * @internal
175809
- */
175810
- get credentialedRedirect() {
175811
- return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
175812
- }
175813
176168
  /** Detects that a request carrying browser credentials (see [[includeUserCredentials]]) was transparently
175814
176169
  * redirected to a different origin, and reports or logs that origin.
175815
176170
  *
175816
176171
  * This is a **best-effort, after-the-fact** signal used only while
175817
176172
  * [[MapLayerFormatRegistry.restrictCredentialsToTrustedOrigins]] is disabled, where credentialed requests
175818
- * still follow redirects (see [[credentialedRedirect]]). It cannot prevent the exposure — the credentials
176173
+ * still follow redirects (see [[credentialedFetchRedirect]]). It cannot prevent the exposure — the credentials
175819
176174
  * have already been sent — and it does not fire at all when the destination denies CORS, because `fetch`
175820
176175
  * then rejects instead of returning a `Response`. The destination origin is never latched as SSO-succeeded,
175821
176176
  * so credentials do not keep flowing to it.
@@ -175830,46 +176185,32 @@ class MapLayerImageryProvider {
175830
176185
  else
175831
176186
  this.logUntrustedOriginUse(response.url); // no-op when the restriction is enabled
175832
176187
  }
175833
- /** @internal */
175834
- async makeRequest(url, timeoutMs, authorization) {
175835
- let response;
175836
- let headers;
175837
- let hasCreds = false;
175838
- // Whether this request had basic-auth credentials of its own to offer. Requests carrying a caller-supplied
175839
- // `authorization` are excluded: those bypass the origin policy entirely.
175840
- const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
175841
- if (authorization) {
175842
- headers = new Headers();
175843
- headers.set("Authorization", authorization);
175844
- }
175845
- else if (hasSettingsCreds) {
175846
- if (this.isCredentialsSharingAllowed(url)) {
175847
- hasCreds = true;
175848
- headers = new Headers();
175849
- this.setRequestAuthorization(headers);
175850
- if (!this.matchesSettingsUrlOrigin(url))
175851
- this.logUntrustedOriginUse(url);
175852
- }
175853
- }
175854
- const includeCredentials = this.includeUserCredentials(url);
176188
+ /** The default send for [[makeRequest]]: legacy redirect policy, NTLM/SSO handling and origin-trust
176189
+ * checks for one request. The SSO retry never applies to sends a fetch handler modified.
176190
+ */
176191
+ async sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs) {
176192
+ const requestUrl = request.url;
176193
+ const includeCredentials = this.includeUserCredentials(requestUrl);
175855
176194
  const opts = {
175856
176195
  method: "GET",
175857
- headers,
176196
+ headers: request.headers,
175858
176197
  credentials: includeCredentials ? "include" : undefined,
175859
- redirect: includeCredentials ? this.credentialedRedirect : undefined,
176198
+ // Sends the handler modified may carry injected secrets: same redirect policy as credentialed ones.
176199
+ redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
175860
176200
  };
175861
176201
  if (timeoutMs !== undefined)
175862
176202
  (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.setRequestTimeout)(opts, timeoutMs);
175863
- response = await fetch(url, opts);
175864
- if (includeCredentials)
175865
- this.checkCredentialedRedirect(url, response);
176203
+ let rsp = await fetch(requestUrl, opts);
176204
+ if (includeCredentials || credentialed)
176205
+ this.checkCredentialedRedirect(requestUrl, rsp);
175866
176206
  // fetch follows redirects transparently, so all trust decisions below target the final
175867
176207
  // (post-redirect) URL reported by the response, not the URL we asked for.
175868
- const challengedUrl = response.url || url;
175869
- if (response.status === 401
175870
- && (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(response.headers, ["ntlm", "negotiate"])
176208
+ const challengedUrl = rsp.url || requestUrl;
176209
+ if (rsp.status === 401
176210
+ && (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(rsp.headers, ["ntlm", "negotiate"])
175871
176211
  && !includeCredentials
175872
- && !hasCreds) {
176212
+ && !hasCreds
176213
+ && !credentialed) {
175873
176214
  if (this.isSsoAllowed(challengedUrl)) {
175874
176215
  // Removed the previous headers and make sure "include" credentials is set
175875
176216
  opts.headers = undefined;
@@ -175879,8 +176220,8 @@ class MapLayerImageryProvider {
175879
176220
  opts.redirect = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.restrictCredentialsToTrustedOrigins ? "error" : undefined;
175880
176221
  this.logUntrustedOriginUse(challengedUrl);
175881
176222
  // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)
175882
- response = await fetch(challengedUrl, opts);
175883
- if (response.status === 200) {
176223
+ rsp = await fetch(challengedUrl, opts);
176224
+ if (rsp.status === 200) {
175884
176225
  this.recordSsoSucceeded(challengedUrl); // avoid going through 401 challenges over and over for this origin
175885
176226
  }
175886
176227
  }
@@ -175888,16 +176229,69 @@ class MapLayerImageryProvider {
175888
176229
  this.reportBlockedOrigin(challengedUrl);
175889
176230
  }
175890
176231
  }
175891
- else if ((response.status === 401 || response.status === 403) && hasSettingsCreds && !this.isCredentialsSharingAllowed(challengedUrl)) {
176232
+ else if ((rsp.status === 401 || rsp.status === 403) && hasSettingsCreds && !credentialed && !this.isCredentialsSharingAllowed(challengedUrl)) {
175892
176233
  // Some servers answer an unauthenticated request with 403 (Forbidden) rather than a 401 challenge;
175893
176234
  // since this request could not present its credentials to the challenging origin, either status most
175894
- // likely results from that. The permission is recomputed for the challenged URL rather than reusing the
176235
+ // likely results from that (never on a send the handler modified: the handler classifies those).
176236
+ // The permission is recomputed for the challenged URL rather than reusing the
175895
176237
  // decision made for the requested one: `fetch` strips the Authorization header when it follows a
175896
176238
  // cross-origin redirect, so a trusted request can still arrive unauthenticated at an untrusted origin,
175897
176239
  // and conversely a request that started out untrusted may end up at an origin that is trusted.
175898
176240
  this.reportBlockedOrigin(challengedUrl);
175899
176241
  }
175900
- return response;
176242
+ return rsp;
176243
+ }
176244
+ /** @internal */
176245
+ async makeRequest(url, timeoutMs, authorization) {
176246
+ let headers;
176247
+ let hasCreds = false;
176248
+ // Whether this request had basic-auth credentials of its own to offer. Requests carrying a caller-supplied
176249
+ // `authorization` are excluded: those bypass the origin policy entirely.
176250
+ const hasSettingsCreds = !authorization && !!this._settings.userName && !!this._settings.password;
176251
+ if (authorization) {
176252
+ headers = new Headers();
176253
+ headers.set("Authorization", authorization);
176254
+ }
176255
+ else if (hasSettingsCreds) {
176256
+ if (this.isCredentialsSharingAllowed(url)) {
176257
+ hasCreds = true;
176258
+ headers = new Headers();
176259
+ this.setRequestAuthorization(headers);
176260
+ if (!this.matchesSettingsUrlOrigin(url))
176261
+ this.logUntrustedOriginUse(url);
176262
+ }
176263
+ }
176264
+ // Route the request through the registered fetch handler (if any), which has full control: it may
176265
+ // send a copy with other query parameters and headers, retry, or short-circuit. Handler failures propagate: the
176266
+ // request must never silently degrade to an unauthenticated one.
176267
+ try {
176268
+ const { response, managedByHandler } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
176269
+ url,
176270
+ formatId: this._settings.formatId,
176271
+ layerUrl: this._settings.url,
176272
+ layerProperties: this._settings.properties,
176273
+ headers,
176274
+ send: async (request, credentialed) => this.sendDefaultRequest(request, credentialed, hasCreds, hasSettingsCreds, timeoutMs),
176275
+ });
176276
+ if (managedByHandler)
176277
+ this._handlerManagedResponses.add(response);
176278
+ return response;
176279
+ }
176280
+ catch (error) {
176281
+ if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
176282
+ this.reportAuthenticationFailure();
176283
+ throw error;
176284
+ }
176285
+ }
176286
+ /** Responses of [[makeRequest]] managed by a fetch handler (see [[MapLayerFetchResult.managedByHandler]]). */
176287
+ _handlerManagedResponses = new WeakSet();
176288
+ /** Returns true if a fetch handler returned this [[makeRequest]] response as its own, in which case the
176289
+ * provider applies none of its default response handling (status-code or protocol-error classification):
176290
+ * the handler reports authentication failures by throwing [[MapLayerAuthenticationFailedError]] instead.
176291
+ * @internal
176292
+ */
176293
+ isManagedByHandler(response) {
176294
+ return this._handlerManagedResponses.has(response);
175901
176295
  }
175902
176296
  /** Returns a map layer tile at the specified settings. */
175903
176297
  async loadTile(row, column, zoomLevel) {
@@ -175932,16 +176326,39 @@ class MapLayerImageryProvider {
175932
176326
  headers = new Headers();
175933
176327
  this.setRequestAuthorization(headers);
175934
176328
  }
176329
+ let response;
175935
176330
  try {
175936
- const includeCredentials = this.includeUserCredentials(url);
175937
- const response = await fetch(url, {
175938
- method: "GET",
176331
+ ({ response } = await (0,_internal__WEBPACK_IMPORTED_MODULE_5__.fetchMapLayerRequest)({
176332
+ url,
176333
+ formatId: this._settings.formatId,
176334
+ layerUrl: this._settings.url,
176335
+ layerProperties: this._settings.properties,
175939
176336
  headers,
175940
- credentials: includeCredentials ? "include" : undefined,
175941
- redirect: includeCredentials ? this.credentialedRedirect : undefined,
175942
- });
175943
- if (includeCredentials)
175944
- this.checkCredentialedRedirect(url, response);
176337
+ send: async (request, credentialed) => {
176338
+ const requestUrl = request.url;
176339
+ const includeCredentials = this.includeUserCredentials(requestUrl);
176340
+ const rsp = await fetch(requestUrl, {
176341
+ method: "GET",
176342
+ headers: request.headers,
176343
+ credentials: includeCredentials ? "include" : undefined,
176344
+ redirect: (includeCredentials || credentialed) ? (0,_internal__WEBPACK_IMPORTED_MODULE_5__.credentialedFetchRedirect)() : undefined,
176345
+ });
176346
+ if (includeCredentials || credentialed)
176347
+ this.checkCredentialedRedirect(requestUrl, rsp);
176348
+ return rsp;
176349
+ },
176350
+ }));
176351
+ }
176352
+ catch (error) {
176353
+ // Never degrade to an unauthenticated request or reject (getToolTip callers do not catch); skip the tooltip.
176354
+ // The status transition the handler asked for still applies.
176355
+ if (error instanceof _internal__WEBPACK_IMPORTED_MODULE_5__.MapLayerAuthenticationFailedError)
176356
+ this.reportAuthenticationFailure();
176357
+ if (this.hasFetchHandler)
176358
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(loggerCategory, `Map-layer fetch handler failed for tooltip request: ${_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMessage(error)}`);
176359
+ return;
176360
+ }
176361
+ try {
175945
176362
  let text = await response.text();
175946
176363
  if (text) {
175947
176364
  // Tooltip content (e.g. WMS GetFeatureInfo responses) is rendered as HTML downstream and may
@@ -176063,11 +176480,7 @@ class MapLayerImageryProvider {
176063
176480
  * @internal
176064
176481
  */
176065
176482
  appendCustomParams(url) {
176066
- if (!this._settings.savedQueryParams && !this._settings.unsavedQueryParams)
176067
- return url;
176068
- let tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.savedQueryParams);
176069
- tmpUrl = (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(tmpUrl, this._settings.unsavedQueryParams);
176070
- return tmpUrl;
176483
+ return (0,_internal__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(url, this._settings.collectQueryParams());
176071
176484
  }
176072
176485
  }
176073
176486
 
@@ -176146,21 +176559,33 @@ class MapLayerSource {
176146
176559
  transparentBackground;
176147
176560
  userName;
176148
176561
  password;
176149
- /** List of query parameters that will get appended to the source URL that should be be persisted part of the JSON representation.
176562
+ /** Former name of [[queryParams]], which stores the value; retained as the backing field so existing subclasses
176563
+ * and `delete` keep working.
176564
+ * @deprecated in 5.16. Use [[queryParams]].
176150
176565
  * @beta
176151
176566
  */
176152
176567
  savedQueryParams;
176568
+ /** Non-secret query parameters appended to every request made for the source, persisted as part of the JSON
176569
+ * representation ([[MapLayerSourceProps.queryParams]]). Secrets must never be placed here; the hosting application
176570
+ * injects them per session through a [[MapLayerFetchHandler]].
176571
+ * @beta
176572
+ */
176573
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- the deprecated field is the storage until its removal.
176574
+ get queryParams() { return this.savedQueryParams; }
176575
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
176576
+ set queryParams(value) { this.savedQueryParams = value; }
176153
176577
  /** List of query parameters that will get appended to the source URL that should *not* be be persisted part of the JSON representation.
176578
+ * @deprecated in 5.16. Register a [[MapLayerFetchHandler]] ([[MapLayerFormatRegistry.addMapLayerFetchHandler]]) to inject secret or per-session parameters, which unlike this field are protected against leaking through redirects; use [[queryParams]] for non-secret parameters.
176154
176579
  * @beta
176155
176580
  */
176156
176581
  unsavedQueryParams;
176157
- constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true, savedQueryParams) {
176582
+ constructor(formatId = "WMS", name, url, baseMap = false, transparentBackground = true, queryParams) {
176158
176583
  this.formatId = formatId;
176159
176584
  this.name = name;
176160
176585
  this.url = url;
176161
176586
  this.baseMap = baseMap;
176162
176587
  this.transparentBackground = transparentBackground;
176163
- this.savedQueryParams = savedQueryParams;
176588
+ this.queryParams = queryParams;
176164
176589
  }
176165
176590
  static fromJSON(json) {
176166
176591
  if (json === undefined)
@@ -176184,7 +176609,7 @@ class MapLayerSource {
176184
176609
  return undefined;
176185
176610
  }
176186
176611
  toJSON() {
176187
- return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.savedQueryParams };
176612
+ return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground, queryParams: this.queryParams };
176188
176613
  }
176189
176614
  toLayerSettings(subLayers) {
176190
176615
  // When MapLayerSetting is created from a MapLayerSource, sub-layers and credentials need to be set separately.
@@ -176192,10 +176617,12 @@ class MapLayerSource {
176192
176617
  if (this.userName !== undefined || this.password !== undefined) {
176193
176618
  layerSettings?.setCredentials(this.userName, this.password);
176194
176619
  }
176195
- if (this.savedQueryParams) {
176196
- layerSettings.savedQueryParams = { ...this.savedQueryParams };
176620
+ if (this.queryParams) {
176621
+ layerSettings.queryParams = { ...this.queryParams };
176197
176622
  }
176623
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
176198
176624
  if (this.unsavedQueryParams) {
176625
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
176199
176626
  layerSettings.unsavedQueryParams = { ...this.unsavedQueryParams };
176200
176627
  }
176201
176628
  return layerSettings;
@@ -176203,14 +176630,17 @@ class MapLayerSource {
176203
176630
  getCredentials() {
176204
176631
  return this.userName && this.password ? { user: this.userName, password: this.password } : undefined;
176205
176632
  }
176206
- /** Collect all query parameters
176207
- * @beta
176208
- */
176633
+ /** The query parameters actually sent with requests: [[queryParams]] overlaid with the deprecated `unsavedQueryParams`
176634
+ * (a key present in both takes the latter's value). Equals a copy of [[queryParams]] once `unsavedQueryParams` is removed.
176635
+ * @beta
176636
+ */
176209
176637
  collectQueryParams() {
176210
176638
  let queryParams = {};
176211
- if (this.savedQueryParams)
176212
- queryParams = { ...this.savedQueryParams };
176639
+ if (this.queryParams)
176640
+ queryParams = { ...this.queryParams };
176641
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- kept for backward compatibility until removal.
176213
176642
  if (this.unsavedQueryParams)
176643
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
176214
176644
  queryParams = { ...queryParams, ...this.unsavedQueryParams };
176215
176645
  return queryParams;
176216
176646
  }
@@ -324208,7 +324638,7 @@ exports.TestContext = void 0;
324208
324638
  const chai_1 = __webpack_require__(/*! chai */ "../../common/temp/node_modules/.pnpm/chai@4.5.0/node_modules/chai/index.js");
324209
324639
  const core_bentley_1 = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
324210
324640
  const core_frontend_1 = __webpack_require__(/*! @itwin/core-frontend */ "../../core/frontend/lib/esm/core-frontend.js");
324211
- const frontend_1 = __webpack_require__(/*! @itwin/oidc-signin-tool/lib/cjs/frontend */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@5.1_8b352cd6ee6239e21c2765f3a789e8fa/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js");
324641
+ const frontend_1 = __webpack_require__(/*! @itwin/oidc-signin-tool/lib/cjs/frontend */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@6.2_e7b0f93268ba392b62030a9909ee634e/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js");
324212
324642
  const Settings_1 = __webpack_require__(/*! ../../common/Settings */ "./lib/common/Settings.js");
324213
324643
  const SideChannels_1 = __webpack_require__(/*! ../../common/SideChannels */ "./lib/common/SideChannels.js");
324214
324644
  const IModelSession_1 = __webpack_require__(/*! ./IModelSession */ "./lib/frontend/setup/IModelSession.js");
@@ -337756,7 +338186,7 @@ class WMS {
337756
338186
  (module) {
337757
338187
 
337758
338188
  "use strict";
337759
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.4","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 build:workers && npm run -s copy:draco","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 ES2022 --outDir lib/esm","clean":"rimraf -g 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:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 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:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//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":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.12","@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/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.4","vitest":"^4.1.10"},"//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/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
338189
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.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 && npm run -s build:esm && npm run -s build:workers && npm run -s copy:draco","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 ES2022 --outDir lib/esm","clean":"rimraf -g 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:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 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:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//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":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.12","@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/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.64.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.4","vitest":"^4.1.10"},"//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/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
337760
338190
 
337761
338191
  /***/ },
337762
338192