@itwin/ecschema-rpcinterface-tests 5.16.0-dev.3 → 5.16.0-dev.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/bundled-tests.js +840 -385
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_4_5_2__loaders_gl_core_4_5_2_node_modu-bbc95a.bundled-tests.js.map +1 -1
- package/package.json +14 -14
|
@@ -36790,12 +36790,24 @@ class ImageMapLayerSettings extends MapLayerSettings {
|
|
|
36790
36790
|
userName;
|
|
36791
36791
|
password;
|
|
36792
36792
|
accessKey;
|
|
36793
|
-
/**
|
|
36794
|
-
*
|
|
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.
|
|
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.
|
|
36841
|
-
props.queryParams = { ...this.
|
|
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.
|
|
36873
|
-
props.queryParams = { ...this.
|
|
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
|
-
/**
|
|
36950
|
-
|
|
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.
|
|
36955
|
-
queryParams = { ...this.
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
157883
|
-
|
|
157884
|
-
|
|
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
|
-
|
|
158083
|
-
|
|
158084
|
-
|
|
158085
|
-
|
|
158086
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
158348
|
-
|
|
158349
|
-
||
|
|
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,
|
|
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,
|
|
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
|
|
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) ?
|
|
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,
|
|
160362
|
-
|
|
160363
|
-
|
|
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
|
|
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(
|
|
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,
|
|
160653
|
+
static async fetchXml(url, options) {
|
|
160654
|
+
const { credentials, formatId, layerUrl, layerProperties } = options ?? {};
|
|
160436
160655
|
let headers;
|
|
160437
|
-
|
|
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
|
-
|
|
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
|
-
|
|
160449
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
160966
|
-
|
|
160967
|
-
|
|
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
|
|
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(
|
|
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 */
|
|
173010
|
-
/* harmony export */ ArcGISIdentifyRequestUrl: () => (/* reexport safe */
|
|
173011
|
-
/* harmony export */ ArcGISImageryProvider: () => (/* reexport safe */
|
|
173012
|
-
/* harmony export */ ArcGISMapLayerImageryProvider: () => (/* reexport safe */
|
|
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 */
|
|
173015
|
-
/* harmony export */ ArcGisGeometryReaderJSON: () => (/* reexport safe */
|
|
173016
|
-
/* harmony export */ ArcGisUtilities: () => (/* reexport safe */
|
|
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 */
|
|
173020
|
-
/* harmony export */ BingMapsImageryLayerProvider: () => (/* reexport safe */
|
|
173021
|
-
/* harmony export */ CesiumIonAssetProvider: () => (/* reexport safe */
|
|
173022
|
-
/* harmony export */ ContextShareProvider: () => (/* reexport safe */
|
|
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 */
|
|
173025
|
-
/* harmony export */ EllipsoidTerrainProvider: () => (/* reexport safe */
|
|
173026
|
-
/* harmony export */ FeatureGeometryBaseRenderer: () => (/* reexport safe */
|
|
173027
|
-
/* harmony export */ FeatureGraphicsRenderer: () => (/* reexport safe */
|
|
173028
|
-
/* harmony export */ FetchCloudStorage: () => (/* reexport safe */
|
|
173029
|
-
/* harmony export */ GeographicTilingScheme: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
173040
|
-
/* harmony export */ ImageryMapLayerFormat: () => (/* reexport safe */
|
|
173041
|
-
/* harmony export */ ImageryMapLayerTreeReference: () => (/* reexport safe */
|
|
173042
|
-
/* harmony export */ ImageryMapTile: () => (/* reexport safe */
|
|
173043
|
-
/* harmony export */ ImageryMapTileTree: () => (/* reexport safe */
|
|
173044
|
-
/* harmony export */ ImageryTileTreeState: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
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 */
|
|
173053
|
-
/* harmony export */
|
|
173054
|
-
/* harmony export */
|
|
173055
|
-
/* harmony export */
|
|
173056
|
-
/* harmony export */
|
|
173057
|
-
/* harmony export */
|
|
173058
|
-
/* harmony export */
|
|
173059
|
-
/* harmony export */
|
|
173060
|
-
/* harmony export */
|
|
173061
|
-
/* harmony export */
|
|
173062
|
-
/* harmony export */
|
|
173063
|
-
/* harmony export */
|
|
173064
|
-
/* harmony export */
|
|
173065
|
-
/* harmony export */
|
|
173066
|
-
/* harmony export */
|
|
173067
|
-
/* harmony export */
|
|
173068
|
-
/* harmony export */
|
|
173069
|
-
/* harmony export */
|
|
173070
|
-
/* harmony export */
|
|
173071
|
-
/* harmony export */
|
|
173072
|
-
/* harmony export */
|
|
173073
|
-
/* harmony export */
|
|
173074
|
-
/* harmony export */
|
|
173075
|
-
/* harmony export */
|
|
173076
|
-
/* harmony export */
|
|
173077
|
-
/* harmony export */
|
|
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 */
|
|
173081
|
-
/* harmony export */ RealityModelTileTreeProps: () => (/* reexport safe */
|
|
173082
|
-
/* harmony export */ RealityModelTileUtils: () => (/* reexport safe */
|
|
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 */
|
|
173086
|
-
/* harmony export */ RealityTileRegion: () => (/* reexport safe */
|
|
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 */
|
|
173089
|
-
/* harmony export */ SelectParent: () => (/* reexport safe */
|
|
173090
|
-
/* harmony export */ SpatialClassifierTileTreeReference: () => (/* reexport safe */
|
|
173091
|
-
/* harmony export */ SpatialTileTreeReferences: () => (/* reexport safe */
|
|
173092
|
-
/* harmony export */ TerrainMeshProvider: () => (/* reexport safe */
|
|
173093
|
-
/* harmony export */ TerrainProviderRegistry: () => (/* reexport safe */
|
|
173094
|
-
/* harmony export */ ThreeDTileFormatInterpreter: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
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 */
|
|
173124
|
-
/* harmony export */ WebMercator: () => (/* reexport safe */
|
|
173125
|
-
/* harmony export */ WebMercatorProjection: () => (/* reexport safe */
|
|
173126
|
-
/* harmony export */ WebMercatorTilingScheme: () => (/* reexport safe */
|
|
173127
|
-
/* harmony export */ WmsCapabilities: () => (/* reexport safe */
|
|
173128
|
-
/* harmony export */ WmsCapability: () => (/* reexport safe */
|
|
173129
|
-
/* harmony export */ WmsMapLayerImageryProvider: () => (/* reexport safe */
|
|
173130
|
-
/* harmony export */ WmsUtilities: () => (/* reexport safe */
|
|
173131
|
-
/* harmony export */ WmtsCapabilities: () => (/* reexport safe */
|
|
173132
|
-
/* harmony export */ WmtsCapability: () => (/* reexport safe */
|
|
173133
|
-
/* harmony export */ WmtsConstants: () => (/* reexport safe */
|
|
173134
|
-
/* harmony export */ WmtsMapLayerImageryProvider: () => (/* reexport safe */
|
|
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 */
|
|
173139
|
-
/* harmony export */ collectMaskRefs: () => (/* reexport safe */
|
|
173140
|
-
/* harmony export */ compareMapLayer: () => (/* reexport safe */
|
|
173141
|
-
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */
|
|
173142
|
-
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */
|
|
173143
|
-
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */
|
|
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 */
|
|
173148
|
-
/* harmony export */ createMaskTreeReference: () => (/* reexport safe */
|
|
173149
|
-
/* harmony export */ createModelMapLayerTileTreeReference: () => (/* reexport safe */
|
|
173150
|
-
/* harmony export */ createOrbitGtTileTreeReference: () => (/* reexport safe */
|
|
173151
|
-
/* harmony export */ createPrimaryTileTreeReference: () => (/* reexport safe */
|
|
173152
|
-
/* harmony export */ createReaderPropsWithBaseUrl: () => (/* reexport safe */
|
|
173153
|
-
/* harmony export */ createRealityTileTreeReference: () => (/* reexport safe */
|
|
173154
|
-
/* harmony export */ createSpatialTileTreeReferences: () => (/* reexport safe */
|
|
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 */
|
|
173157
|
-
/* harmony export */ deflateCoordinates: () => (/* reexport safe */
|
|
173158
|
-
/* harmony export */ disposeTileTreesForGeometricModels: () => (/* reexport safe */
|
|
173159
|
-
/* harmony export */ escapeHtml: () => (/* reexport safe */
|
|
173160
|
-
/* harmony export */
|
|
173161
|
-
/* harmony export */
|
|
173162
|
-
/* harmony export */
|
|
173163
|
-
/* harmony export */
|
|
173164
|
-
/* harmony export */
|
|
173165
|
-
/* harmony export */
|
|
173166
|
-
/* harmony export */
|
|
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 */
|
|
173169
|
-
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */
|
|
173170
|
-
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */
|
|
173171
|
-
/* harmony export */ internalMapLayerImageryFormats: () => (/* reexport safe */
|
|
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 */
|
|
173179
|
-
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */
|
|
173180
|
-
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */
|
|
173181
|
-
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */
|
|
173182
|
-
/* harmony export */ tryGetOrigin: () => (/* reexport safe */
|
|
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
|
|
173226
|
-
/* harmony import */ var
|
|
173227
|
-
/* harmony import */ var
|
|
173228
|
-
/* harmony import */ var
|
|
173229
|
-
/* harmony import */ var
|
|
173230
|
-
/* harmony import */ var
|
|
173231
|
-
/* harmony import */ var
|
|
173232
|
-
/* harmony import */ var
|
|
173233
|
-
/* harmony import */ var
|
|
173234
|
-
/* harmony import */ var
|
|
173235
|
-
/* harmony import */ var
|
|
173236
|
-
/* harmony import */ var
|
|
173237
|
-
/* harmony import */ var
|
|
173238
|
-
/* harmony import */ var
|
|
173239
|
-
/* harmony import */ var
|
|
173240
|
-
/* harmony import */ var
|
|
173241
|
-
/* harmony import */ var
|
|
173242
|
-
/* harmony import */ var
|
|
173243
|
-
/* harmony import */ var
|
|
173244
|
-
/* harmony import */ var
|
|
173245
|
-
/* harmony import */ var
|
|
173246
|
-
/* harmony import */ var
|
|
173247
|
-
/* harmony import */ var
|
|
173248
|
-
/* harmony import */ var
|
|
173249
|
-
/* harmony import */ var
|
|
173250
|
-
/* harmony import */ var
|
|
173251
|
-
/* harmony import */ var
|
|
173252
|
-
/* harmony import */ var
|
|
173253
|
-
/* harmony import */ var
|
|
173254
|
-
/* harmony import */ var
|
|
173255
|
-
/* harmony import */ var
|
|
173256
|
-
/* harmony import */ var
|
|
173257
|
-
/* harmony import */ var
|
|
173258
|
-
/* harmony import */ var
|
|
173259
|
-
/* harmony import */ var
|
|
173260
|
-
/* harmony import */ var
|
|
173261
|
-
/* harmony import */ var
|
|
173262
|
-
/* harmony import */ var
|
|
173263
|
-
/* harmony import */ var
|
|
173264
|
-
/* harmony import */ var
|
|
173265
|
-
/* harmony import */ var
|
|
173266
|
-
/* harmony import */ var
|
|
173267
|
-
/* harmony import */ var
|
|
173268
|
-
/* harmony import */ var
|
|
173269
|
-
/* harmony import */ var
|
|
173270
|
-
/* harmony import */ var
|
|
173271
|
-
/* harmony import */ var
|
|
173272
|
-
/* harmony import */ var
|
|
173273
|
-
/* harmony import */ var
|
|
173274
|
-
/* harmony import */ var
|
|
173275
|
-
/* harmony import */ var
|
|
173276
|
-
/* harmony import */ var
|
|
173277
|
-
/* harmony import */ var
|
|
173278
|
-
/* harmony import */ var
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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 [[
|
|
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
|
-
/**
|
|
175834
|
-
|
|
175835
|
-
|
|
175836
|
-
|
|
175837
|
-
|
|
175838
|
-
|
|
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
|
-
|
|
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
|
-
|
|
175864
|
-
if (includeCredentials)
|
|
175865
|
-
this.checkCredentialedRedirect(
|
|
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 =
|
|
175869
|
-
if (
|
|
175870
|
-
&& (0,_request_utils__WEBPACK_IMPORTED_MODULE_6__.headersIncludeAuthMethod)(
|
|
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
|
-
|
|
175883
|
-
if (
|
|
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 ((
|
|
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
|
|
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
|
|
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
|
-
|
|
175937
|
-
|
|
175938
|
-
|
|
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
|
-
|
|
175941
|
-
|
|
175942
|
-
|
|
175943
|
-
|
|
175944
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
176196
|
-
layerSettings.
|
|
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
|
-
/**
|
|
176207
|
-
|
|
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.
|
|
176212
|
-
queryParams = { ...this.
|
|
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
|
}
|
|
@@ -190090,10 +190520,35 @@ class ToolAdmin {
|
|
|
190090
190520
|
return false;
|
|
190091
190521
|
}
|
|
190092
190522
|
}
|
|
190093
|
-
/** Called
|
|
190523
|
+
/** Called to undo all changes made to the briefcase in the current session.
|
|
190524
|
+
* @returns `true` if all changes were reversed or there was nothing to undo, `false` otherwise.
|
|
190525
|
+
* @see [[doUndoOperation]] to undo only the most recent operation.
|
|
190526
|
+
* @beta
|
|
190527
|
+
*/
|
|
190528
|
+
async doUndoAllOperation() {
|
|
190529
|
+
const imodel = _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.viewManager.selectedView?.view.iModel;
|
|
190530
|
+
if (undefined === imodel || imodel.isReadonly || !imodel.isBriefcaseConnection())
|
|
190531
|
+
return false;
|
|
190532
|
+
if (!await this.finishEditCommandForTxnOperation())
|
|
190533
|
+
return false;
|
|
190534
|
+
let status;
|
|
190535
|
+
try {
|
|
190536
|
+
status = await imodel.txns.reverseAll();
|
|
190537
|
+
}
|
|
190538
|
+
catch (error) {
|
|
190539
|
+
await this.onTxnOperationError("undoAll", error);
|
|
190540
|
+
return false;
|
|
190541
|
+
}
|
|
190542
|
+
if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.Success === status || _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.NothingToUndo === status)
|
|
190543
|
+
return true;
|
|
190544
|
+
await this.onTxnOperationError("undoAll", new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.IModelError(status, "Failed to undo all changes"));
|
|
190545
|
+
return false;
|
|
190546
|
+
}
|
|
190547
|
+
/** Called when [[doUndoOperation]], [[doRedoOperation]] or [[doUndoAllOperation]] fails to reverse or reinstate Txns.
|
|
190094
190548
|
* @param _operation The operation that failed.
|
|
190095
|
-
* @param _error The error thrown by [[BriefcaseTxns.reverseSingleTxnAsync]] or [[BriefcaseTxns.
|
|
190096
|
-
*
|
|
190549
|
+
* @param _error The error thrown by [[BriefcaseTxns.reverseSingleTxnAsync]], [[BriefcaseTxns.reinstateTxnAsync]] or [[BriefcaseTxns.reverseAll]].
|
|
190550
|
+
* If [[BriefcaseTxns.reverseAll]] returns an unsuccessful status, this is an [IModelError]($common) with that status as its `errorNumber`.
|
|
190551
|
+
* @note Implementations should not throw. Any exception thrown by this method propagates to the caller of [[doUndoOperation]], [[doRedoOperation]] or [[doUndoAllOperation]].
|
|
190097
190552
|
* @beta
|
|
190098
190553
|
*/
|
|
190099
190554
|
async onTxnOperationError(_operation, _error) { }
|
|
@@ -337731,7 +338186,7 @@ class WMS {
|
|
|
337731
338186
|
(module) {
|
|
337732
338187
|
|
|
337733
338188
|
"use strict";
|
|
337734
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.
|
|
338189
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.16.0-dev.5","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s 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"}}');
|
|
337735
338190
|
|
|
337736
338191
|
/***/ },
|
|
337737
338192
|
|